Добавление настраиваемых ресурсов в Azure REST API
В этой статье рассматриваются требования и рекомендации по созданию конечных точек Поставщика настраиваемых ресурсов Azure, на которых применяются настраиваемые ресурсы. Если вы не знакомы с Поставщиками настраиваемых ресурсов Azure, см. Общие сведения о поставщиках настраиваемых ресурсов.
Инструкция по определению конечной точки ресурса
Конечная точка — это URL-адрес, который указывает на службу, применяющую контракт между ней и Azure. Конечная точка определяется в поставщике настраиваемых ресурсов и может быть любым общедоступным URL-адресом. Образец ниже имеет resourceType со значением myCustomResource
применяемый endpointURL
.
Образец ResourceProvider:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResource",
"routingType": "Proxy, Cache",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus",
"type": "Microsoft.CustomProviders/resourceProviders",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
"name": "{resourceProviderName}"
}
Создание конечной точки ресурса
Конечная точка, которая применяет resourceType должна обрабатывать запрос и направлять ответ на новый API в Azure. После создания поставщика настраиваемых ресурсов с resourceType, создается новый набор API в Azure. В этом случае resourceType создаст новый API ресурса Azure для PUT
, GET
и DELETE
для выполнения CRUD на одном ресурсе, а также GET
, чтобы найти все ресурсы:
Управление одним ресурсом (PUT
, GET
и DELETE
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource/{myCustomResourceName}
Найти все ресурсы (GET
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource
Для настраиваемых ресурсов, поставщики настраиваемых ресурсов предлагают два типа routingTypes: "Proxy
" и "Proxy, Cache
".
тип маршрутизации через прокси-сервер
"Proxy
" routingType прокси-серверы всех методов запроса к конечной точке указан поставщиком настраиваемых ресурсов. Когда использовать "Proxy
":
- необходим полный контроль над ответом.
- интеграция систем с существующими ресурсами.
Дополнительные сведения о "Proxy
" ресурсах, см. в справочнике прокси-серверов настраиваемых ресурсов
тип маршрутизации кэш прокси-сервера
"Proxy, Cache
" routingType только прокси-серверы PUT
и DELETE
методы запросов к конечной точке указаны в поставщике настраиваемых ресурсов. Поставщик настраиваемых ресурсов автоматически вернет GET
запросы на основании данных, сохраненных в его кэше. Если настраиваемый ресурс имеет маркировку с кэшем, то поставщик настраиваемых ресурсов также добавит или перепишет поля в ответе, чтобы обеспечить соответствие API Azure. Когда использовать "Proxy, Cache
":
- Создание новой системы без существующих ресурсов.
- Работа с существующей экосистемой Azure.
Дополнительные сведения о "Proxy, Cache
" ресурсах, см. в справочнике по кэшу настраиваемых ресурсов
Создание настраиваемого ресурса
Настраиваемый ресурс вне поставщика настраиваемых ресурсов можно создать двумя основными способами:
- Azure CLI
- Шаблоны Azure Resource Manager
Azure CLI
Создание настраиваемого ресурса:
az resource create --is-full-object \
--id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName} \
--properties \
'{
"location": "eastus",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
}
}'
Параметр | Обязательно | Описание |
---|---|---|
full-object | да | Указывает, что объект свойств включает в себя другие параметры, такие как местоположение, теги, sku и/или план. |
идентификатор | да | Идентификатор ресурса настраиваемого ресурса. Он должен существовать вне ResourceProvider |
properties | да | Текст запроса, который будет отправлен в конечную точку. |
Удаление настраиваемого ресурса Azure:
az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Параметр | Обязательно | Описание |
---|---|---|
идентификатор | да | Идентификатор ресурса настраиваемого ресурса. Он должен существовать вне ResourceProvider. |
Получение настраиваемого ресурса Azure:
az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Параметр | Обязательно | Описание |
---|---|---|
идентификатор | да | Идентификатор ресурса настраиваемого ресурса. Он должен существовать вне ResourceProvider |
Шаблон Azure Resource Manager
Примечание
Ресурсы требуют, чтобы ответ содержал соответствующие id
, name
и type
из конечной точки.
Шаблоны Azure Resource Manager требуют, чтобы id
, name
и type
были возвращены правильно из подчиненной конечной точки. Возвращенный ответ ресурса должен выглядеть следующим образом:
Образец ответа конечной точки:
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{customResourceName}",
"name": "{customResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}"
}
Пример шаблона Диспетчера ресурсов Azure:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}",
"name": "{resourceProviderName}/{customResourceName}",
"apiVersion": "2018-09-01-preview",
"location": "eastus",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
}
}
]
}
Параметр | Обязательно | Описание |
---|---|---|
resourceTypeName | да | ИмяresourceType, определенное в пользовательском поставщике ресурсов. |
resourceProviderName | да | Имя экземпляра поставщика настраиваемых ресурсов. |
customResourceName | да | Имя настраиваемого ресурса. |
Дальнейшие действия
- Общие сведения о настраиваемых поставщиках ресурсов Azure
- Краткое руководство. Создание настраиваемого поставщика ресурсов Azure и развертывание настраиваемых ресурсов
- Руководство. Создание настраиваемых действий и ресурсов в Azure
- Инструкция: добавление настраиваемых действий в Azure REST API
- Справочник по прокси-службе настраиваемого ресурса
- Справочник по кэшу настраиваемого ресурса