Schnellstart: Erstellen eines benutzerdefinierten Azure-Ressourcenanbieters und Bereitstellen benutzerdefinierter Ressourcen
In dieser Schnellstartanleitung erstellen Sie einen benutzerdefinierten Ressourcenanbieter und stellen benutzerdefinierte Ressourcen für diesen Ressourcenanbieter bereit. Weitere Informationen zu benutzerdefinierten Ressourcenanbietern finden Sie unter Benutzerdefinierte Azure-Ressourcenanbieter: Übersicht.
Voraussetzungen
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- In dieser Schnellstartanleitung müssen
REST
-Vorgänge aufgerufen werden. Es gibt verschiedene Möglichkeiten zum Senden von REST-Anforderungen.
Bereiten Sie die Umgebung für die Azure CLI vor.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
In Azure CLI-Beispielen wird az rest
für Anforderungen vom Typ REST
verwendet. Weitere Informationen finden Sie unter az rest.
Bereitstellen eines benutzerdefinierten Ressourcenanbieters
Um den benutzerdefinierten Ressourcenanbieter einzurichten, stellen Sie eine Beispielvorlage in Ihrem Azure-Abonnement bereit.
Die Vorlage stellt die folgenden Ressourcen in Ihrem Abonnement bereit:
- Funktions-App mit den Vorgängen für die Ressourcen und Aktionen.
- Speicherkonto zum Speichern von Benutzern, die durch den benutzerdefinierten Ressourcenanbieter erstellt werden.
- Benutzerdefinierter Ressourcenanbieter, der die benutzerdefinierten Ressourcentypen und Aktionen definiert. Der Endpunkt der Funktions-App wird zum Senden von Anforderungen verwendet.
- Benutzerdefinierte Ressource vom benutzerdefinierten Ressourcenanbieter.
Verwenden Sie die Azure CLI, PowerShell oder das Azure-Portal, um den benutzerdefinierten Ressourcenanbieter bereitzustellen.
In diesem Beispiel werden Sie aufgefordert, eine Ressourcengruppe, einen Standort und den Funktions-App-Namen des Anbieters einzugeben. Die Namen werden in Variablen gespeichert, die in anderen Befehlen verwendet werden. Mit den Befehlen az group create und az deployment group create werden die Ressourcen bereitgestellt.
read -p "Enter a resource group name:" rgName &&
read -p "Enter the location (i.e. eastus):" location &&
read -p "Enter the provider's function app name:" funcName &&
templateUri="https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/custom-providers/customprovider.json" &&
az group create --name $rgName --location "$location" &&
az deployment group create --resource-group $rgName --template-uri $templateUri --parameters funcName=$funcName &&
echo "Press [ENTER] to continue ..." &&
read
Um die Vorlage über das Azure-Portal bereitzustellen, wählen Sie die Schaltfläche In Azure bereitstellen aus.
Anzeigen des benutzerdefinierten Anbieters mit Ressource
Im Portal ist der benutzerdefinierte Ressourcenanbieter ein ausgeblendeter Ressourcentyp. Um zu bestätigen, dass der Ressourcenanbieter bereitgestellt wurde, wechseln Sie zur Ressourcengruppe, und wählen Sie Ausgeblendete Typen anzeigen aus.
Um die benutzerdefinierte Ressource anzuzeigen, die Sie bereitgestellt haben, verwenden Sie den GET
-Vorgang für Ihren Ressourcentyp. Der in der JSON-Antwort angezeigte Ressourcentyp Microsoft.CustomProviders/resourceProviders/users
umfasst die Ressource, die von der Vorlage erstellt wurde.
GET https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users?api-version=2018-09-01-preview
subID=$(az account show --query id --output tsv)
requestURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users?api-version=2018-09-01-preview"
az rest --method get --uri $requestURI
Sie erhalten die folgende Antwort:
{
"value": [
{
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
"name": "ana",
"properties": {
"FullName": "Ana Bowman",
"Location": "Moon",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
]
}
Aufrufaktion
Ihr benutzerdefinierter Ressourcenanbieter verfügt auch über eine Aktion namens ping
. Der Code, der die Anforderung verarbeitet, wird in der Funktions-App implementiert. Die ping
-Aktion antwortet mit einer Begrüßung.
Um eine ping
-Anforderung zu senden, verwenden Sie den POST
-Vorgang für Ihre benutzerdefinierte Aktion.
POST https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/ping?api-version=2018-09-01-preview
pingURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/ping?api-version=2018-09-01-preview"
az rest --method post --uri $pingURI
Sie erhalten die folgende Antwort:
{
"message": "hello <function-name>.azurewebsites.net",
"pingcontent": {
"source": "<function-name>.azurewebsites.net"
}
}
Verwenden von PUT zum Erstellen einer Ressource
In dieser Schnellstartanleitung hat die Vorlage den Ressourcentyp Microsoft.CustomProviders/resourceProviders/users
verwendet, um eine Ressource bereitzustellen. Sie können auch einen PUT
-Vorgang verwenden, um eine Ressource zu erstellen. Wenn beispielsweise eine Ressource nicht mit der Vorlage bereitgestellt wird, erstellt der PUT
-Vorgang eine Ressource.
In diesem Beispiel erstellt der PUT
-Vorgang eine neue Ressource, weil die Vorlage bereits eine Ressource bereitgestellt hat.
PUT https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/<resource-name>?api-version=2018-09-01-preview
{"properties":{"FullName": "Test User", "Location": "Earth"}}
addURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users/testuser?api-version=2018-09-01-preview"
az rest --method put --uri $addURI --body "{'properties':{'FullName': 'Test User', 'Location': 'Earth'}}"
Sie erhalten die folgende Antwort:
{
"id": "/subscriptions/<sub-ID>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
"name": "testuser",
"properties": {
"FullName": "Test User",
"Location": "Earth",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
Sie können den GET
-Vorgang aus dem Abschnitt Anzeigen des benutzerdefinierten Ressourcenanbieters mit Ressource erneut ausführen, um die beiden erstellten Ressourcen anzuzeigen. In diesem Beispiel wird die Ausgabe des Azure CLI-Befehls gezeigt.
{
"value": [
{
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
"name": "ana",
"properties": {
"FullName": "Ana Bowman",
"Location": "Moon",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
},
{
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
"name": "testuser",
"properties": {
"FullName": "Test User",
"Location": "Earth",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
]
}
Befehle für benutzerdefinierte Ressourcenanbieter
Verwenden Sie die custom-providers-Befehle, um mit Ihrem benutzerdefinierten Ressourcenanbieter zu arbeiten.
Auflisten benutzerdefinierter Ressourcenanbieter
Verwenden Sie den Befehl list
, um alle benutzerdefinierten Ressourcenanbieter eines Abonnements anzuzeigen. In der Standardeinstellung werden die benutzerdefinierten Ressourcenanbieter des aktuellen Abonnements aufgelistet, oder Sie können den Parameter --subscription
angeben. Um für eine Ressourcengruppe aufzulisten, verwenden Sie den Parameter --resource-group
.
az custom-providers resource-provider list --subscription $subID
[
{
"actions": [
{
"endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
"name": "ping",
"routingType": "Proxy"
}
],
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceproviders/<provider-name>",
"location": "eastus",
"name": "<provider-name>",
"provisioningState": "Succeeded",
"resourceGroup": "<rg-name>",
"resourceTypes": [
{
"endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
"name": "users",
"routingType": "Proxy, Cache"
}
],
"tags": {},
"type": "Microsoft.CustomProviders/resourceproviders",
"validations": null
}
]
Anzeigen der Eigenschaften
Verwenden Sie den Befehl show
, um die Eigenschaften des benutzerdefinierten Ressourcenanbieters anzuzeigen. Das Ausgabeformat ähnelt der Ausgabe von list
.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Neue Ressource erstellen
Verwenden Sie den Befehl create
, um einen benutzerdefinierten Ressourcenanbieter zu erstellen oder zu aktualisieren. In diesem Beispiel werden actions
und resourceTypes
aktualisiert.
az custom-providers resource-provider create --resource-group $rgName --name $funcName \
--action name=ping endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type=Proxy \
--resource-type name=users endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type="Proxy, Cache"
"actions": [
{
"endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
"name": "ping",
"routingType": "Proxy"
}
],
"resourceTypes": [
{
"endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
"name": "users",
"routingType": "Proxy, Cache"
}
],
Aktualisieren der Tags des Anbieters
Der Befehl update
aktualisiert nur Tags für einen benutzerdefinierten Ressourcenanbieter. Im Azure-Portal zeigt der App Service des benutzerdefinierten Ressourcenanbieters das Tag an.
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Löschen eines benutzerdefinierten Ressourcenanbieters
Bei Verwendung des Befehls delete
werden Sie zur Bestätigung aufgefordert, und es wird nur der benutzerdefinierte Ressourcenanbieter gelöscht. Das Speicherkonto, der App Service und der App Service-Plan werden nicht gelöscht. Nachdem der Anbieter gelöscht wurde, wechseln Sie zu einer Eingabeaufforderung zurück.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Bereinigen von Ressourcen
Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr benötigen, können Sie die Ressourcengruppe löschen. Wenn Sie eine Ressourcengruppe löschen, werden alle darin enthaltenen Ressourcen gelöscht.
az group delete --resource-group $rgName
Nächste Schritte
Eine Einführung in benutzerdefinierte Ressourcenanbieter finden Sie im folgenden Artikel: