Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden die Anforderungen für Endpunkte erläutert, die benutzerdefinierte Cacheressourcen implementieren. Wenn Sie mit Azure Custom Resource Providers nicht vertraut sind, sehen Sie sich die Übersicht zu benutzerdefinierten Ressourcenanbietern an.
Definieren eines Cacheressourcenendpunkts
Eine Proxyressource kann erstellt werden, indem routingType auf "Proxy, Cache" gesetzt wird.
Beispiel für einen benutzerdefinierten Ressourcenanbieter:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"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 Proxyressourcenendpunkts
Ein Endpunkt, der einen Ressourcenendpunkt "Proxy, Cache" implementiert, muss die Anforderung und Antwort für die neue API in Azure verarbeiten. In diesem Fall generiert der resourceType eine neue Azure-Ressourcen-API für PUT, GET und DELETE, um CRUD-Operationen an einer einzelnen Ressource durchzuführen, sowie für GET, um alle vorhandenen Ressourcen abzurufen.
Hinweis
Die Azure-API generiert die Anforderungsmethoden PUT, GET und DELETE, aber der Cacheendpunkt muss nur PUT und DELETE verarbeiten.
Wir empfehlen, dass der Endpunkt auch GET implementiert.
Erstellen einer benutzerdefinierten Ressource
Eingehende Azure-API-Anforderung:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Diese Anforderung wird dann im Formular an den Endpunkt weitergeleitet:
PUT https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Die Antwort vom Endpunkt wird dann an den Kunden weitergeleitet. Die Antwort sollte folgendes zurückgeben:
- Ein gültiges JSON-Objektdokument. Alle Arrays und Zeichenfolgen sollten unter einem obersten Objekt geschachtelt werden.
- Der
Content-TypeHeader sollte auf "application/json" festgelegt werden. charset=utf-8". - Der benutzerdefinierte Ressourcenanbieter überschreibt die Felder
name,typeundidfür die Anforderung. - Der benutzerdefinierte Ressourcenanbieter gibt nur Felder unter dem
propertiesObjekt für einen Cacheendpunkt zurück.
Endpunktantwort:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Die Felder name, id und type werden automatisch vom benutzerdefinierten Ressourcenanbieter für die benutzerdefinierte Ressource generiert.
Antwort des benutzerdefinierten Azure-Ressourcenanbieters:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Entfernen einer benutzerdefinierten Ressource
Eingehende Azure-API-Anforderung:
Delete https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Diese Anforderung wird dann im Formular an den Endpunkt weitergeleitet:
Delete https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
Die Antwort vom Endpunkt wird dann an den Kunden weitergeleitet. Die Antwort sollte folgendes zurückgeben:
- Ein gültiges JSON-Objektdokument. Alle Arrays und Zeichenfolgen sollten unter einem obersten Objekt geschachtelt werden.
- Der
Content-TypeHeader sollte auf "application/json" festgelegt werden. charset=utf-8". - Der Azure Custom Resource Provider entfernt das Element nur aus dem Cache, wenn eine Antwort einer 200er-Stufe zurückgegeben wird. Auch wenn die Ressource nicht vorhanden ist, sollte der Endpunkt 204 zurückgeben.
Endpunktantwort:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Antwort des benutzerdefinierten Azure-Ressourcenanbieters:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Abrufen einer benutzerdefinierten Ressource
Eingehende Azure-API-Anforderung:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Die Anforderung wird nicht an den Endpunkt weitergeleitet.
Antwort des benutzerdefinierten Azure-Ressourcenanbieters:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Aufzählen aller benutzerdefinierten Ressourcen
Eingehende Azure-API-Anforderung:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Die Anforderung wird nicht an den Endpunkt weitergeleitet.
Antwort des benutzerdefinierten Azure-Ressourcenanbieters:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"value" : [
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
]
}
Nächste Schritte
- Übersicht über benutzerdefinierte Azure-Ressourcenanbieter
- Schnellstart: Erstellen eines benutzerdefinierten Anbieters und Bereitstellen von benutzerdefinierten Ressourcen
- Lernprogramm: Erstellen von benutzerdefinierten Aktionen und Ressourcen in Azure
- Vorgehensweise: Hinzufügen von benutzerdefinierten Aktionen zur Azure REST-API
- Referenz: Benutzerdefinierte Ressourcenproxyreferenz