Erstellen und Verwenden eines benutzerdefinierten Ressourcenanbieters

Ein benutzerdefinierter Ressourcenanbieter ist ein Vertrag zwischen Azure und einem Endpunkt. Mit benutzerdefinierten Ressourcenanbietern können Sie Workflows in Azure ändern. In diesem Tutorial wird der Prozess zum Erstellen eines benutzerdefinierten Ressourcenanbieters veranschaulicht. Sollten Sie noch nicht mit benutzerdefinierten Azure-Ressourcenanbietern vertraut sein, sehen Sie sich die Übersicht über benutzerdefinierte Azure-Ressourcenanbieter an.

Erstellen eines benutzerdefinierten Ressourcenanbieters

Hinweis

In diesem Tutorial wird nicht gezeigt, wie Sie einen Endpunkt erstellen. Falls Sie keinen RESTful-Endpunkt besitzen, arbeiten Sie das Tutorial zur Erstellung von RESTful-Endpunkten durch. Dieses Tutorial dient als Grundlage für das aktuelle Tutorial.

Nach der Erstellung eines Endpunkts können Sie einen benutzerdefinierten Ressourcenanbieter erstellen, um einen Vertrag zwischen dem Anbieter und dem Endpunkt zu generieren. Mit einem benutzerdefinierten Ressourcenanbieter können Sie eine Liste mit Endpunktdefinitionen angeben:

{
  "name": "myEndpointDefinition",
  "routingType": "Proxy",
  "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
}
Eigenschaft Erforderlich Beschreibung
name Ja Der Name der Endpunktdefinition. Azure macht diesen Namen über seine API unter „/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders
/resourceProviders/{resourceProviderName}/{endpointDefinitionName}“ verfügbar.
routingType Nein Der Endpunktvertragstyp. Wird kein Wert angegeben, wird standardmäßig „Proxy“ verwendet.
endpoint Ja Der Endpunkt, an den die Anforderungen geleitet werden. Der Endpunkt verarbeitet die Antwort sowie alle Nebenwirkungen der Anforderung.

Der Wert von endpoint ist die Trigger-URL der Azure-Funktions-App. Die Platzhalter <yourapp>, <funcname> und <functionkey> müssen durch Werte für Ihre erstellte Funktions-App ersetzt werden.

Definieren von benutzerdefinierten Aktionen und Ressourcen

Der benutzerdefinierte Ressourcenanbieter enthält eine Liste mit Endpunktdefinitionen, die unter den Eigenschaften actions und resourceTypes modelliert sind. Die Eigenschaft actions ist den benutzerdefinierten Aktionen zugeordnet, die vom benutzerdefinierten Ressourcenanbieter verfügbar gemacht werden, und bei der Eigenschaft resourceTypes handelt es sich um die benutzerdefinierten Ressourcen. In diesem Tutorial verfügt der benutzerdefinierte Ressourcenanbieter über die Eigenschaft actions mit dem Namen myCustomAction und die Eigenschaft resourceTypes mit dem Namen myCustomResources.

{
  "properties": {
    "actions": [
      {
        "name": "myCustomAction",
        "routingType": "Proxy",
        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
      }
    ],
    "resourceTypes": [
      {
        "name": "myCustomResources",
        "routingType": "Proxy",
        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
      }
    ]
  },
  "location": "eastus"
}

Bereitstellen eines benutzerdefinierten Ressourcenanbieters

Hinweis

Sie müssen die endpoint-Werte durch die Trigger-URL aus der Funktions-App ersetzen, die im vorherigen Tutorial erstellt wurde.

Sie können den vorherigen benutzerdefinierten Ressourcenanbieter mit einer Azure Resource Manager-Vorlage bereitstellen:

{
    "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.CustomProviders/resourceProviders",
            "name": "myCustomProvider",
            "apiVersion": "2018-09-01-preview",
            "location": "eastus",
            "properties": {
                "actions": [
                    {
                        "name": "myCustomAction",
                        "routingType": "Proxy",
                        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
                    }
                ],
                "resourceTypes": [
                    {
                        "name": "myCustomResources",
                        "routingType": "Proxy",
                        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
                    }
                ]
            }
        }
    ]
}

Verwenden benutzerdefinierter Aktionen und Ressourcen

Nach dem Erstellen eines benutzerdefinierten Ressourcenanbieters können Sie die neuen Azure-APIs verwenden. In den folgenden Abschnitten wird das Aufrufen und Verwenden eines benutzerdefinierten Ressourcenanbieters erläutert.

Benutzerdefinierte Aktionen

Azure CLI

Hinweis

Sie müssen die Platzhalter {subscriptionId} und {resourceGroupName} durch das Abonnement und die Ressourcengruppe ersetzen, die Sie für die Bereitstellung des benutzerdefinierten Ressourcenanbieters verwendet haben.

az resource invoke-action --action myCustomAction \
                          --ids /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider \
                          --request-body
                            '{
                                "hello": "world"
                            }'
Parameter Erforderlich BESCHREIBUNG
action Ja Der Name der Aktion, die im benutzerdefinierten Ressourcenanbieter definiert ist
ids Ja Die Ressourcen-ID des benutzerdefinierten Ressourcenanbieters
request-body Nein Der Anforderungstext, der an den Endpunkt gesendet wird

Benutzerdefinierte Ressourcen

Hinweis

Sie müssen die Platzhalter {subscriptionId} und {resourceGroupName} durch das Abonnement und die Ressourcengruppe ersetzen, die Sie für die Bereitstellung des benutzerdefinierten Ressourcenanbieters verwendet haben.

Erstellen einer benutzerdefinierten Ressource

az resource create --is-full-object \
                   --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1 \
                   --properties
                    '{
                        "location": "eastus",
                        "properties": {
                            "hello" : "world"
                        }
                    }'
Parameter Erforderlich BESCHREIBUNG
is-full-object Ja Gibt an, dass das properties-Objekt noch andere Optionen enthält, z. B. „location“, „tags“, „SKU“ oder „plan“.
id Ja Die Ressourcen-ID der benutzerdefinierten Ressource. Diese ID ist eine Erweiterung der Ressourcen-ID des benutzerdefinierten Ressourcenanbieters.
properties Ja Der Anforderungstext, der an den Endpunkt gesendet wird

Löschen einer benutzerdefinierten Ressource

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parameter Erforderlich BESCHREIBUNG
id Ja Die Ressourcen-ID der benutzerdefinierten Ressource. Diese ID ist eine Erweiterung der Ressourcen-ID des benutzerdefinierten Ressourcenanbieters.

Abrufen einer benutzerdefinierten Ressource

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parameter Erforderlich BESCHREIBUNG
id Ja Die Ressourcen-ID der benutzerdefinierten Ressource. Diese ID ist eine Erweiterung der Ressourcen-ID des benutzerdefinierten Ressourcenanbieters.

Hinweis

Denken Sie nach Abschluss der Bereitstellung und Nutzung des benutzerdefinierten Ressourcenanbieters daran, alle erstellten Ressourcen zu bereinigen, einschließlich der Azure-Funktions-App.

Nächste Schritte

In diesem Artikel haben Sie Grundlegendes über benutzerdefinierte Ressourcenanbieter gelernt. Weitere Informationen finden Sie unter: