Azure által felügyelt alkalmazások értesítésekkel
Az Azure által 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 a 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ához hozzon létre egy nyilvános HTTPS-végpontot. Adja meg a végpontot a szolgáltatáskatalógus-alkalmazásdefiníció vagy a Microsoft Azure Marketplace-ajánlat közzétételekor.
A gyors kezdéshez az alábbi ajánlott lépések szükségesek:
- Hozzon létre egy nyilvános HTTPS-végpontot, amely naplózza a bejövő POST-kérelmeket, és visszaadja azokat
200 OK
. - Adja hozzá a végpontot a szolgáltatáskatalógus-alkalmazásdefinícióhoz vagy az Azure Marketplace-ajánlathoz a cikk későbbi részében ismertetett módon.
- Hozzon létre egy felügyelt alkalmazáspéldányt, amely az alkalmazásdefinícióra vagy az 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.
- Kövesse a jelen cikk Értesítési séma szakaszában található utasításokat az értesítési kérelmek elemzéséhez és az értesítésen alapuló üzleti logika implementálásához.
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á értesítési végpont URI-t a portál vagy a REST API használatával.
Azure Portal
Első lépésként tekintse meg az Azure Managed Application definíciójának létrehozását és közzétételét ismertető rövid útmutatót.
REST API
Feljegyzé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 Azure Marketplace-alkalmazásértesítések hozzáadása
További információ: Azure-alkalmazásajánlat létrehozása.
Eseményindítók
Az alábbi táblázat az összes lehetséges kombinációt eventType
és provisioningState
azok eseményindítóit ismerteti:
EventType | ProvisioningState | Értesítési eseményindító |
---|---|---|
PUT | Elfogadva | A felügyelt erőforráscsoport a PUT alkalmazás (a felügyelt erőforráscsoporton belüli üzembe helyezés elindítása előtt) létrehozása és sikeres kivetítése után lett létrehozva és előrevetítve. |
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 üzembe helyezésének PUT-jának hibája bármikor. |
JAVÍTÁS | Sikeres | Miután a felügyelt alkalmazáspéldány sikeres JAVÍTÁSt végzett a címkék, a just-in-time (JIT) hozzáférési szabályzat vagy a felügyelt identitás frissítéséhez. |
Törlés... | Törlés | Amint a felhasználó kezdeményezi egy felügyelt alkalmazáspéldány törlését. |
Törlés... | Törölve | A felügyelt alkalmazás teljes és sikeres törlése után. |
Törlés... | Sikertelen | A törlést letiltó megszüntetési folyamat során felmerülő hiba után. |
Értesítési séma
Amikor létrehoz egy webhook-végpontot az értesítések kezeléséhez, elemeznie kell a hasznos adatokat, hogy fontos tulajdonságokat kapjon az értesítéshez. A szolgáltatáskatalógus és az Azure Marketplace által felügyelt alkalmazásértesítések számos azonos tulajdonságot biztosítanak, de vannak különbségek. A applicationDefinitionId
tulajdonság csak a szolgáltatáskatalógusra vonatkozik. A billingDetails
tulajdonságok csak plan
az Azure Marketplace-en érvényesek.
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 webhook végpontjának képesnek kell lennie az URI-val kapcsolatos /resource
értesítések kezelésére. Ha például egy értesítési végpont URI-jának https://fabrikam.com
megadása után a webhook végpontjának URI-ja .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égpontnak.
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"
}
]
}
}
Azure Marketplace-alkalmazásértesítési séma
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égpontnak.
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ést aktiválták. |
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 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 felügyelt Azure Marketplace-alkalmazásokhoz van megadva. A felügyelt alkalmazáspéldány számlázási adatai. Azt tartalmazza resourceUsageId , amellyel lekérdezheti az Azure Marketplace-et a használati adatokhoz. |
plan |
Csak felügyelt Azure Marketplace-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égpont-hitelesí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é, 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 következő használatával
applicationId
: . Ellenőrizze, hogy azprovisioningState
értesítés egyezik-eprovisioningState
a konzisztencia biztosításához.
Értesítési újrapróbálkozések
A felügyelt alkalmazásértesítési 200 OK
szolgáltatás választ vár a webhook-végponttól az értesítésre. Az értesítési szolgáltatás újrapróbálkozik, ha a webhook végpontja 500-nál nagyobb vagy egyenlő HTTP-hibakódot ad vissza, 429-et ad vissza, vagy ha a végpont átmenetileg nem érhető el. 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ási próbálkozások leállnak.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: