Share via


Aangepaste resources toevoegen aan Azure REST API

In dit artikel worden de vereisten en aanbevolen procedures beschreven voor het maken van eindpunten van de Azure Custom Resource Provider waarmee aangepaste resources worden geïmplementeerd. Als u niet bekend bent met aangepaste resourceproviders van Azure, raadpleegt u het overzicht van aangepaste resourceproviders.

Een resource-eindpunt definiëren

Een eindpunt is een URL die verwijst naar een service, waarmee het onderliggende contract tussen het eindpunt en Azure wordt geïmplementeerd. Het eindpunt wordt gedefinieerd in de aangepaste resourceprovider en kan elke openbaar toegankelijke URL zijn. Het onderstaande voorbeeld bevat een resourceType met de naam myCustomResource geïmplementeerd door endpointURL.

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

Een resource-eindpunt bouwen

Een eindpunt dat een resourceType implementeert, moet de aanvraag en het antwoord voor de nieuwe API in Azure verwerken. Wanneer een aangepaste resourceprovider met een resourceType wordt gemaakt, wordt er een nieuwe set API's in Azure gegenereerd. In dit geval genereert resourceType een nieuwe Azure-resource-API voor PUT, GETen DELETE om CRUD uit te voeren op één resource en GET om alle bestaande resources op te halen:

Eén resource bewerken (PUT, GETen DELETE):

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

Alle resources ophalen (GET):

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

Voor aangepaste resources bieden aangepaste resourceproviders twee typen routeringstypen: 'Proxy' en 'Proxy, Cache'.

proxyrouteringstype

Het routeringstypeProxy geeft alle aanvraagmethoden aan het eindpunt dat is opgegeven in de aangepaste resourceprovider. Wanneer te gebruiken:Proxy

  • Volledige controle over het antwoord is vereist.
  • Systemen integreren met bestaande resources.

Zie de naslaginformatie over aangepaste resourceproxy's voor meer informatie overProxy resources

Routeringstype proxycache

De routeringType-proxy'sProxy, Cache en DELETE aanvraagmethoden alleen PUT voor het eindpunt dat is opgegeven in de aangepaste resourceprovider. De aangepaste resourceprovider retourneert GET automatisch aanvragen op basis van wat deze in de cache heeft opgeslagen. Als een aangepaste resource is gemarkeerd met cache, voegt de aangepaste resourceprovider ook velden toe/overschrijft in het antwoord om de API's compatibel te maken met Azure. Wanneer te gebruiken:Proxy, Cache

  • Een nieuw systeem maken dat geen bestaande resources heeft.
  • Werken met een bestaand Azure-ecosysteem.

Zie de naslaginformatie over de aangepaste resourcecache voor meer informatie overProxy, Cache resources

Een aangepaste resource maken

Er zijn twee belangrijke manieren om een aangepaste resource te maken op basis van een aangepaste resourceprovider:

  • Azure CLI
  • Azure Resource Manager-sjablonen

Azure CLI

Een aangepaste resource maken:

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"
                            }
                        }
                    }'
Parameter Vereist Beschrijving
is-full-object Ja Geeft aan dat het eigenschappenobject andere opties bevat, zoals locatie, tags, SKU en/of plan.
id Ja De resource-id van de aangepaste resource. Dit moet bestaan buiten de ResourceProvider
properties Ja De aanvraagbody die naar het eindpunt wordt verzonden.

Een aangepaste Azure-resource verwijderen:

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parameter Vereist Beschrijving
id Ja De resource-id van de aangepaste resource. Dit moet bestaan buiten de ResourceProvider.

Een aangepaste Azure-resource ophalen:

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parameter Vereist Beschrijving
id Ja De resource-id van de aangepaste resource. Dit moet bestaan buiten de ResourceProvider

Azure Resource Manager-sjabloon

Notitie

Resources vereisen dat het antwoord een geschikte id, nameen type van het eindpunt bevat.

Azure Resource Manager-sjablonen vereisen dat id, nameen type correct worden geretourneerd vanuit het downstream-eindpunt. Een geretourneerd resourceantwoord moet de volgende notatie hebben:

Voorbeeld van eindpuntantwoord :

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

Voorbeeld van Azure Resource Manager-sjabloon:

{
    "$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"
                }
            }
        }
    ]
}
Parameter Vereist Beschrijving
resourceTypeName Ja De naam van het resourceType dat is gedefinieerd in de aangepaste resourceprovider.
resourceProviderName Ja De naam van het exemplaar van de aangepaste resourceprovider.
customResourceName Ja De naam van de aangepaste resource.

Volgende stappen