Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы создадите настраиваемый поставщик ресурсов и развернете настраиваемые ресурсы для этого поставщика ресурсов. Дополнительные сведения о настраиваемых поставщиках ресурсов см. в обзоре пользовательских поставщиков ресурсов Azure.
Предпосылки
- Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
- Чтобы выполнить действия, описанные в этом кратком руководстве, необходимо вызвать
RESTоперации. Существуют различные способы отправки запросов REST.
Подготовьте среду к работе с Azure CLI.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью 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"
}
]
}
Команды пользовательского поставщика ресурсов
Используйте команды настраиваемых поставщиков для работы с пользовательским поставщиком ресурсов.
Перечисление настраиваемых поставщиков ресурсов
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
Дальнейшие шаги
Общие сведения о пользовательских поставщиках ресурсов см. в следующей статье: