Sdílet prostřednictvím


Referenční informace k proxy vlastních prostředků

Tento článek projde požadavky na koncové body, které implementují vlastní prostředky proxy serveru. Pokud nejste obeznámeni s vlastními poskytovateli prostředků Azure, projděte si přehled o vlastních poskytovatelích prostředků.

Definování koncového bodu prostředku proxy serveru

Prostředek proxy serveru je možné vytvořit zadáním parametru routingType Proxy.

Ukázkový vlastní poskytovatel prostředků:

{
  "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}"
}

Vytvoření koncového bodu prostředku proxy serveru

Koncový bod, který implementuje koncový bod prostředku proxy, musí zpracovat požadavek a odpověď pro nové rozhraní API v Azure. V tomto případě #resourceType* vygeneruje nové rozhraní API prostředků Azure pro PUT, GETa DELETE pro provedení CRUD pro jeden prostředek a GET také pro načtení všech existujících prostředků.

Poznámka

Pole id, namea type nejsou povinná, ale jsou potřebná k integraci vlastního prostředku s existujícím ekosystémem Azure.

Ukázkový prostředek:

{
    "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"
        }
    }
}

Referenční informace k parametrům:

Vlastnost Ukázka Popis
name {myCustomResourceName} Název vlastního prostředku.
typ Microsoft.CustomProviders/resourceProviders/{resourceTypeName} Obor názvů typu prostředku.
id '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/
myCustomResources/{myCustomResourceName}'
ID prostředku.

Vytvoření vlastního prostředku

Příchozí požadavek rozhraní Azure API:

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"
        }
    }
}

Tento požadavek se pak předá koncovému bodu ve formátu:

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"
        }
    }
}

Odpověď z koncového bodu se pak přepošla zpět zákazníkovi. Odpověď by měla vrátit:

  • Platný dokument objektu JSON. Všechna pole a řetězce by měly být vnořené pod horním objektem.
  • Hlavička Content-Type by měla být nastavená na application/json; charset=utf-8".

Odpověď koncového bodu:

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"
        }
    }
}

Odpověď vlastního poskytovatele prostředků 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"
        }
    }
}

Odebrání vlastního prostředku

Příchozí požadavek rozhraní Azure API:

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

Tento požadavek se pak předá koncovému bodu ve formátu:

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}

Odpověď z koncového bodu se pak přepošla zpět zákazníkovi. Odpověď by měla vrátit:

  • Platný dokument objektu JSON. Všechna pole a řetězce by měly být vnořené pod horním objektem.
  • Hlavička Content-Type by měla být nastavená na application/json; charset=utf-8".

Odpověď koncového bodu:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

Odpověď vlastního poskytovatele prostředků Azure:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

Načtení vlastního prostředku

Příchozí požadavek rozhraní Azure API:

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

Tento požadavek se pak předá koncovému bodu ve formátu:

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}

Odpověď z koncového bodu se pak přepošla zpět zákazníkovi. Odpověď by měla vrátit:

  • Platný dokument objektu JSON. Všechna pole a řetězce by měly být vnořené pod horním objektem.
  • Hlavička Content-Type by měla být nastavená na application/json; charset=utf-8".

Odpověď koncového bodu:

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"
        }
    }
}

Odpověď vlastního poskytovatele prostředků 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"
        }
    }
}

Výčet všech vlastních prostředků

Příchozí požadavek rozhraní Azure API:

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

Tento požadavek se pak předá koncovému bodu ve formátu:

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

Odpověď z koncového bodu se pak přepošla zpět zákazníkovi. Odpověď by měla vrátit:

  • Platný dokument objektu JSON. Všechna pole a řetězce by měly být vnořené pod horním objektem.
  • Hlavička Content-Type by měla být nastavená na application/json; charset=utf-8".
  • Seznam prostředků by měl být umístěn pod vlastností nejvyšší úrovně value .

Odpověď koncového bodu:

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"
                }
            }
        }
    ]
}

Odpověď vlastního poskytovatele prostředků 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"
                }
            }
        }
    ]
}

Další kroky