Справочник по прокси-серверу пользовательских ресурсов
В этой статье рассматриваются требования к конечным точкам для применения прокси-сервера настраиваемых ресурсов. Для ознакомления с поставщиками настраиваемых ресурсов Azure см. статью Общие сведения о поставщиках настраиваемых ресурсов.
Определение конечной точки ресурса прокси-сервера
Ресурс прокси-сервера можно создать, указав для routingType
значение Proxy (Прокси-сервер).
Пример поставщика настраиваемого ресурса:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"routingType": "Proxy",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus",
"type": "Microsoft.CustomProviders/resourceProviders",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
"name": "{resourceProviderName}"
}
Создание конечной точки ресурса прокси-сервера
Конечная точка, реализующая конечную точку ресурса "Прокси-сервер", должна поддерживать запрос и ответ для нового API в Azure. В этом случае resourceType создаст новый API ресурсов Azure для PUT
, GET
и DELETE
для выполнения CRUD в одном ресурсе, а также GET
, чтобы получить все существующие ресурсы.
Примечание
Поля id
, name
и type
не обязательны, но необходимы для интеграции настраиваемого ресурса с существующей экосистемой Azure.
Пример ресурса:
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Справка по параметрам:
Свойство | Образец | Описание |
---|---|---|
name | {myCustomResourceName} | Название настраиваемого ресурса. |
тип | Microsoft.CustomProviders/resourceProviders/{имя типа ресурса} | Пространство имен типа ресурса. |
идентификатор | /subscriptions/{ИД подписки}/resourceGroups/{имя группы ресурсов}/ providers/Microsoft.CustomProviders/resourceProviders/{имя поставщика ресурсов}/ myCustomResources/{имя_настраиваемого_ресурса}' |
Идентификатор ресурса. |
Создание настраиваемого ресурса
Входящий запрос API Azure:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resource-provider-name}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Этот запрос в дальнейшем будет направлен в конечную точку в формате:
PUT https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Ответ от конечной точки в дальнейшем перенаправляется обратно клиенту. Ответ должен быть следующим:
- Допустимый документ объекта JSON. Все массивы и строки должны быть вложены в объект верхнего уровня.
- У заголовка
Content-Type
должно быть значение "application/json; charset=utf-8".
Ответ конечной точки:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Ответ поставщика настраиваемых ресурсов Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Удаление настраиваемого ресурса
Входящий запрос API Azure:
Delete https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Этот запрос в дальнейшем будет направлен в конечную точку в формате:
Delete https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
Ответ от конечной точки в дальнейшем перенаправляется обратно клиенту. Ответ должен быть следующим:
- Допустимый документ объекта JSON. Все массивы и строки должны быть вложены в объект верхнего уровня.
- У заголовка
Content-Type
должно быть значение "application/json; charset=utf-8".
Ответ конечной точки:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Ответ поставщика настраиваемых ресурсов Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Извлечение настраиваемого ресурса
Входящий запрос API Azure:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Этот запрос в дальнейшем будет направлен в конечную точку в формате:
GET https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
Ответ от конечной точки в дальнейшем перенаправляется обратно клиенту. Ответ должен быть следующим:
- Допустимый документ объекта JSON. Все массивы и строки должны быть вложены в объект верхнего уровня.
- У заголовка
Content-Type
должно быть значение "application/json; charset=utf-8".
Ответ конечной точки:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Ответ поставщика настраиваемых ресурсов Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Перечисление всех настраиваемых ресурсов
Входящий запрос API Azure:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Этот запрос в дальнейшем будет направлен в конечную точку в формате:
GET https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources
Ответ от конечной точки в дальнейшем перенаправляется обратно клиенту. Ответ должен быть следующим:
- Допустимый документ объекта JSON. Все массивы и строки должны быть вложены в объект верхнего уровня.
- У заголовка
Content-Type
должно быть значение "application/json; charset=utf-8". - Список ресурсов должен размещаться в свойстве верхнего уровня
value
.
Ответ конечной точки:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"value" : [
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
]
}
Ответ поставщика настраиваемых ресурсов Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"value" : [
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
]
}
Дальнейшие действия
- Общие сведения о настраиваемых поставщиках ресурсов Azure
- Краткое руководство. Создание настраиваемого поставщика ресурсов Azure и развертывание настраиваемых ресурсов
- Руководство. Создание настраиваемых действий и ресурсов в Azure
- Руководство. Добавление настраиваемых действий в REST API Azure
- Справочник по кэшу настраиваемого ресурса