Referenz zum benutzerdefinierten Ressourcencache
In diesem Artikel werden die Anforderungen an Endgeräte zur Implementierung benutzerdefinierter Cacheressourcen erläutert. Wenn Sie mit benutzerdefinierten Azure-Ressourcenanbietern nicht vertraut sind, siehe die Übersicht über benutzerdefinierte Ressourcenanbieter.
Definieren eines Endpunkts einer Cacheressource
Eine Proxyressource kann erstellt werden, indem routingType
als „Proxy, Cache“ angegeben wird.
Beispiel eines benutzerdefinierten Ressourcenanbieters:
{
"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 des Ressourcenendpunkts eines Proxys
Ein Endpunkt, der einen Endpunkt einer Ressource des Typs „Proxy, Cache“ implementiert, muss die Anforderung und Antwort für die neue API in Azure verarbeiten. In diesem Fall erzeugt resourceType 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.
Hinweis
Die Azure-API generiert die Anforderungsmethoden PUT
, GET
und DELETE
, aber der Endpunkt des Caches muss nur PUT
und DELETE
verarbeiten.
Es wird empfohlen, dass der Endpunkt auch GET
implementiert.
Erstellen einer benutzerdefinierten Ressource
Azure-API – Eingehende 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 in folgender Form 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 wird vom Endpunkt dann an den Kunden zurückgesendet. Als Antwort sollte Folgendes zurückgegeben werden:
- Ein gültiges JSON-Objektdokument. Alle Arrays und Zeichenfolgen müssen unter einem obersten Objekt geschachtelt sein.
- Der Header
Content-Type
muss auf „application/json; charset=utf-8“ festgelegt werden. - Der benutzerdefinierte Ressourcenanbieter überschreibt die Felder
name
,type
undid
für die Anforderung. - Der benutzerdefinierte Ressourcenanbieter gibt für einen Cacheendpunkt nur Felder unter dem
properties
-Objekt zurück.
Antwort des Endpunkts:
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 vom benutzerdefinierten Ressourcenanbieter automatisch 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
Azure-API – Eingehende 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 in folgender Form 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 wird vom Endpunkt dann an den Kunden zurückgesendet. Als Antwort sollte Folgendes zurückgegeben werden:
- Ein gültiges JSON-Objektdokument. Alle Arrays und Zeichenfolgen müssen unter einem obersten Objekt geschachtelt sein.
- Der Header
Content-Type
muss auf „application/json; charset=utf-8“ festgelegt werden. - Der benutzerdefinierte Azure-Ressourcenanbieter entfernt das Element nur dann aus seinem Cache, wenn eine Antwort der Stufe 200 zurückgegeben wird. Selbst wenn die Ressource nicht vorhanden ist, sollte der Endpunkt 204 zurückgeben.
Antwort des Endpunkts:
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
Azure-API – Eingehende 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
Azure-API – Eingehende 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 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