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
, GET
a 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
, name
a 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
- Přehled vlastních poskytovatelů prostředků Azure
- Rychlý start: Vytvoření vlastního poskytovatele prostředků Azure a nasazení vlastních prostředků
- Kurz: Vytváření vlastních akcí a prostředků v Azure
- Postupy: Přidání vlastních akcí do rozhraní Azure REST API
- Referenční informace: Referenční dokumentace k mezipaměti vlastních prostředků