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. |