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 Proxyressourcen implementieren. Wenn Sie mit Azure Custom Resource Providers nicht vertraut sind, sehen Sie sich die Übersicht zu benutzerdefinierten Ressourcenanbietern an.
Definieren eines Proxyressourcenendpunkts
Eine Proxyressource kann erstellt werden, indem routingType als „Proxy“ angegeben wird.
Beispiel für einen benutzerdefinierten Ressourcenanbieter:
{
"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 "Proxy"-Ressourcenendpunkt 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 an einer einzelnen Ressource auszuführen, sowie GET, um alle vorhandenen Ressourcen abzurufen.
Hinweis
Die idFelder nameund type Felder sind nicht erforderlich, aber sie sind erforderlich, 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"
}
}
}
Parameterverweis:
| Eigentum | Beispiel | Description |
|---|---|---|
| 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
Eingehende Azure-API-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 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".
Endpunktantwort:
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
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:
- 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".
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
Diese Anforderung wird dann im Formular 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 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".
Endpunktantwort:
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
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
Diese Anforderung wird dann im Formular 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 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". - Die Liste der Ressourcen sollte unter der Eigenschaft der obersten Ebene
valueplatziert werden.
Endpunktantwort:
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 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 Ressourcencache-Referenz