Egyéni műveletek hozzáadása az Azure REST API-hoz

Ez a cikk az egyéni műveleteket megvalósító Azure-beli egyéni erőforrás-szolgáltatói végpontok létrehozására vonatkozó követelményeket és ajánlott eljárásokat ismerteti. Ha nem ismeri az Azure-beli egyéni erőforrás-szolgáltatókat, tekintse meg az egyéni erőforrás-szolgáltatók áttekintését.

Műveletvégpont definiálása

A végpont egy olyan URL-cím, amely egy szolgáltatásra mutat, amely megvalósítja a mögöttes szerződést az Azure-sal. A végpont az egyéni erőforrás-szolgáltatóban van definiálva, és bármely nyilvánosan elérhető URL-cím lehet. Az alábbi példában egy nevűmyCustomAction művelet van implementálva.endpointURL

Minta ResourceProvider:

{
  "properties": {
    "actions": [
      {
        "name": "myCustomAction",
        "routingType": "Proxy",
        "endpoint": "https://{endpointURL}/"
      }
    ]
  },
  "location": "eastus",
  "type": "Microsoft.CustomProviders/resourceProviders",
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
  "name": "{resourceProviderName}"
}

Műveletvégpont létrehozása

A műveletet megvalósító végpontnak kezelnie kell az új API kérését és válaszát az Azure-ban. Amikor létrehoz egy műveletet tartalmazó egyéni erőforrás-szolgáltatót, új API-kat hoz létre az Azure-ban. Ebben az esetben a művelet létrehoz egy új Azure action API-t a hívásokhoz POST :

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomAction

Bejövő Azure API-kérés:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomAction?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

{
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
}

Ezt a kérést a rendszer a végpontra továbbítja az űrlapon:

POST 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}/myCustomAction

{
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
}

Hasonlóképpen, a végpont válasza vissza lesz továbbítja az ügyfélnek. A végpont válaszának a következőt kell visszaadnia:

  • Érvényes JSON-objektumdokumentum. Az összes tömböt és sztringet egy felső objektum alá kell ágyazni.
  • A Content-Type fejlécet "application/json; charset=utf-8".
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
}

Egyéni Azure-erőforrás-szolgáltató válasza:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
}

Egyéni művelet meghívása

Az egyéni műveletet kétféleképpen hívhatja meg az egyéni erőforrás-szolgáltatótól:

  • Azure CLI
  • Azure Resource Manager-sablonok

Azure CLI

az resource invoke-action --action {actionName} \
                          --ids /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName} \
                          --request-body \
                            '{
                                "myProperty1": "myPropertyValue1",
                                "myProperty2": {
                                    "myProperty3": "myPropertyValue3"
                                }
                            }'
Paraméter Kötelező Leírás
action igen A ResourceProviderben definiált művelet neve.
Azonosítók igen A ResourceProvider erőforrás-azonosítója.
kérelemtörzs nem A végpontra küldött kérelemtörzs.

Azure Resource Manager-sablon

Megjegyzés

A műveletek korlátozott támogatást nyújtanak az Azure Resource Manager-sablonokban. Ahhoz, hogy a műveletet meghívhassa egy sablonon belül, az előtagot a list nevében kell tartalmaznia.

Minta ResourceProvider listaművelettel:

{
  "properties": {
    "actions": [
      {
        "name": "listMyCustomAction",
        "routingType": "Proxy",
        "endpoint": "https://{endpointURL}/"
      }
    ]
  },
  "location": "eastus"
}

Minta Azure Resource Manager-sablon:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "variables": {
        "resourceIdentifier": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
        "apiVersion": "2018-09-01-preview",
        "functionValues": {
            "myProperty1": "myPropertyValue1",
            "myProperty2": {
                "myProperty3": "myPropertyValue3"
            }
        }
    },
    "resources": [],
    "outputs": {
        "myCustomActionOutput": {
            "type": "object",
            "value": "[listMyCustomAction(variables('resourceIdentifier'), variables('apiVersion'), variables('functionValues'))]"
        }
    }
}
Paraméter Kötelező Leírás
resourceIdentifier igen A ResourceProvider erőforrás-azonosítója.
apiVersion igen Az erőforrás-futtatókörnyezet API-verziója. Ennek mindig a "2018-09-01-preview" értéknek kell lennie.
functionValues nem A végpontra küldött kérelemtörzs.

Következő lépések