Azure-beli felügyelt alkalmazások értesítésekkel
Az Azure-beli felügyelt alkalmazásértesítések lehetővé teszik a közzétevők számára a felügyelt alkalmazáspéldányok életciklus-eseményei alapján történő műveletek automatizálását. A közzétevők megadhatnak egy egyéni értesítési webhook-végpontot az új és meglévő felügyelt alkalmazáspéldányokkal kapcsolatos eseményértesítések fogadásához. A közzétevők egyéni munkafolyamatokat állíthatnak be az alkalmazás kiépítése, frissítései és törlésekor.
Első lépések
A felügyelt alkalmazásértesítések fogadásának megkezdéséhez hozzon létre egy nyilvános HTTPS-végpontot. Adja meg a végpontot a szolgáltatáskatalógus alkalmazásdefiníciójának vagy a Microsoft Azure Marketplace ajánlatának közzétételekor.
Az alábbiakban a gyors kezdéshez ajánlott lépéseket találja:
- Hozzon létre egy nyilvános HTTPS-végpontot, amely naplózza a bejövő POST-kéréseket, és visszaadja a következőt
200 OK
: . - Adja hozzá a végpontot a szolgáltatáskatalógus alkalmazásdefinícióhoz vagy Azure Marketplace ajánlathoz a cikk későbbi részében leírtak szerint.
- Hozzon létre egy felügyelt alkalmazáspéldányt, amely az alkalmazásdefinícióra vagy Azure Marketplace ajánlatra hivatkozik.
- Ellenőrizze, hogy az értesítések érkeznek-e.
- Engedélyezze az engedélyezést a cikk Végponthitelesítés szakaszában leírtak szerint.
- A cikk Értesítési séma szakaszában található utasításokat követve elemezheti az értesítési kéréseket, és az értesítés alapján implementálhatja az üzleti logikát.
Szolgáltatáskatalógus alkalmazásdefiníciós értesítésének hozzáadása
Az alábbi példák bemutatják, hogyan adhat hozzá egy értesítési végpont URI-ját a portál vagy a REST API használatával.
Azure Portal
Első lépésként tekintse meg a rövid útmutatót: Azure Managed Application-definíció létrehozása és közzététele.
REST API
Megjegyzés
A felügyelt alkalmazásdefiníció tulajdonságában notificationEndpoints
csak egy végpontot adhat meg.
{
"properties": {
"isEnabled": true,
"lockLevel": "ReadOnly",
"displayName": "Sample Application Definition",
"description": "Notification-enabled application definition.",
"notificationPolicy": {
"notificationEndpoints": [
{
"uri": "https://isv.azurewebsites.net:1214?sig=unique_token"
}
]
},
"authorizations": [
{
"principalId": "d6b7fbd3-4d99-43fe-8a7a-f13aef11dc18",
"roleDefinitionId": "8e3af657-a8ff-443c-a75c-2fe8c4bcb635"
},
...
Felügyelt alkalmazásértesítések hozzáadása Azure Marketplace
További információ: Azure-alkalmazásajánlat létrehozása.
Eseményindítók
Az alábbi táblázat a és provisioningState
az eseményindítók összes lehetséges kombinációját eventType
és azok eseményindítóit ismerteti:
EventType | ProvisioningState | Értesítési eseményindító |
---|---|---|
PUT | Elfogadva | A felügyelt erőforráscsoport létrehozása és kivetítése sikeresen megtörtént az alkalmazás PUT (a felügyelt erőforráscsoporton belüli üzembe helyezés elindítása előtt) után. |
PUT | Sikeres | A felügyelt alkalmazás teljes kiépítése sikeres volt a PUT után. |
PUT | Sikertelen | Az alkalmazáspéldányok PUT-jének kiépítése bármely ponton meghiúsul. |
JAVÍTÁS | Sikeres | Miután sikeresen kijavítottuk a felügyelt alkalmazáspéldányon a címkéket, a JIT-hozzáférési szabályzatot vagy a felügyelt identitást. |
DELETE | Törlés | Amint a felhasználó kezdeményezi egy felügyelt alkalmazáspéldány törlését. |
DELETE | Törölve | A felügyelt alkalmazás teljes és sikeres törlése után. |
DELETE | Sikertelen | A törlési folyamat során felmerülő, a törlést letiltó hiba után. |
Értesítési séma
Amikor létrehoz egy webhookvégpontot az értesítések kezeléséhez, elemeznie kell a hasznos adatokat, hogy fontos tulajdonságokat kapjon, hogy aztán reagálhasson az értesítésre. A szolgáltatáskatalógus és Azure Marketplace felügyelt alkalmazásértesítések számos tulajdonságot biztosítanak, de vannak különbségek. A applicationDefinitionId
tulajdonság csak a szolgáltatáskatalógusra vonatkozik. A billingDetails
és plan
a tulajdonságok csak a Azure Marketplace vonatkoznak.
Az Azure hozzáfűzi /resource
a felügyelt alkalmazás definíciójában megadott értesítési végpont URI-ját. A webhookvégpontnak képesnek kell lennie az URI-n lévő /resource
értesítések kezelésére. Ha például az értesítési végpont URI-jának https://fabrikam.com
megadása után a webhookvégpont URI-ja a következő https://fabrikam.com/resource
: .
Szolgáltatáskatalógus alkalmazásértesítési sémája
Az alábbi minta egy szolgáltatáskatalógus-értesítést jelenít meg egy felügyelt alkalmazáspéldány sikeres üzembe helyezése után.
POST https://{your_endpoint_URI}/resource?{optional_parameter}={optional_parameter_value} HTTP/1.1
{
"eventType": "PUT",
"applicationId": "/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.Solutions/applications/<applicationName>",
"eventTime": "2019-08-14T19:20:08.1707163Z",
"provisioningState": "Succeeded",
"applicationDefinitionId": "/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.Solutions/applicationDefinitions/<appDefName>"
}
Ha a kiépítés sikertelen, a rendszer értesítést küld a hiba részleteiről a megadott végpontra.
POST https://{your_endpoint_URI}/resource?{optional_parameter}={optional_parameter_value} HTTP/1.1
{
"eventType": "PUT",
"applicationId": "subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.Solutions/applications/<applicationName>",
"eventTime": "2019-08-14T19:20:08.1707163Z",
"provisioningState": "Failed",
"applicationDefinitionId": "/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.Solutions/applicationDefinitions/<appDefName>",
"error": {
"code": "ErrorCode",
"message": "error message",
"details": [
{
"code": "DetailedErrorCode",
"message": "error message"
}
]
}
}
alkalmazásértesítési séma Azure Marketplace
Az alábbi minta egy szolgáltatáskatalógus-értesítést jelenít meg egy felügyelt alkalmazáspéldány sikeres üzembe helyezése után.
POST https://{your_endpoint_URI}/resource?{optional_parameter}={optional_parameter_value} HTTP/1.1
{
"eventType": "PUT",
"applicationId": "/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.Solutions/applications/<applicationName>",
"eventTime": "2019-08-14T19:20:08.1707163Z",
"provisioningState": "Succeeded",
"billingDetails": {
"resourceUsageId": "<resourceUsageId>"
},
"plan": {
"publisher": "publisherId",
"product": "offer",
"name": "skuName",
"version": "1.0.1"
}
}
Ha a kiépítés sikertelen, a rendszer értesítést küld a hiba részleteiről a megadott végpontra.
POST https://{your_endpoint_URI}/resource?{optional_parameter}={optional_parameter_value} HTTP/1.1
{
"eventType": "PUT",
"applicationId": "/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.Solutions/applications/<applicationName>",
"eventTime": "2019-08-14T19:20:08.1707163Z",
"provisioningState": "Failed",
"billingDetails": {
"resourceUsageId": "<resourceUsageId>"
},
"plan": {
"publisher": "publisherId",
"product": "offer",
"name": "skuName",
"version": "1.0.1"
},
"error": {
"code": "ErrorCode",
"message": "error message",
"details": [
{
"code": "DetailedErrorCode",
"message": "error message"
}
]
}
}
Tulajdonság | Leírás |
---|---|
eventType |
Az értesítést kiváltó esemény típusa. (Például PUT, PATCH, DELETE.) |
applicationId |
Annak a felügyelt alkalmazásnak a teljes erőforrás-azonosítója, amelyhez az értesítés aktiválódott. |
eventTime |
Az értesítést kiváltó esemény időbélyege. (Dátum és idő UTC ISO 8601 formátumban.) |
provisioningState |
A felügyelt alkalmazáspéldány kiépítési állapota. Például: Sikeres, Sikertelen, Törlés, Törölt. |
applicationDefinitionId |
Csak a szolgáltatáskatalógus által felügyelt alkalmazásokhoz van megadva. Annak az alkalmazásdefiníciónak a teljes erőforrás-azonosítóját jelöli, amelyhez a felügyelt alkalmazáspéldány ki lett építve. |
billingDetails |
Csak Azure Marketplace felügyelt alkalmazásokhoz van megadva. A felügyelt alkalmazáspéldány számlázási adatai. resourceUsageId A használati adatok Azure Marketplace lekérdezéséhez használható adatokat tartalmazza. |
plan |
Csak Azure Marketplace felügyelt alkalmazásokhoz van megadva. A felügyelt alkalmazáspéldány közzétevőjét, ajánlatát, termékváltozatát és verzióját jelöli. |
error |
Csak akkor van megadva, ha a provisioningState sikertelen. A hibakódot, az üzenetet és a hibát okozó probléma részleteit tartalmazza. |
Végponthitelesítés
A webhook végpontjának védelme és az értesítés hitelességének biztosítása:
- Adjon meg egy lekérdezési paramétert a webhook URI-ja fölött, például:
https://your-endpoint.com?sig=Guid
. Minden értesítésnél ellenőrizze, hogy a lekérdezési paramétersig
a várt értékkelGuid
rendelkezik-e. - GET-et ad ki a felügyelt alkalmazáspéldányon a használatával
applicationId
. Ellenőrizze, hogy azprovisioningState
egyezik-e azprovisioningState
értesítéssel a konzisztencia biztosítása érdekében.
Értesítési újrapróbálkozások
A felügyelt alkalmazásértesítési 200 OK
szolgáltatás választ vár a webhookvégponttól az értesítésre. Az értesítési szolgáltatás újrapróbálkezik, ha a webhookvégpont 500-nál nagyobb vagy egyenlő HTTP-hibakódot ad vissza, 429-et, vagy ha a végpont átmenetileg elérhetetlen. Ha a webhook végpontja 10 órán belül nem válik elérhetővé, a rendszer elveti az értesítési üzenetet, és az újrapróbálkozások leállnak.