Door Azure beheerde toepassingen met meldingen
Met meldingen van door Azure beheerde toepassingen kunnen uitgevers acties automatiseren op basis van levenscyclusgebeurtenissen van de beheerde toepassings instances. Uitgevers kunnen aangepaste webhook-eindpunten voor meldingen opgeven om gebeurtenismeldingen te ontvangen over nieuwe en bestaande beheerde toepassings instances. Uitgevers kunnen aangepaste werkstromen instellen op het moment dat de toepassing wordt ingericht, bijgewerkt en verwijderd.
Aan de slag
Als u beheerde toepassingen wilt ontvangen, maakt u een openbaar HTTPS-eindpunt en geeft u dit op wanneer u de toepassingsdefinitie of Azure Marketplace servicecatalogus publiceert.
Hier volgen de aanbevolen stappen om snel aan de slag te gaan:
- Een openbaar HTTPS-eindpunt maken dat de binnenkomende POST-aanvragen registreert en
200 OKretourneert. - Voeg het eindpunt toe aan de toepassingsdefinitie van de servicecatalogus of Azure Marketplace aanbieding, zoals later in dit artikel wordt uitgelegd.
- Maak een exemplaar van een beheerde toepassing dat verwijst naar de toepassingsdefinitie of Azure Marketplace aanbieding.
- Controleer of de meldingen worden ontvangen.
- Schakel autorisatie in, zoals wordt uitgelegd in de sectie Eindpuntverificatie van dit artikel.
- 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.
Toepassingsdefinitiemeldingen voor servicecatalogus toevoegen
Azure Portal
Zie Publish a service catalog application through Azure Portal (Een servicecatalogustoepassing publicerenvia Azure Portal).

REST-API
Notitie
Op dit moment kunt u slechts één eindpunt in de notificationEndpoints in de eigenschappen van de toepassingsdefinitie leveren.
{
"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 Azure Marketplace beheerde toepassing toevoegen
Zie Een Azure-toepassingsaanbieding maken voor meer informatie.

Gebeurtenistriggers
In de volgende tabel worden alle mogelijke combinaties van EventType en ProvisioningState en de triggers beschreven:
| EventType | ProvisioningState | Trigger voor melding |
|---|---|---|
| PUT | Geaccepteerd | De beheerde resourcegroep is gemaakt en geprojecteerd nadat de toepassing PUT is geïmplementeerd (voordat de implementatie binnen de beheerde resourcegroep wordt uitgevoerd). |
| PUT | Geslaagd | De volledige inrichting van de beheerde toepassing is geslaagd na een PUT. |
| PUT | Mislukt | Fout bij HET INRICHTEN van toepassings-instanties op enig moment. |
| PATCH | Geslaagd | Na een geslaagde PATCH op het exemplaar van de beheerde toepassing voor het bijwerken van tags, JIT-toegangsbeleid of beheerde identiteit. |
| 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 deprovisioning-proces dat de verwijdering blokkeert. |
Meldingsschema
Wanneer u uw webhook-eindpunt voor het afhandelen van meldingen in werking laat treden, moet u de nettolading parseren om belangrijke eigenschappen op te halen om vervolgens op de melding te reageren. Servicecatalogus en Azure Marketplace beheerde toepassingsmeldingen bieden veel van dezelfde eigenschappen. Er worden twee kleine verschillen beschreven in de tabel die volgt op de voorbeelden.
Toepassingsmeldingsschema voor servicecatalogus
Hier is een voorbeeld van een servicecatalogusmelding na de geslaagde inrichting van een beheerd toepassings exemplaar:
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"
}
]
}
}
Azure Marketplace toepassingsmeldingsschema
Hier is een voorbeeld van een servicecatalogusmelding na de geslaagde inrichting van een beheerd toepassings exemplaar:
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"
}
]
}
}
| Parameter | 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 inrichtingstoestand van het exemplaar van de beheerde toepassing. (Bijvoorbeeld Geslaagd, Mislukt, Verwijderen, Verwijderd.) |
| fout | Wordt alleen opgegeven wanneer provisioningState Mislukt is. Bevat de foutcode, het bericht en de details van het probleem dat de fout heeft veroorzaakt. |
| applicationDefinitionId | Alleen opgegeven voor door de servicecatalogus beheerde toepassingen. Vertegenwoordigt de volledig gekwalificeerde resource-id van de toepassingsdefinitie waarvoor het exemplaar van de beheerde toepassing is ingericht. |
| plannen | Alleen opgegeven voor Azure Marketplace beheerde toepassingen. Vertegenwoordigt de uitgever, aanbieding, SKU en versie van het exemplaar van de beheerde toepassing. |
| billingDetails | Alleen opgegeven voor Azure Marketplace beheerde toepassingen. De factureringsgegevens van het exemplaar van de beheerde toepassing. Bevat de resourceUsageId die u kunt gebruiken om een query uit te voeren Azure Marketplace voor gebruiksgegevens. |
Eindpuntverificatie
Om het webhook-eindpunt te beveiligen en de echtheid van de melding te garanderen:
- Geef een queryparameter op boven op de webhook-URI, zoals: https : /your-endpoint.com?sig=Guid. Controleer bij elke melding of de queryparameter
sigde verwachte waardeGuidheeft. - Een GET-aanvraag voor het exemplaar van de beheerde toepassing uitgeven met behulp van applicationId. Controleer of de provisioningState overeenkomt met de provisioningState van de melding om consistentie te garanderen.
Nieuwe meldingen
De Managed Application Notification-service verwacht een reactie van 200 OK het webhook-eindpunt op de melding. De meldingsservice zal het opnieuw proberen als het webhook-eindpunt een HTTP-foutcode retourneert die groter is dan of gelijk is aan 500 als deze een foutcode 429 retourneert of als het eindpunt tijdelijk niet bereikbaar is. Als het webhook-eindpunt niet binnen 10 uur beschikbaar komt, wordt het meldingsbericht uitgevallen en worden de nieuwe proberen gestopt.