Руководство по созданию управляемого приложения с настраиваемыми действиями и ресурсами
Статья
В рамках этого учебника вы создадите собственное управляемое приложение с настраиваемыми действиями и ресурсами. Управляемое приложение содержит настраиваемое действие на Overview странице, настраиваемый тип ресурса, отображаемый как отдельный элемент меню и Table of Content настраиваемое действие контекста на пользовательской странице ресурса.
В этом учебнике описаны следующие шаги:
Создание файла определения пользовательского интерфейса для создания экземпляра управляемого приложения.
В этом руководстве вы создадите управляемое приложение и ее управляемую группу ресурсов, содержащую экземпляр пользовательского поставщика, учетную запись хранения и функцию. Используемая в этом примере функция Azure реализует API, который обрабатывает операции настраиваемого поставщика для действий и ресурсов. Учетная запись хранения Azure используется в качестве основного хранилища для ресурсов настраиваемого поставщика.
Определение пользовательского интерфейса для создания экземпляра управляемого приложения включает следующие входные элементы: funcname и storagename. Имена учетной записи хранения и функции должны быть глобально уникальными. По умолчанию файлы функций развертываются из примера пакета функций, но его можно изменить, добавив входной элемент для ссылки пакета в 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
}
Чтобы создать управляемый экземпляр приложения с настраиваемым поставщиком, необходимо определить ресурс настраиваемого поставщика с именем общедоступного и типом Microsoft.CustomProviders/resourceProviders в mainTemplate.json. В этом ресурсе определяются типы ресурсов и действия для службы. Чтобы развернуть экземпляры функции Azure и учетной записи хранения Azure, определите ресурсы типа Microsoft.Web/sites и Microsoft.Storage/storageAccounts соответственно.
В этом руководстве вы создадите один users тип ресурса, ping настраиваемое действие и users/contextAction настраиваемое действие, которое выполняется в контексте пользовательского users ресурса. Для каждого типа ресурса и действия укажите конечную точку, указывающую на функцию с именем, указанным в createUiDefinition.json. Укажите тип routingTypeProxy,Cache ресурсов и Proxy действия:
Чтобы определить пользовательский интерфейс, который содержит настраиваемые действия и ресурсы в управляемом приложении, необходимо создать артефакт viewDefinition.json. Дополнительные сведения об артефакте определения представления см. в этой статье.
В рамках этого учебника вы определите:
Страницу Обзор с кнопкой панели инструментов, которая представляет настраиваемое действие TestAction с основным текстовым вводом.
Страницу Пользователи, представляющую тип настраиваемого ресурса users.
Действие настраиваемого ресурса users/contextAction на странице Пользователи, которое будет выполняться в контексте настраиваемого ресурса типа users.
В следующем примере показана конфигурация представления для страницы обзора:
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"
}
]
}
}
В следующем примере приведена конфигурация страницы ресурсов "Пользователи" с пользовательским действием ресурса:
Упакуйте следующие артефакты управляемого приложения в ZIP-архив и отправьте его в хранилище:
createUiDefinition.json;
mainTemplate.json
viewDefinition.json
Все файлы должны находиться на корневом уровне. Пакет с артефактами можно хранить в любом хранилище, например в хранилище BLOB-объектов на сайте GitHub или учетной записи хранилища BLOB-объектов Azure. Ниже приведен скрипт для отправки пакета приложения в учетную запись хранения:
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
Выполните следующий скрипт Azure CLI или выполните действия, описанные в портал Azure для развертывания определения управляемого приложения каталога служб:
Чтобы выполнить этот пример, установите последнюю версию Azure CLI. Перед началом выполните команду az login, чтобы создать подключение к Azure.
Примеры для Azure CLI написаны для оболочки bash. Чтобы запустить этот пример в Windows PowerShell или командной строке, может потребоваться изменить элементы скрипта.
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"
На портале Azure щелкните Все службы. В списке ресурсов введите и выберите Центр управляемых приложений.
В Центре управляемых приложений выберите определение приложения каталога служб и нажмите кнопку "Добавить".
Укажите значения для создания определения каталога услуг:
Укажите уникальное имя для определения каталога служб, отображаемого имени и описания (необязательно).
Выберите подписку, группу ресурсов и расположение для создания определения приложения. Вы можете использовать ту же группу ресурсов, что и для ZIP-архива или же создать новую.
В качестве URI файла пакета укажите путь к созданному ранее ZIP-файлу.
Когда откроется раздел "Аутентификация и уровень блокировки", выберите Добавить авторизацию.
Выберите группу Microsoft Entra для управления ресурсами и нажмите кнопку "ОК".
После предоставления всех значений нажмите кнопку "Создать".
Экземпляр управляемого приложения
При развертывании определения управляемого приложения выполните следующий сценарий или выполните действия, описанные в портал Azure для развертывания управляемого экземпляра приложения с помощью пользовательского поставщика:
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\"}}"
На портале Azure щелкните Все службы. В списке ресурсов введите и выберите Центр управляемых приложений.
В Центре управляемых приложений выберите приложения каталога служб и нажмите кнопку "Добавить".
В поле поиска в поле поиска введите отображаемое имя определения каталога служб из каталога служб. Выберите определение, созданное на предыдущем шаге, и нажмите кнопку "Создать".
Укажите значения для создания экземпляра управляемого приложения из определения каталога услуг:
Выберите подписку, группу ресурсов и расположение для создания экземпляра приложения.
Укажите уникальные имена для функции Azure и учетной записи хранения Azure.
После прохождения проверки нажмите кнопку "ОК ", чтобы развернуть экземпляр управляемого приложения.
Настраиваемые действия и ресурсы
После развертывания экземпляра приложения каталога служб у вас есть две новые группы ресурсов. Группа applicationGroup ресурсов содержит экземпляр управляемого приложения и группы managedResourceGroup ресурсов содержит ресурсы для управляемого приложения, включая пользовательского поставщика.
Вы можете перейти к экземпляру управляемого приложения и выполнить настраиваемое действие на странице обзора, создать настраиваемый ресурс users на странице "Пользователи" и запустить настраиваемое действие контекста в настраиваемом ресурсе.
Перейдите к обзору и выберите действие Ping:
Перейдите к пользователям и нажмите кнопку "Добавить". Укажите входные данные для создания ресурса и отправьте форму:
Перейдите к пользователям и выберите ресурс пользователейи выберите действие пользовательского контекста:
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.
На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.
Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.
Требуется помощь?
Если у вас есть вопросы или вам нужен ответ об управляемых приложениях Azure, вы можете опубликовать вопрос в Stack Overflow с тегом azure-managed-app или Microsoft Q&A с тегомazure-managed-application.
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.
Описывает развертывание управляемого приложения каталога служб для управляемого приложения Azure с помощью Azure PowerShell, Azure CLI или портал Azure.
Сведения о том, как создавать определения пользовательского интерфейса для портала Azure. Этот процесс используется при определении Управляемых приложений Azure.