Share via


Door Azure beheerde toepassingen met meldingen

Door Azure beheerde toepassingsmeldingen kunnen uitgevers acties automatiseren op basis van levenscyclus-gebeurtenissen van de beheerde toepassingsexemplaren. Uitgevers kunnen een aangepast webhookeindpunt voor meldingen opgeven om gebeurtenismeldingen te ontvangen over nieuwe en bestaande exemplaren van beheerde toepassingen. Uitgevers kunnen aangepaste werkstromen instellen op het moment van het inrichten, bijwerken en verwijderen van toepassingen.

Aan de slag

Als u meldingen van beheerde toepassingen wilt ontvangen, maakt u een openbaar HTTPS-eindpunt. Geef het eindpunt op wanneer u de definitie van de servicecatalogustoepassing of microsoft Azure Marketplace-aanbieding publiceert.

Hier volgen de aanbevolen stappen om snel aan de slag te gaan:

  1. Maak een openbaar HTTPS-eindpunt dat de binnenkomende POST-aanvragen registreert en retourneert 200 OK.
  2. Voeg het eindpunt toe aan de definitie van de servicecatalogustoepassing of de Azure Marketplace-aanbieding, zoals verderop in dit artikel wordt uitgelegd.
  3. Maak een exemplaar van een beheerde toepassing dat verwijst naar de toepassingsdefinitie of Azure Marketplace-aanbieding.
  4. Controleer of de meldingen worden ontvangen.
  5. Schakel autorisatie in, zoals wordt uitgelegd in de sectie Eindpuntverificatie van dit artikel.
  6. Volg de instructies in de sectie Meldingsschema van dit artikel om de meldingsaanvragen te parseren en uw bedrijfslogica te implementeren op basis van de melding.

Meldingen voor toepassingsdefinities voor servicecatalogus toevoegen

In de volgende voorbeelden ziet u hoe u een eindpunt-URI voor meldingen toevoegt met behulp van de portal of REST API.

Azure Portal

Zie Quickstart: Een definitie van een beheerde Azure-toepassing maken en publiceren om aan de slag te gaan.

Schermopname van Azure Portal met een definitie van een beheerde toepassing in de servicecatalogus en het meldingseindpunt.

REST-API

Notitie

U kunt slechts één eindpunt opgeven in de notificationEndpoints eigenschap van de definitie van de beheerde toepassing.

{
  "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"
      },
    ...

Meldingen voor beheerde Azure Marketplace-toepassingen toevoegen

Zie Een Azure-toepassingsaanbieding maken voor meer informatie.

Schermopname van meldingen van beheerde Azure Marketplace-toepassingen in Azure Portal.

Gebeurtenistriggers

In de volgende tabel worden alle mogelijke combinaties van eventType en provisioningState hun triggers beschreven:

EventType ProvisioningState Trigger voor melding
PUT Geaccepteerd De beheerde resourcegroep is gemaakt en geprojecteerd nadat de toepassing PUT is uitgevoerd (voordat de implementatie in de beheerde resourcegroep wordt gestart).
PUT Geslaagd De volledige inrichting van de beheerde toepassing is voltooid na een PUT.
PUT Mislukt Fout bij het inrichten van PUT van toepassingsexemplaren.
PATCH Geslaagd Na een geslaagd PATCH op het exemplaar van de beheerde toepassing om tags, Just-In-Time-toegangsbeleid (JIT) of beheerde identiteit bij te werken.
DELETE Verwijderen Zodra de gebruiker een DELETE van een beheerd app-exemplaar initieert.
DELETE Verwijderd Na de volledige en geslaagde verwijdering van de beheerde toepassing.
DELETE Mislukt Na een fout tijdens het ongedaan maken van de inrichting die het verwijderen blokkeert.

Meldingsschema

Wanneer u uw webhook-eindpunt maakt om meldingen te verwerken, moet u de nettolading parseren om belangrijke eigenschappen te krijgen om vervolgens te reageren op de melding. Servicecatalogus en meldingen van beheerde Azure Marketplace-toepassingen bieden veel van dezelfde eigenschappen, maar er zijn enkele verschillen. De applicationDefinitionId eigenschap is alleen van toepassing op de servicecatalogus. De billingDetails en plan eigenschappen zijn alleen van toepassing op Azure Marketplace.

Azure voegt de URI van het meldingseindpunt /resource toe die u hebt opgegeven in de definitie van de beheerde toepassing. Het eindpunt van de webhook moet meldingen op de /resource URI kunnen verwerken. Als u bijvoorbeeld een eindpunt-URI voor meldingen hebt opgegeven, zoals https://fabrikam.com de eindpunt-URI van de webhook is https://fabrikam.com/resource.

Meldingsschema voor servicecatalogustoepassingen

In het volgende voorbeeld ziet u een servicecatalogusmelding na het inrichten van een exemplaar van een beheerde toepassing.

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>"
}

Als het inrichten mislukt, wordt er een melding met de foutdetails verzonden naar het opgegeven eindpunt.

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"
      }
    ]
  }
}

Meldingsschema voor Azure Marketplace-toepassingen

In het volgende voorbeeld ziet u een servicecatalogusmelding na het inrichten van een exemplaar van een beheerde toepassing.

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"
  }
}

Als het inrichten mislukt, wordt er een melding met de foutdetails verzonden naar het opgegeven eindpunt.

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"
      }
    ]
  }
}
Eigenschappen Beschrijving
eventType Het type gebeurtenis dat de melding heeft geactiveerd. Bijvoorbeeld PUT, PATCH, DELETE.
applicationId De volledig gekwalificeerde resource-id van de beheerde toepassing waarvoor de melding is geactiveerd.
eventTime De tijdstempel van de gebeurtenis die de melding heeft geactiveerd. Datum en tijd in UTC ISO 8601-indeling.
provisioningState De inrichtingsstatus van het exemplaar van de beheerde toepassing. Bijvoorbeeld Geslaagd, Mislukt, Verwijderen, Verwijderd.
applicationDefinitionId Alleen opgegeven voor beheerde toepassingen in de servicecatalogus. Vertegenwoordigt de volledig gekwalificeerde resource-id van de toepassingsdefinitie waarvoor het exemplaar van de beheerde toepassing is ingericht.
billingDetails Alleen opgegeven voor beheerde Azure Marketplace-toepassingen. De factureringsgegevens van het exemplaar van de beheerde toepassing. Bevat de resourceUsageId inhoud die u kunt gebruiken om een query uit te voeren op Azure Marketplace voor gebruiksgegevens.
plan Alleen opgegeven voor beheerde Azure Marketplace-toepassingen. Vertegenwoordigt de uitgever, aanbieding, SKU en versie van het exemplaar van de beheerde toepassing.
error Alleen opgegeven wanneer de provisioningState is mislukt. Bevat de foutcode, het bericht en de details van het probleem dat de fout heeft veroorzaakt.

Eindpuntverificatie

Het webhookeindpunt beveiligen en de echtheid van de melding garanderen:

  1. Geef een queryparameter op boven op de webhook-URI, zoals deze: https://your-endpoint.com?sig=Guid. Controleer bij elke melding of de queryparameter sig de verwachte waarde Guidheeft.
  2. Geef een GET op het exemplaar van de beheerde toepassing met behulp van applicationId. Controleer of de provisioningState melding overeenkomt met de provisioningState melding om consistentie te garanderen.

Nieuwe pogingen voor meldingen

De meldingsservice voor beheerde toepassingen verwacht een 200 OK reactie van het webhook-eindpunt op de melding. De meldingsservice probeert opnieuw als het webhook-eindpunt een HTTP-foutcode retourneert die groter is dan of gelijk is aan 500, retourneert deze een foutcode van 429 of als het eindpunt tijdelijk onbereikbaar is. Als het webhookeindpunt niet binnen 10 uur beschikbaar is, wordt het meldingsbericht verwijderd en worden de nieuwe pogingen gestopt.