Kurz: Vytvoření spravované aplikace s vlastními akcemi a prostředky

V tomto kurzu vytvoříte vlastní spravovanou aplikaci s vlastními akcemi a prostředky. Spravovaná aplikace obsahuje vlastní akci na Overview stránce, vlastní typ prostředku zobrazený jako samostatná položka Table of Content nabídky a vlastní kontextová akce na stránce vlastního prostředku.

Tento kurz zahrnuje následující kroky:

  • Vytvoření definičního souboru uživatelského rozhraní pro vytvoření instance spravované aplikace
  • Vytvoření šablony nasazení s využitím vlastního zprostředkovatele Azure, účtu služby Azure Storage a funkce Azure Functions
  • Vytvoření artefaktu definice zobrazení s vlastními akcemi a prostředky
  • Nasazení definice spravované aplikace
  • Nasazení instance spravované aplikace
  • Provádění vlastních akcí a vytváření vlastních prostředků

Požadavky

K dokončení tohoto kurzu potřebujete vědět:

Definice uživatelského rozhraní

V tomto kurzu vytvoříte spravovanou aplikaci a její spravovanou skupinu prostředků obsahuje vlastní instanci poskytovatele, účet úložiště a funkci. Funkce Azure použitá v tomto příkladu implementuje rozhraní API, které zpracovává vlastní operace poskytovatele pro akce a prostředky. Účet úložiště Azure se používá jako základní úložiště pro prostředky vašeho vlastního poskytovatele.

Definice uživatelského rozhraní pro vytvoření instance spravované aplikace zahrnuje funcname a storagename vstupní prvky. Název účtu úložiště a název funkce musí být globálně jedinečný. Ve výchozím nastavení se soubory funkcí nasazují z ukázkového balíčku funkcí, ale můžete ho změnit přidáním vstupního prvku pro odkaz na balíček v createUiDefinition.json:

{
  "name": "funcname",
  "type": "Microsoft.Common.TextBox",
  "label": "Name of the function to be created",
  "toolTip": "Name of the function to be created",
  "visible": true,
  "constraints": {
    "required": true
  }
},
{
  "name": "storagename",
  "type": "Microsoft.Common.TextBox",
  "label": "Name of the storage to be created",
  "toolTip": "Name of the storage to be created",
  "visible": true,
  "constraints": {
    "required": true
  }
},
{
  "name": "zipFileBlobUri",
  "type": "Microsoft.Common.TextBox",
  "defaultValue": "https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.customproviders/custom-rp-with-function/artifacts/functionzip/functionpackage.zip",
  "label": "The Uri to the uploaded function zip file",
  "toolTip": "The Uri to the uploaded function zip file",
  "visible": true
}

Výstup v createUiDefinition.json:

"funcname": "[steps('applicationSettings').funcname]",
"storageName": "[steps('applicationSettings').storagename]",
"zipFileBlobUri": "[steps('applicationSettings').zipFileBlobUri]"

Kompletní createUiDefinition.json ukázku najdete v referenčních informacích: Artefakty prvků uživatelského rozhraní.

Šablona s vlastním poskytovatelem

Pokud chcete vytvořit instanci spravované aplikace s vlastním poskytovatelem, musíte definovat vlastní prostředek poskytovatele s veřejným názvem a zadáním Microsoft.CustomProviders/resourceProviders do mainTemplate.json. V daném prostředku definujete typy prostředků a akce pro vaši službu. Nasazení služby Azure Functions a instancí účtu úložiště Azure definuje prostředky typu Microsoft.Web/sites a Microsoft.Storage/storageAccounts v uvedeném pořadí.

V tomto kurzu vytvoříte jeden users typ prostředku, ping vlastní akci a users/contextAction vlastní akci, která se provádí v kontextu vlastního users prostředku. Pro každý typ prostředku a akci zadejte koncový bod odkazující na funkci s názvem zadaným v createUiDefinition.json. routingType Zadejte typ Proxy,Cache prostředku a Proxy akce:

{
  "apiVersion": "[variables('customrpApiversion')]",
  "type": "Microsoft.CustomProviders/resourceProviders",
  "name": "[variables('customProviderName')]",
  "location": "[parameters('location')]",
  "properties": {
    "actions": [
      {
        "name": "ping",
        "routingType": "Proxy",
        "endpoint": "[listSecrets(resourceId('Microsoft.Web/sites/functions', parameters('funcname'), 'HttpTrigger1'), '2018-02-01').trigger_url]"
      },
      {
        "name": "users/contextAction",
        "routingType": "Proxy",
        "endpoint": "[listSecrets(resourceId('Microsoft.Web/sites/functions', parameters('funcname'), 'HttpTrigger1'), '2018-02-01').trigger_url]"
      }
    ],
    "resourceTypes": [
      {
        "name": "users",
        "routingType": "Proxy,Cache",
        "endpoint": "[listSecrets(resourceId('Microsoft.Web/sites/functions', parameters('funcname'), 'HttpTrigger1'), '2018-02-01').trigger_url]"
      }
    ]
  },
  "dependsOn": [
    "[concat('Microsoft.Web/sites/',parameters('funcname'))]"
  ]
}

Kompletní mainTemplate.json ukázku najdete v referenčních informacích: Artefakt šablony nasazení.

Zobrazení definičních artefaktů

Pokud chcete definovat uživatelské rozhraní, které zahrnuje vlastní akce a vlastní prostředky ve spravované aplikaci, musíte vytvořit viewDefinition.json artefaktu. Další informace o artefaktu definice zobrazení najdete v tématu Zobrazení artefaktu definice ve spravovaných aplikacích Azure.

V tomto kurzu definujete:

  • Stránka Přehled s tlačítkem panelu nástrojů, která představuje vlastní akci TestAction se základním textovým vstupem.
  • Stránka Uživatelé , která představuje vlastní typ usersprostředku .
  • Vlastní akce users/contextAction prostředku na stránce Uživatelé , která se provede v kontextu vlastního prostředku typu users.

Následující příklad ukazuje konfiguraci zobrazení stránky Přehled:

{
  "kind": "Overview",
  "properties": {
    "header": "Welcome to your Demo Azure Managed Application",
    "description": "This Managed application with Custom Provider is for demo purposes only.",
    "commands": [
      {
        "displayName": "Ping Action",
        "path": "/customping",
        "icon": "LaunchCurrent"
      }
    ]
  }
}

Následující příklad obsahuje konfiguraci stránky prostředky Users s vlastní akcí prostředku:

{
  "kind": "CustomResources",
  "properties": {
    "displayName": "Users",
    "version": "1.0.0.0",
    "resourceType": "users",
    "createUIDefinition": {},
    "commands": [
      {
        "displayName": "Custom Context Action",
        "path": "users/contextAction",
        "icon": "Start"
      }
    ],
    "columns": [
      {
        "key": "properties.FullName",
        "displayName": "Full Name"
      },
      {
        "key": "properties.Location",
        "displayName": "Location",
        "optional": true
      }
    ]
  }
}

Kompletní viewDefinition.json ukázku najdete v referenčních informacích: Zobrazit artefakt definice.

Definice spravované aplikace

Zabalte následující artefakty spravované aplikace do archivu zip a nahrajte ho do úložiště:

  • createUiDefinition.json
  • mainTemplate.json
  • viewDefinition.json

Všechny soubory musí být na kořenové úrovni. Balíček s artefakty je možné uložit v libovolném úložišti, například v objektu blob GitHubu nebo objektu blob účtu úložiště Azure. Tady je skript pro nahrání balíčku aplikace do účtu úložiště:

$resourceGroup="appResourcesGroup"
$storageName="mystorageaccount$RANDOM"

# Sign in to your Azure subscription
Connect-AzAccount
# Create resource group for managed application definition and application package
New-AzResourceGroup -Name $resourceGroup -Location eastus

# Create storage account for a package with application artifacts
$storageAccount=New-AzStorageAccount `
  -ResourceGroupName $resourceGroup `
  -Name $storageName `
  -SkuName Standard_LRS `
  -Location eastus `
$ctx=$storageAccount.Context

# Create storage container and upload zip to blob
New-AzStorageContainer -Name appcontainer -Context $ctx -Permission blob
Set-AzStorageBlobContent `
  -File "path_to_your_zip_package" `
  -Container appcontainer `
  -Blob app.zip `
  -Context $ctx

# Get blob absolute uri
$blobUri=(Get-AzureStorageBlob -Container appcontainer -Blob app.zip -Context $ctx).ICloudBlob.uri.AbsoluteUri

Spusťte následující skript Azure CLI nebo postupujte podle kroků na webu Azure Portal a nasaďte definici spravované aplikace katalogu služeb:

Pokud chcete tuto ukázku spustit, nainstalujte nejnovější verzi Azure CLI. Spuštěním příkazu az login vytvořte připojení k Azure.

Ukázky pro Azure CLI jsou napsané pro bash prostředí. Pokud chcete tuto ukázku spustit ve Windows PowerShellu nebo příkazovém řádku, budete možná muset změnit prvky skriptu.

resourceGroup="appResourcesGroup"
# Select subscription and create resource group (if you have not created yet)
az account set --subscription <subscriptionID>
az group create --name $resourceGroup --location eastus

# Get object ID of your identity
userid=$(az ad user list --upn example@contoso.org --query [0].id --output tsv)
# Get role definition ID for the Owner role
roleid=$(az role definition list --name Owner --query [].name --output tsv)

# Create managed application definition resource
az managedapp definition create \
  --name "ManagedUsersAppDefinition" \
  --location "eastus" \
  --resource-group $resourceGroup \
  --lock-level ReadOnly \
  --display-name "Managed users app definition" \
  --description "Managed application with Azure Custom Provider" \
  --authorizations "$userid:$roleid" \
  --package-file-uri "path to your app.zip package"

Instance spravované aplikace

Po nasazení definice spravované aplikace spusťte následující skript nebo postupujte podle kroků na webu Azure Portal a nasaďte instanci spravované aplikace s vlastním poskytovatelem:

appResourcesGroup="appResourcesGroup"
applicationGroup="usersApplicationGroup"

# Create resource group for managed application instance
az group create --name $applicationGroup --location eastus

# Get ID of managed application definition
appid=$(az managedapp definition show --name ManagedUsersAppDefinition --resource-group $appResourcesGroup --query id --output tsv)

# Create the managed application
az managedapp create \
  --name ManagedUsersApp \
  --location "eastus" \
  --kind "Servicecatalog" \
  --resource-group $applicationGroup \
  --managedapp-definition-id $appid \
  --managed-rg-id "managedResourcesGroup" \
  --parameters "{\"funcname\": {\"value\": \"managedusersappfunction\"}, \"storageName\": {\"value\": \"managedusersappstorage\"}}"

Vlastní akce a prostředky

Po nasazení instance aplikace katalogu služeb máte dvě nové skupiny prostředků. Skupina applicationGroup prostředků obsahuje instanci spravované aplikace a skupiny managedResourceGroup prostředků obsahuje prostředky pro spravovanou aplikaci, včetně vlastního poskytovatele.

Skupiny prostředků aplikace

Můžete přejít do instance spravované aplikace a provést vlastní akci na stránce Přehled, vytvořit vlastní prostředek na stránce Uživatelé a spustit vlastní kontextovou akci u vlastního prostředku.

  • Přejděte na Přehled a vyberte Akci ping:

Provedení vlastní akce

  • Přejděte na Uživatelé a vyberte Přidat. Zadejte vstupy pro vytvoření prostředku a odešlete formulář:

Snímek obrazovky znázorňující tlačítko Přidat vybrané v části Uživatelé

  • Přejděte na Uživatelé a vyberte prostředek uživatele a vyberte vlastní kontextovou akci:

Snímek obrazovky znázorňující vybranou vlastní kontextové akce

Vyčištění prostředků

V předchozích krocích jste vytvořili prostředky Azure ve skupině prostředků. Pokud předpokládáte, že už tyto prostředky nebudete potřebovat, můžete je odstranit tak, že odstraníte skupinu prostředků.

V nabídce webu Azure Portal nebo na domovské stránce vyberte skupiny prostředků. Potom na stránce Skupiny prostředků vyberte myResourceGroup.

Na stránce myResourceGroup se ujistěte, že uvedené prostředky jsou ty, které chcete odstranit.

Vyberte Odstranit skupinu prostředků, do textového pole zadejte myResourceGroup , abyste ji potvrdili, a pak vyberte Odstranit.

Hledáte nápovědu

Pokud máte dotazy nebo potřebujete odpověď na spravované aplikace Azure, můžete na webu Stack Overflow publikovat otázku se značkou azure-managed-app nebo Microsoft Q&A se značkou azure-managed-application.

Další kroky

Informace o publikování spravované aplikace na webu Azure Marketplace najdete v tématu Spravované aplikace Azure v Marketplace.

Přečtěte si další informace o vlastních poskytovateli Azure.