Share via


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:

  1. 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: .
  2. 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.
  3. Hozzon létre egy felügyelt alkalmazáspéldányt, amely az alkalmazásdefinícióra vagy Azure Marketplace ajánlatra hivatkozik.
  4. Ellenőrizze, hogy az értesítések érkeznek-e.
  5. Engedélyezze az engedélyezést a cikk Végponthitelesítés szakaszában leírtak szerint.
  6. 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.

Képernyőkép a szolgáltatáskatalógus által felügyelt alkalmazásdefiníciót és az értesítési végpontot megjelenítő Azure Portal.

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.

Képernyőkép Azure Marketplace felügyelt alkalmazásértesítésekről a Azure Portal.

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:

  1. 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éter sig a várt értékkel Guidrendelkezik-e.
  2. GET-et ad ki a felügyelt alkalmazáspéldányon a használatával applicationId. Ellenőrizze, hogy az provisioningState egyezik-e az provisioningState é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.