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:
- Vytvoření a publikování definice spravované aplikace
- Postup nasazení aplikace Katalogu služeb prostřednictvím webu Azure Portal
- Vytvoření uživatelského rozhraní webu Azure Portal pro spravovanou aplikaci
- Zobrazení možností artefaktů definice
- Možnosti vlastního poskytovatele Azure
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
users
prostředku . - Vlastní akce
users/contextAction
prostředku na stránce Uživatelé , která se provede v kontextu vlastního prostředku typuusers
.
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.
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:
- Přejděte na Uživatelé a vyberte Přidat. Zadejte vstupy pro vytvoření prostředku a odešlete formulář:
- Přejděte na Uživatelé a vyberte prostředek uživatele a vyberte vlastní kontextovou akci:
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.