Přidání vlastních prostředků do rozhraní Azure REST API

Tento článek si projde požadavky a osvědčené postupy pro vytváření koncových bodů vlastního poskytovatele prostředků Azure, které implementují vlastní prostředky. Pokud nejste obeznámeni s vlastními poskytovateli prostředků Azure, projděte si přehled o vlastních poskytovatelích prostředků.

Jak definovat koncový bod prostředku

Koncový bod je adresa URL, která odkazuje na službu, která implementuje podkladovou smlouvu mezi ní a Azure. Koncový bod je definovaný ve vlastním poskytovateli prostředků a může to být libovolná veřejně přístupná adresa URL. Následující ukázka obsahuje typ prostředku s názvem myCustomResource implementovaný nástrojem endpointURL.

Ukázkový 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}"
}

Vytvoření koncového bodu prostředku

Koncový bod, který implementuje resourceType, musí zpracovat požadavek a odpověď na nové rozhraní API v Azure. Při vytvoření vlastního poskytovatele prostředků s parametrem resourceType vygeneruje v Azure novou sadu rozhraní API. V tomto případě resourceType vygeneruje nové rozhraní API prostředků Azure pro PUT, GETa DELETE , které provede CRUD u jednoho prostředku a GET načte všechny existující prostředky:

Manipulace s jedním prostředkem (PUT, GETa DELETE):

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource/{myCustomResourceName}

Načíst všechny prostředky (GET):

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource

Pro vlastní prostředky nabízejí vlastní poskytovatelé prostředků dva typy routingTypes: "Proxy" a "Proxy, Cache".

typ směrování proxy serveru

Parametr routingTypeProxy proxy všechny metody požadavků na koncový bod zadaný ve vlastním poskytovateli prostředků. Kdy použít "Proxy":

  • Vyžaduje se úplná kontrola nad odpovědí.
  • Integrace systémů se stávajícími prostředky

Další informace o prostředcích najdete v referenčních informacích kProxy vlastnímu proxy serveru prostředků.

Typ směrování mezipaměti proxy serveru

Proxy, Cache"" routingType proxy pouze PUT a DELETE metody požadavku na koncový bod zadaný ve vlastním poskytovateli prostředků. Vlastní poskytovatel prostředků bude automaticky vracet GET požadavky na základě toho, co má uložené v mezipaměti. Pokud je vlastní prostředek označený mezipamětí, vlastní poskytovatel prostředků v odpovědi také přidá nebo přepíše pole, aby rozhraní API Azure vyhovovala. When to use "Proxy, Cache":

  • Vytvoření nového systému, který nemá žádné existující prostředky.
  • Pracujte se stávajícím ekosystémem Azure.

Další informace oProxy, Cache prostředcích najdete v referenčních informacích k mezipaměti vlastních prostředků.

Vytvoření vlastního prostředku

Existují dva hlavní způsoby, jak vytvořit vlastní prostředek z vlastního poskytovatele prostředků:

  • Azure CLI
  • Šablony Azure Resource Manageru

Azure CLI

Vytvoření vlastního prostředku:

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"
                            }
                        }
                    }'
Parametr Povinné Popis
is-full-object Ano Označuje, že objekt properties obsahuje další možnosti, jako je umístění, značky, skladová položka nebo plán.
id yes ID prostředku vlastního prostředku. Tato možnost by měla existovat mimo ResourceProvider.
properties yes Text požadavku, který se odešle do koncového bodu.

Odstranění vlastního prostředku Azure:

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parametr Povinné Popis
id yes The resource ID of the custom resource. Tato možnost by měla existovat mimo ResourceProvider.

Načtení vlastního prostředku Azure:

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parametr Povinné Popis
id yes The resource ID of the custom resource. This should exist off of the ResourceProvider

Šablona Azure Resource Manageru

Poznámka

Prostředky vyžadují, aby odpověď obsahovala odpovídající id, namea type z koncového bodu.

Šablony Azure Resource Manager vyžadují, aby idse z podřízeného koncového bodu správně vracely , nameatype. Vrácená odpověď prostředku by měla být ve formátu:

Ukázková odpověď koncového bodu :

{
  "properties": {
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3": "myPropertyValue3"
    }
  },
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{customResourceName}",
  "name": "{customResourceName}",
  "type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}"
}

Ukázková šablona Azure Resource Manager:

{
    "$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"
                }
            }
        }
    ]
}
Parametr Povinné Popis
resourceTypeName yes NázevresourceType definovaný ve vlastním poskytovateli prostředků.
resourceProviderName yes Název instance vlastního poskytovatele prostředků
customResourceName yes Název vlastního prostředku.

Další kroky