Hinzufügen benutzerdefinierter Ressourcen zur Azure-REST-API
In diesem Artikel werden die Anforderungen und bewährten Methoden für das Erstellen von Endpunkten für benutzerdefinierte Azure-Ressourcenanbieter erläutert, bei denen benutzerdefinierte Ressourcen implementiert werden. Wenn Sie mit benutzerdefinierten Azure-Ressourcenanbietern nicht vertraut sind, siehe die Übersicht über benutzerdefinierte Ressourcenanbieter.
Definieren eines Endpunkts einer Ressource
Ein Endpunkt ist eine URL, die auf einen Dienst verweist, der den zugrunde liegenden Vertrag zwischen ihm und Azure implementiert. Der Endpunkt ist im benutzerdefinierten Ressourcenanbieter definiert und kann jede öffentlich zugängliche URL sein. Das folgende Beispiel enthält einen Ressourcentyp namens myCustomResource
, der von endpointURL
implementiert wurde.
Beispiel eines Ressourcenanbieters:
{
"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}"
}
Erstellen eines Ressourcenendpunkts
Ein Endpunkt, der einen Ressourcentyp implementiert, muss die Anforderung und Antwort für die neue API in Azure bearbeiten. Wenn ein benutzerdefinierter Ressourcenanbieter mit einem Ressourcentyp erstellt wird, generiert er in Azure einen neuen Satz von APIs. In diesem Fall erzeugt der Ressourcentyp eine neue Azure-Ressourcen-API für PUT
, GET
und DELETE
, um CRUD-Vorgänge (Create [Erstellen], Retrieve [Abrufen], Update [Aktualisieren], Delete [Löschen]) für eine einzelne Ressource auszuführen, sowie GET
, um alle vorhandenen Ressourcen abzurufen:
Bearbeiten Sie eine einzelne Ressource (PUT
, GET
und DELETE
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource/{myCustomResourceName}
Rufen Sie alle Ressourcen ab (GET
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource
Für benutzerdefinierte Ressourcen bieten benutzerdefinierte Ressourcenanbieter zwei Routingtypen an: Proxy
und Proxy, Cache
.
Proxyroutingtyp
Der Proxy
-Routingtyp leitet alle Anforderungsmethoden zu dem im benutzerdefinierten Ressourcenprovider angegebenen Endpunkt.
Proxy
sollte in folgenden Fällen verwendet werden:
- Vollständige Kontrolle über die Antwort ist erforderlich.
- Integrieren von Systemen mit bestehenden Ressourcen.
Weitere Informationen über Proxy
-Ressourcen finden Sie in der Referenz zum benutzerdefinierten Ressourcenproxy.
Proxycache-Routingtyp
Der Proxy, Cache
-Routingtyp leitet nur PUT
- und DELETE
-Anforderungsmethoden zu dem im benutzerdefinierten Ressourcenanbieter angegebenen Endpunkt. Der benutzerdefinierte Ressourcenanbieter gibt automatisch GET
-Anforderungen auf Basis dessen zurück, was er im Cache gespeichert hat. Wenn eine benutzerdefinierte Ressource mit einem Cache markiert ist, fügt der benutzerdefinierte Ressourcenanbieter auch Felder in der Antwort hinzu bzw. überschreibt sie, um die APIs zu Azure konform zu machen.
Proxy, Cache
sollte in folgenden Fällen verwendet werden:
- Erstellen eines neuen Systems, das über keine vorhandenen Ressourcen verfügt.
- Arbeiten mit vorhandenem Azure-Ökosystem.
Weitere Informationen über Proxy, Cache
-Ressourcen finden Sie in der Referenz zum benutzerdefinierten Ressourcencache.
Erstellen einer benutzerdefinierten Ressource
Es gibt prinzipiell zwei Möglichkeiten, eine benutzerdefinierte Ressource aus einem benutzerdefinierten Ressourcenanbieter zu erstellen:
- Azure CLI
- Azure Resource Manager-Vorlagen
Azure CLI
Erstellen einer benutzerdefinierten Ressource:
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 | Erforderlich | BESCHREIBUNG |
---|---|---|
is-full-object | Ja | Gibt an, dass das properties-Objekt noch andere Optionen enthält, z.B. „location“, „tags“, „sku“ und/oder „plan“. |
id | Ja | Die Ressourcen-ID der benutzerdefinierten Ressource. Diese Ressource sollte außerhalb des Ressourcenanbieters vorhanden sein. |
properties | Ja | Der Anforderungstext, der an den Endpunkt gesendet wird. |
Löschen einer benutzerdefinierten Azure-Ressource:
az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parameter | Erforderlich | BESCHREIBUNG |
---|---|---|
id | Ja | Die Ressourcen-ID der benutzerdefinierten Ressource. Diese Ressource sollte außerhalb des Ressourcenanbieters vorhanden sein. |
Abrufen einer benutzerdefinierten Azure-Ressource:
az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parameter | Erforderlich | BESCHREIBUNG |
---|---|---|
id | Ja | Die Ressourcen-ID der benutzerdefinierten Ressource. Diese Ressource sollte außerhalb des Ressourcenanbieters vorhanden sein. |
Azure Resource Manager-Vorlage
Hinweis
Ressourcen erfordern, dass die Antwort einen entsprechenden id
, name
und type
aus dem Endpunkt enthält.
Azure Resource Manager-Vorlagen erfordern, dass id
, name
und type
ordnungsgemäß vom Downstreamendpunkt zurückgegeben werden. Eine zurückgegebene Ressourcenantwort sollte folgende Form haben:
Beispiel einer Endpunktantwort:
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{customResourceName}",
"name": "{customResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}"
}
Beispiel für eine Azure Resource Manager-Vorlage:
{
"$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 | Erforderlich | BESCHREIBUNG |
---|---|---|
resourceTypeName | Ja | Der Name des im benutzerdefinierten Ressourcenanbieter definierten Ressourcentyps. |
resourceProviderName | Ja | Der Name der Instanz des benutzerdefinierten Ressourcenanbieters. |
customResourceName | Ja | Der Name der benutzerdefinierten Ressource. |
Nächste Schritte
- Übersicht über benutzerdefinierte Azure-Ressourcenanbieter
- Schnellstart: Erstellen eines benutzerdefinierten Azure-Ressourcenanbieters und Bereitstellen benutzerdefinierter Ressourcen
- Tutorial: Erstellen von benutzerdefinierten Aktionen und Ressourcen in Azure
- Vorgehensweise: Hinzufügen benutzerdefinierter Aktionen zur Azure-REST-API
- Referenz zu benutzerdefinierten Ressourcenproxys
- Referenz zum benutzerdefinierten Ressourcencache