Självstudie: Skapa ett hanterat program med anpassade åtgärder och resurser
Artikel
I den här självstudien skapar du ett eget hanterat program med anpassade åtgärder och resurser. Det hanterade programmet innehåller en anpassad åtgärd på Overview sidan, en anpassad resurstyp som visas som ett separat menyalternativ i Table of Content och en anpassad kontextåtgärd på den anpassade resurssidan.
Den här självstudien innehåller följande steg:
Skapa en definitionsfil för användargränssnittet för att skapa en hanterad programinstans
I den här självstudien skapar du ett hanterat program och dess hanterade resursgrupp innehåller anpassad providerinstans, lagringskonto och funktion. Azure-funktionen som används i det här exemplet implementerar ett API som hanterar anpassade provideråtgärder för åtgärder och resurser. Azure Storage-kontot används som grundläggande lagring för dina anpassade providerresurser.
Användargränssnittsdefinitionen för att skapa en hanterad programinstans innehåller funcname och storagename indataelement. Lagringskontots namn och funktionsnamn måste vara globalt unika. Som standard distribueras funktionsfiler från exempelfunktionspaketet, men du kan ändra det genom att lägga till ett indataelement för en paketlänk i createUiDefinition.json:
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
}
Det fullständiga createUiDefinition.json exempel finns i Referens: Elementartefakter för användargränssnitt.
Mall med anpassad provider
Om du vill skapa en hanterad programinstans med en anpassad provider måste du definiera en anpassad providerresurs med namnet offentligt och skriva Microsoft.CustomProviders/resourceProviders in din mainTemplate.json. I den resursen definierar du resurstyperna och åtgärderna för din tjänst. Om du vill distribuera Azure Function- och Azure Storage-kontoinstanser definierar du resurser av typen Microsoft.Web/sites respektive Microsoft.Storage/storageAccounts .
I den här självstudien skapar du en users resurstyp, ping anpassad åtgärd och users/contextAction anpassad åtgärd som utförs i en kontext av en users anpassad resurs. För varje resurstyp och åtgärd anger du en slutpunkt som pekar på funktionen med namnet i createUiDefinition.json. Ange som routingTypeProxy,Cache för resurstyper och Proxy för åtgärder:
Det fullständiga mainTemplate.json exemplet finns i Artefakten Referens: Distributionsmall.
Visa definitionsartefakt
Om du vill definiera användargränssnitt som innehåller anpassade åtgärder och anpassade resurser i ditt hanterade program måste du skapa viewDefinition.json artefakt. Mer information om artefakt för vydefinition finns i Visa definitionsartefakt i Azure Managed Applications.
I den här självstudien definierar du:
En översiktssida med knapp i verktygsfältet som representerar en anpassad åtgärd TestAction med grundläggande textinmatning.
Sidan Användare som representerar en anpassad resurstyp users.
En anpassad resursåtgärd users/contextAction på sidan Användare som ska utföras i en kontext av anpassad resurs av typen users.
I följande exempel visas visningskonfigurationen för en översiktssida:
JSON
{
"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"
}
]
}
}
I följande exempel ingår sidkonfiguration för användares resurser med anpassad resursåtgärd:
Paketera följande hanterade programartefakter för att zip-arkivera och ladda upp det till lagring:
createUiDefinition.json
mainTemplate.json
viewDefinition.json
Alla filer måste vara på rotnivå. Paketet med artefakter kan lagras i valfri lagring, till exempel GitHub-blob eller Azure Storage-kontoblob. Här är ett skript för att ladda upp programpaketet till lagringskontot:
PowerShell
$resourceGroup="appResourcesGroup"$storageName="mystorageaccount$RANDOM"# Sign in to your Azure subscriptionConnect-AzAccount# Create resource group for managed application definition and application packageNew-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 blobNew-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
Kör följande Azure CLI-skript eller följ stegen i Azure Portal för att distribuera en definition av hanterade program i tjänstkatalogen:
Om du vill köra det här exemplet installerar du den senaste versionen av Azure CLI. Börja genom att köra az login för att upprätta en anslutning med Azure.
Exempel för Azure CLI skrivs för bash gränssnittet. Om du vill köra det här exemplet i Windows PowerShell eller kommandotolken kan du behöva ändra element i skriptet.
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 identityuserid=$(az ad user list --upn example@contoso.org --query[0].id --output tsv)
# Get role definition ID for the Owner roleroleid=$(az role definition list --name Owner --query[].name --output tsv)
# Create managed application definition resourceaz 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"
Välj Alla tjänster i Azure-portalen. I listan över resurser skriver du och väljer Hanterat programcenter.
I Managed Applications Center väljer du Programdefinition för tjänstkatalog och väljer Lägg till.
Ange värden för att skapa en tjänstkatalogdefinition:
Ange ett unikt namn för tjänstkatalogdefinitionen, visningsnamnet och beskrivningen (valfritt).
Välj den prenumeration, resursgrupp och plats där programdefinitionen ska skapas. Du kan använda samma resursgrupp som används för zip-paket eller skapa en ny resursgrupp.
För en paketfil-URI anger du sökvägen till zip-filen som du skapade i föregående steg.
När du kommer till avsnittet Autentisering och låsnivå väljer du Lägg till auktorisering.
Välj en Microsoft Entra-grupp för att hantera resurserna och välj OK.
När du har angett alla värden väljer du Skapa.
Hanterad programinstans
När definitionen av hanterade program distribueras kör du följande skript eller följer stegen i Azure Portal för att distribuera din hanterade programinstans med en anpassad provider:
appResourcesGroup="appResourcesGroup"applicationGroup="usersApplicationGroup"# Create resource group for managed application instanceaz group create --name$applicationGroup--location eastus
# Get ID of managed application definitionappid=$(az managedapp definition show --name ManagedUsersAppDefinition --resource-group$appResourcesGroup--query id --output tsv)
# Create the managed applicationaz 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\"}}"
Välj Alla tjänster i Azure-portalen. I listan över resurser skriver du och väljer Hanterat programcenter.
I Center för hanterade program väljer du Tjänstkatalogprogram och sedan Lägg till.
Från tjänstkatalogprogram skriver du Visningsnamn för tjänstkatalogdefinition i sökrutan. Välj definitionen som skapades i föregående steg och välj Skapa.
Ange värden för att skapa en hanterad programinstans från tjänstkatalogdefinitionen:
Välj den prenumeration, resursgrupp och plats där programinstansen ska skapas.
Ange ett unikt Azure-funktionsnamn och Azure Storage-kontonamn.
När valideringen har godkänts väljer du OK för att distribuera en instans av ett hanterat program.
Anpassade åtgärder och resurser
När programinstansen för tjänstkatalogen har distribuerats har du två nya resursgrupper. Resursgruppen applicationGroup innehåller en instans av det hanterade programmet och resursgruppen managedResourceGroup innehåller resurserna för det hanterade programmet, inklusive anpassad provider.
Du kan gå till den hanterade programinstansen och utföra anpassad åtgärd på sidan Översikt, skapa anpassade användare på sidan Användare och köra anpassad kontextåtgärd på anpassad resurs.
Gå till Översikt och välj Pinga åtgärd:
Gå till Användare och välj Lägg till. Ange indata för att skapa en resurs och skicka formuläret:
Gå till Användare och välj en användarresurs och välj Anpassad kontextåtgärd:
Rensa resurser
I de föregående stegen skapade du Azure-resurser i en resursgrupp. Om du inte tror att du behöver dessa resurser i framtiden, kan du ta bort dem genom att ta bort resursgruppen.
På menyn Azure Portal eller startsidan väljer du Resursgrupper. Välj sedan myResourceGroup på sidan Resursgrupper.
På sidan myResourceGroup kontrollerar du att resurserna i listan är de som du vill ta bort.
Välj Ta bort resursgrupp, skriv myResourceGroup i textrutan för att bekräfta och välj sedan Ta bort.
Söker hjälp
Om du har frågor eller behöver ett svar om Azure Managed Applications kan du skicka en fråga på Stack Overflow med taggen azure-managed-app eller Microsoft Q&A med taggen azure-managed-application.
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.
Beskriver hur du distribuerar en tjänstkatalogs hanterade program för ett Azure-hanterat program med hjälp av Azure PowerShell, Azure CLI eller Azure Portal.