Sdílet prostřednictvím


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 do mainTemplate.jsonMicrosoft.CustomProviders/resourceProviders. 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 v budoucnu tyto prostředky nepotřebujete, můžete je odstranit odstraněním skupiny prostředků:

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

  2. V podokně myResourceGroup se ujistěte, že uvedené prostředky jsou ty, které chcete odstranit.

  3. Vyberte odstranit skupinu zdrojů. Do textového pole zadejte myResourceGroup a potvrďte to 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

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.