Megosztás a következőn keresztül:


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:

  1. Hozzon létre egy nyilvános HTTPS-végpontot, amely naplózza a bejövő POST-kérelmeket, és visszaadja azokat 200 OK.
  2. 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.
  3. Hozzon létre egy felügyelt alkalmazáspéldányt, amely az alkalmazásdefinícióra vagy az 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. 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.

Képernyőkép az Azure Portalról, amely egy szolgáltatáskatalógus által felügyelt alkalmazásdefiníciót és értesítési végpontot jelenít meg.

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.

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

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:

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