Referenz zu benutzerdefinierten Ressourcenproxys
In diesem Artikel werden die Anforderungen an Endgeräte zur Implementierung benutzerdefinierter Proxyressourcen erläutert. Wenn Sie mit benutzerdefinierten Azure-Ressourcenanbietern noch nicht vertraut sind, finden Sie weitere Informationen in der Übersicht über benutzerdefinierte Ressourcenanbieter.
Definieren eines Proxyressourcenendpunkts
Eine Proxyressource kann erstellt werden, indem routingType
als „Proxy“ angegeben wird.
Beispiel eines benutzerdefinierten Ressourcenanbieters:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"routingType": "Proxy",
"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 Endpunkt einer Ressource des Typs „Proxy“ 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-Vorgänge (Create, Retrieve, Update, Delete – Erstellen, Abrufen, Aktualisieren, Löschen) für eine einzelne Ressource auszuführen, sowie GET
, um alle vorhandenen Ressourcen abzurufen.
Hinweis
Die Felder id
, name
und type
sind nicht zwingend erforderlich, werden aber benötigt, um die benutzerdefinierte Ressource in ein vorhandenes Azure-Ökosystem zu integrieren.
Beispielressource:
{
"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"
}
}
}
Parameterreferenz:
Eigenschaft | Beispiel | BESCHREIBUNG |
---|---|---|
name | '{myCustomResourceName}' | Der Name der benutzerdefinierten Ressource. |
type | 'Microsoft.CustomProviders/resourceProviders/{resourceTypeName}' | Der Namespace des Ressourcentyps. |
id | '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{myCustomResourceName}' |
Die Ressourcen-ID. |
Erstellen einer benutzerdefinierten Ressource
Azure-API – Eingehende Anforderung:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resource-provider-name}/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.
Antwort des Endpunkts:
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"
}
}
}
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. Die Antwort sollte Folgendes zurückgeben:
- 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.
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
Diese Anforderung wird dann in folgender Form an den Endpunkt weitergeleitet:
GET 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.
Antwort des Endpunkts:
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"
}
}
}
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
Diese Anforderung wird dann in folgender Form an den Endpunkt weitergeleitet:
GET 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
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. - Die Liste der Ressourcen sollte unter der Eigenschaft
value
der obersten Ebene platziert werden.
Antwort des Endpunkts:
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"
}
}
}
]
}
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 zum benutzerdefinierten Ressourcencache