Краткое руководство. Создание поставщика настраиваемых ресурсов Azure и развертывание настраиваемых ресурсов
В этом кратком руководстве вы создадите настраиваемый поставщик ресурсов и развернете настраиваемые ресурсы для этого поставщика ресурсов. Дополнительные сведения о настраиваемых поставщиках ресурсов см. в обзоре пользовательских поставщиков ресурсов Azure.
Необходимые компоненты
- Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Для работы с этим кратким руководством требуется вызвать операции
REST
. Существуют различные способы отправки запросов REST.
Подготовьте среду к работе с Azure CLI.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
В примерах Azure CLI используется az rest
для запросов REST
. Дополнительные сведения см. в документации по команде az rest.
Развертывание пользовательского поставщика ресурсов
Чтобы настроить настраиваемый поставщик ресурсов, разверните пример шаблона в подписке Azure.
Шаблон развертывает следующие ресурсы в подписке:
- Приложение-функция с операциями для ресурсов и действий.
- служба хранилища учетную запись для хранения пользователей, созданных с помощью пользовательского поставщика ресурсов.
- Настраиваемый поставщик ресурсов, определяющий пользовательские типы ресурсов и действия. Он использует конечную точку приложения-функции для отправки запросов.
- Пользовательский ресурс из пользовательского поставщика ресурсов.
Чтобы развернуть настраиваемый поставщик ресурсов, используйте Azure CLI, PowerShell или портал Azure.
В этом примере вам будет предложено ввести имя группы ресурсов, расположение и имя приложения-функции, предоставленной поставщиком. Имена хранятся в переменных, которые используются в других командах. Команды az group create и az deployment group create развертывают нужные ресурсы.
read -p "Enter a resource group name:" rgName &&
read -p "Enter the location (i.e. eastus):" location &&
read -p "Enter the provider's function app name:" funcName &&
templateUri="https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/custom-providers/customprovider.json" &&
az group create --name $rgName --location "$location" &&
az deployment group create --resource-group $rgName --template-uri $templateUri --parameters funcName=$funcName &&
echo "Press [ENTER] to continue ..." &&
read
Чтобы развернуть шаблон из портал Azure, нажмите кнопку "Развернуть в Azure".
Просмотр пользовательского поставщика ресурсов и ресурса
На портале настраиваемый поставщик ресурсов является скрытым типом ресурса. Чтобы убедиться, что поставщик ресурсов был развернут, перейдите в группу ресурсов и выберите " Показать скрытые типы".
Чтобы просмотреть развернутый пользовательский ресурс, используйте операцию с типом GET
ресурса. Тип Microsoft.CustomProviders/resourceProviders/users
ресурса, показанный в ответе JSON, включает ресурс, созданный шаблоном.
GET https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users?api-version=2018-09-01-preview
subID=$(az account show --query id --output tsv)
requestURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users?api-version=2018-09-01-preview"
az rest --method get --uri $requestURI
Вы получите такой ответ:
{
"value": [
{
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
"name": "ana",
"properties": {
"FullName": "Ana Bowman",
"Location": "Moon",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
]
}
Действие вызова
У пользовательского поставщика ресурсов также есть действие с именем ping
. Код, который обрабатывает запрос, реализуется в приложении-функции. Действие ping
отправляет ответ с приветствием.
Чтобы отправить ping
запрос, используйте операцию в действии POST
.
POST https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/ping?api-version=2018-09-01-preview
pingURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/ping?api-version=2018-09-01-preview"
az rest --method post --uri $pingURI
Вы получите такой ответ:
{
"message": "hello <function-name>.azurewebsites.net",
"pingcontent": {
"source": "<function-name>.azurewebsites.net"
}
}
Создание ресурса с помощью PUT
В этом кратком руководстве шаблон использовал тип Microsoft.CustomProviders/resourceProviders/users
ресурса для развертывания ресурса. Можно также использовать PUT
операцию для создания ресурса. Например, если ресурс не развернут с помощью шаблона, PUT
операция создаст ресурс.
В этом примере, так как шаблон уже развернул ресурс, PUT
операция создает новый ресурс.
PUT https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/<resource-name>?api-version=2018-09-01-preview
{"properties":{"FullName": "Test User", "Location": "Earth"}}
addURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users/testuser?api-version=2018-09-01-preview"
az rest --method put --uri $addURI --body "{'properties':{'FullName': 'Test User', 'Location': 'Earth'}}"
Вы получите такой ответ:
{
"id": "/subscriptions/<sub-ID>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
"name": "testuser",
"properties": {
"FullName": "Test User",
"Location": "Earth",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
Вы можете повторно запустить GET
операцию из представления пользовательского поставщика ресурсов и раздела ресурсов, чтобы отобразить два созданных ресурса. В этом примере показаны выходные данные команды Azure CLI.
{
"value": [
{
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
"name": "ana",
"properties": {
"FullName": "Ana Bowman",
"Location": "Moon",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
},
{
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
"name": "testuser",
"properties": {
"FullName": "Test User",
"Location": "Earth",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
]
}
Команды настраиваемого поставщика ресурсов
Для работы с настраиваемым поставщиком ресурсов используйте команды custom-providers.
Перечисление настраиваемых поставщиков ресурсов
Команда list
отображает все пользовательские поставщики ресурсов в подписке. По умолчанию перечисляются пользовательские поставщики ресурсов для текущей подписки, но можно указать параметр --subscription
. Чтобы получить список для группы ресурсов, используйте параметр --resource-group
.
az custom-providers resource-provider list --subscription $subID
[
{
"actions": [
{
"endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
"name": "ping",
"routingType": "Proxy"
}
],
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceproviders/<provider-name>",
"location": "eastus",
"name": "<provider-name>",
"provisioningState": "Succeeded",
"resourceGroup": "<rg-name>",
"resourceTypes": [
{
"endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
"name": "users",
"routingType": "Proxy, Cache"
}
],
"tags": {},
"type": "Microsoft.CustomProviders/resourceproviders",
"validations": null
}
]
Отображение свойств
Используйте команду show
, чтобы отобразить свойства пользовательского поставщика ресурсов. Формат вывода напоминает вывод для list
.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Создать новый ресурс
Используйте команду create
для создания или обновления настраиваемого поставщика ресурсов. В этом примере обновляются actions
и resourceTypes
.
az custom-providers resource-provider create --resource-group $rgName --name $funcName \
--action name=ping endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type=Proxy \
--resource-type name=users endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type="Proxy, Cache"
"actions": [
{
"endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
"name": "ping",
"routingType": "Proxy"
}
],
"resourceTypes": [
{
"endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
"name": "users",
"routingType": "Proxy, Cache"
}
],
Обновление тегов поставщика
Команда update
обновляет только теги для настраиваемого поставщика ресурсов. На портале Azure этот тег отображается службой приложений настраиваемого поставщика ресурсов.
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Удаление настраиваемого поставщика ресурсов
Команда delete
запрашивает подтверждение на удаление и удаляет только настраиваемый поставщик ресурсов. Учетная запись хранения, служба приложений и план службы приложений не удаляются. После удаления поставщика вы вернетесь к командной строке.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Очистка ресурсов
Если вы закончите работу с ресурсами, созданными в этой статье, можно удалить группу ресурсов. При удалении группы ресурсов все ресурсы в этой группе ресурсов удаляются.
az group delete --resource-group $rgName
Следующие шаги
Общие сведения о пользовательских поставщиках ресурсов см. в следующей статье: