Samouczek: tworzenie aplikacji zarządzanej za pomocą akcji niestandardowych i zasobów
Artykuł
W tym samouczku utworzysz własną aplikację zarządzaną przy użyciu akcji niestandardowych i zasobów. Aplikacja zarządzana zawiera akcję niestandardową na Overview stronie, niestandardowy typ zasobu wyświetlany jako oddzielny element menu w Table of Content programie i niestandardową akcję kontekstową na stronie zasobu niestandardowego.
Ten samouczek obejmuje następujące kroki:
Tworzenie pliku definicji interfejsu użytkownika do tworzenia wystąpienia aplikacji zarządzanej
W tym samouczku utworzysz aplikację zarządzaną i jej zarządzaną grupę zasobów zawiera niestandardowe wystąpienie dostawcy, konto magazynu i funkcję. Funkcja platformy Azure używana w tym przykładzie implementuje interfejs API, który obsługuje operacje niestandardowego dostawcy dla akcji i zasobów. Konto usługi Azure Storage jest używane jako podstawowy magazyn dla zasobów dostawcy niestandardowego.
Definicja interfejsu użytkownika do tworzenia wystąpienia aplikacji zarządzanej obejmuje funcname elementy wejściowe i storagename . Nazwa konta magazynu i nazwa funkcji muszą być globalnie unikatowe. Domyślnie pliki funkcji są wdrażane z przykładowego pakietu funkcji, ale można je zmienić, dodając element wejściowy linku pakietu w 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
}
Aby utworzyć wystąpienie aplikacji zarządzanej z dostawcą niestandardowym, należy zdefiniować zasób dostawcy niestandardowego o nazwie publicznej i wpisać Microsoft.CustomProviders/resourceProviders w mainTemplate.json. W tym zasobie zdefiniujesz typy zasobów i akcje dla usługi. Aby wdrożyć wystąpienia funkcji platformy Azure i konta usługi Azure Storage, zdefiniuj zasoby typu Microsoft.Web/sites i Microsoft.Storage/storageAccounts odpowiednio.
W tym samouczku utworzysz jeden users typ zasobu, ping akcję niestandardową i users/contextAction akcję niestandardową wykonywaną w kontekście zasobu niestandardowego users . Dla każdego typu zasobu i akcji podaj punkt końcowy wskazujący funkcję o nazwie podanej w createUiDefinition.json. Określ wartości routingType dla Proxy,Cache typów zasobów i Proxy dla akcji:
Aby zdefiniować interfejs użytkownika zawierający akcje niestandardowe i zasoby niestandardowe w aplikacji zarządzanej, musisz utworzyć artefakt viewDefinition.json . Aby uzyskać więcej informacji na temat artefaktu definicji widoku, zobacz Wyświetlanie artefaktu definicji w aplikacjach zarządzanych platformy Azure.
W tym samouczku zdefiniujesz następujące elementy:
Strona Przegląd z przyciskiem paska narzędzi, który reprezentuje akcję TestAction niestandardową z podstawowymi danymi wejściowymi tekstowymi.
Strona Użytkownicy reprezentująca niestandardowy typ userszasobu.
Niestandardowa akcja users/contextAction zasobu na stronie Użytkownicy , która będzie wykonywana w kontekście niestandardowego zasobu typu users.
W poniższym przykładzie przedstawiono konfigurację widoku dla strony "Przegląd":
{
"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"
}
]
}
}
Poniższy przykład obejmuje konfigurację strony Zasoby użytkownicy z niestandardową akcją zasobu:
Spakuj następujące artefakty aplikacji zarządzanej, aby spakować archiwum i przekazać je do magazynu:
createUiDefinition.json
mainTemplate.json
viewDefinition.json
Wszystkie pliki muszą być na poziomie głównym. Pakiet z artefaktami można przechowywać w dowolnym magazynie, na przykład w obiekcie blob usługi GitHub lub obiekcie blob konta usługi Azure Storage. Oto skrypt umożliwiający przekazanie pakietu aplikacji na konto magazynu:
$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
Uruchom następujący skrypt interfejsu wiersza polecenia platformy Azure lub wykonaj kroki opisane w witrynie Azure Portal, aby wdrożyć definicję aplikacji zarządzanej katalogu usług:
Aby uruchomić ten przykład, zainstaluj najnowszą wersję interfejsu wiersza polecenia platformy Azure. Aby rozpocząć, uruchom polecenie az login w celu nawiązania połączenia z platformą Azure.
Przykłady dla interfejsu wiersza polecenia platformy Azure są napisane dla powłoki bash . Aby uruchomić ten przykład w programie Windows PowerShell lub wierszu polecenia, może być konieczne zmianę elementów skryptu.
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"
W witrynie Azure Portal wybierz pozycję Wszystkie usługi. Na liście zasobów wpisz i wybierz pozycję Zarządzane centrum aplikacji.
W Centrum aplikacji zarządzanych wybierz pozycję Definicja aplikacji katalogu usług i wybierz pozycję Dodaj.
Podaj wartości służące do tworzenia definicji katalogu usług:
Podaj unikatową nazwę definicji katalogu usług, nazwę wyświetlaną i opis (opcjonalnie).
Wybierz subskrypcję, grupę zasobów i lokalizację, w której zostanie utworzona definicja aplikacji. Możesz użyć tej samej grupy zasobów, która jest używana dla pakietu zip lub utworzyć nową grupę zasobów.
W przypadku identyfikatora URI pliku pakietu podaj ścieżkę do pliku zip utworzonego w poprzednim kroku.
Po wyświetleniu sekcji Uwierzytelnianie i poziom blokady wybierz pozycję Dodaj autoryzację.
Wybierz grupę Microsoft Entra, aby zarządzać zasobami, a następnie wybierz przycisk OK.
Po podaniu wszystkich wartości wybierz pozycję Utwórz.
Wystąpienie aplikacji zarządzanej
Po wdrożeniu definicji aplikacji zarządzanej uruchom następujący skrypt lub wykonaj kroki opisane w witrynie Azure Portal, aby wdrożyć wystąpienie aplikacji zarządzanej za pomocą dostawcy niestandardowego:
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\"}}"
W witrynie Azure Portal wybierz pozycję Wszystkie usługi. Na liście zasobów wpisz i wybierz pozycję Zarządzane centrum aplikacji.
W Centrum aplikacji zarządzanych wybierz pozycję Aplikacje katalogu usług i wybierz pozycję Dodaj.
W obszarze Aplikacje wykazu usług wpisz nazwę wyświetlaną definicji wykazu usług w polu wyszukiwania. Wybierz definicję utworzoną w poprzednim kroku i wybierz pozycję Utwórz.
Podaj wartości tworzenia wystąpienia aplikacji zarządzanej na podstawie definicji katalogu usług:
Wybierz subskrypcję, grupę zasobów i lokalizację, w której zostanie utworzone wystąpienie aplikacji.
Podaj unikatową nazwę funkcji platformy Azure i nazwę konta usługi Azure Storage.
Po zakończeniu walidacji wybierz przycisk OK , aby wdrożyć wystąpienie aplikacji zarządzanej.
Akcje niestandardowe i zasoby
Po wdrożeniu wystąpienia aplikacji katalogu usług masz dwie nowe grupy zasobów. Grupa applicationGroup zasobów zawiera wystąpienie aplikacji zarządzanej, a grupa managedResourceGroup zasobów przechowuje zasoby dla aplikacji zarządzanej, w tym dostawcę niestandardowego.
Możesz przejść do wystąpienia aplikacji zarządzanej i wykonać akcję niestandardową na stronie "Przegląd", utworzyć zasób niestandardowy użytkowników na stronie "Użytkownicy" i uruchomić niestandardową akcję kontekstu dla zasobu niestandardowego.
Przejdź do pozycji Przegląd i wybierz pozycję Akcja ping:
Przejdź do pozycji Użytkownicy i wybierz pozycję Dodaj. Podaj dane wejściowe do utworzenia zasobu i prześlij formularz:
Przejdź do pozycji Użytkownicy i wybierz zasób użytkowników, a następnie wybierz pozycję Niestandardowa akcja kontekstu:
Czyszczenie zasobów
W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.
W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów. Następnie na stronie Grupy zasobów wybierz pozycję myResourceGroup.
Na stronie myResourceGroup upewnij się, że wymienione zasoby są tymi, które chcesz usunąć.
Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, aby potwierdzić, a następnie wybierz pozycję Usuń.
Szukasz pomocy
Jeśli masz pytania lub potrzebujesz odpowiedzi na temat aplikacji zarządzanych platformy Azure, możesz opublikować pytanie w witrynie Stack Overflow za pomocą tagu azure-managed-app lub języka Microsoft Q&A z tagiem azure-managed-application.
Twórz kompleksowe rozwiązania na platformie Microsoft Azure, aby tworzyć usługi Azure Functions, implementować aplikacje internetowe i zarządzać nimi, opracowywać rozwiązania korzystające z usługi Azure Storage i nie tylko.