Skip to content

Commit 7ad5988

Browse files
authored
Merge pull request #98576 from v-albemi/publish-notifications
edit pass: Publish notifications
2 parents 7ba8651 + 1fb249b commit 7ad5988

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

articles/managed-applications/publish-notifications.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Azure Managed Applications with Notifications
3-
description: Configure Managed Application with webhook endpoints to receive notifications about creates, updates, deletes, and errors on the managed application instances.
2+
title: Azure managed applications with notifications
3+
description: Configure managed applications with webhook endpoints to receive notifications about creates, updates, deletes, and errors on the managed application instances.
44
services: managed-applications
55
ms.service: managed-applications
66
ms.topic: conceptual
@@ -9,30 +9,31 @@ ms.author: ilahat
99
author: ilahat
1010
ms.date: 11/01/2019
1111
---
12-
# Azure Managed Applications with Notifications
12+
# Azure managed applications with notifications
1313

14-
Azure managed application notifications allow publishers to automate actions based on lifecycle events of the managed application instances. Publishers can specify custom notification webhook endpoints to receive event notifications about new and existing managed application instances. It allows the publisher to set up custom workflows at the time of application provisioning, updates, and deletion.
14+
Azure managed application notifications allow publishers to automate actions based on lifecycle events of the managed application instances. Publishers can specify custom notification webhook endpoints to receive event notifications about new and existing managed application instances. Publishers can set up custom workflows at the time of application provisioning, updates, and deletion.
1515

1616
## Getting started
17-
To start receiving managed applications, spin up a public HTTPS endpoint and specify it when publishing the Service Catalog application definition or the Marketplace offer.
17+
To start receiving managed applications, spin up a public HTTPS endpoint and specify it when you publish the service catalog application definition or Azure Marketplace offer.
1818

19-
Here are the recommended series of steps to get up and running quickly:
19+
Here are the recommended steps to get started quickly:
2020
1. Spin up a public HTTPS endpoint that logs the incoming POST requests and returns `200 OK`.
21-
2. Add the endpoint to service catalog application definition or marketplace offer as explained below.
22-
3. Create a managed application instance that references the application definition or the marketplace offer.
23-
4. Validate that the notifications are being received successfully.
24-
5. Enable authorization as explained in the **Endpoint Authentication** section below.
25-
6. Follow the **Notification Schema** documentation below to parse the notification requests and implement your business logic based on the notification.
21+
2. Add the endpoint to the service catalog application definition or Azure Marketplace offer as explained later in this article.
22+
3. Create a managed application instance that references the application definition or Azure Marketplace offer.
23+
4. Validate that the notifications are being received.
24+
5. Enable authorization as explained in the **Endpoint authentication** section of this article.
25+
6. Follow the instructions in the **Notification schema** section of this article to parse the notification requests and implement your business logic based on the notification.
2626

27-
## Adding service catalog application definition notifications
27+
## Add service catalog application definition notifications
2828
#### Azure portal
29-
Please read [Publish a service catalog application through Azure portal](./publish-portal.md) to get started.
29+
To get started, see [Publish a service catalog application through Azure portal](./publish-portal.md).
30+
31+
![Service catalog application definition notifications in the Azure portal](./media/publish-notifications/service-catalog-notifications.png)
3032

31-
![Service catalog application definition notifications on Portal](./media/publish-notifications/service-catalog-notifications.png)
3233
#### REST API
3334

3435
> [!NOTE]
35-
> Currently only one endpoint is supported as part of the **notificationEndpoints** in the application definition properties
36+
> Currently, you can supply only one endpoint in the `notificationEndpoints` in the application definition properties.
3637
3738
``` JSON
3839
{
@@ -56,27 +57,27 @@ Please read [Publish a service catalog application through Azure portal](./publi
5657
...
5758

5859
```
59-
## Adding marketplace managed application notifications
60-
For more information please see [Create an Azure application offer](../marketplace/cloud-partner-portal/azure-applications/cpp-create-offer.md).
60+
## Add Azure Marketplace managed application notifications
61+
For more information, see [Create an Azure application offer](../marketplace/cloud-partner-portal/azure-applications/cpp-create-offer.md).
6162

62-
![Service catalog application definition notifications on Portal](./media/publish-notifications/marketplace-notifications.png)
63+
![Azure Marketplace managed application notifications in the Azure portal](./media/publish-notifications/marketplace-notifications.png)
6364
## Event triggers
64-
The following table describes all the possible combinations of EventType + ProvisioningState and their triggers:
65+
The following table describes all the possible combinations of EventType and ProvisioningState and their triggers:
6566

6667
EventType | ProvisioningState | Trigger for notification
6768
---|---|---
68-
PUT | Accepted | Managed resource group has been created and projected successfully after application PUT. (Before the deployment inside the managed RG is kicked off.)
69+
PUT | Accepted | Managed resource group has been created and projected successfully after application PUT (before the deployment inside the managed resource group is kicked off).
6970
PUT | Succeeded | Full provisioning of the managed application succeeded after a PUT.
7071
PUT | Failed | Failure of PUT of application instance provisioning at any point.
71-
PATCH | Succeeded | After successful PATCH on managed application instance to update tags, jit access policy, or managed identity.
72+
PATCH | Succeeded | After a successful PATCH on the managed application instance to update tags, JIT access policy, or managed identity.
7273
DELETE | Deleting | As soon as the user initiates a DELETE of a managed app instance.
7374
DELETE | Deleted | After the full and successful deletion of the managed application.
7475
DELETE | Failed | After any error during the deprovisioning process that blocks the deletion.
7576
## Notification schema
76-
When you spin up your webhook endpoint to handle notifications, you'll need to parse the payload to get important properties to then act upon the notification. Both Service Catalog and Marketplace managed application notifications provide many of the same properties with the small difference outlined below.
77+
When you spin up your webhook endpoint to handle notifications, you'll need to parse the payload to get important properties to then act upon the notification. Service catalog and Azure Marketplace managed application notifications provide many of the same properties. Two small differences are outlined in the table that follows the samples.
7778

7879
#### Service catalog application notification schema
79-
Here's a sample service catalog notification after a successful provisioning of a managed application instance.
80+
Here's a sample service catalog notification after the successful provisioning of a managed application instance:
8081
``` HTTP
8182
POST https://{your_endpoint_URI}/resource?{optional_parameter}={optional_parameter_value} HTTP/1.1
8283

@@ -115,9 +116,9 @@ POST https://{your_endpoint_URI}/resource?{optional_parameter}={optional_paramet
115116
116117
```
117118

118-
#### Marketplace application notification schema
119+
#### Azure Marketplace application notification schema
119120

120-
Here's a sample service catalog notification after a successful provisioning of a managed application instance.
121+
Here's a sample service catalog notification after the successful provisioning of a managed application instance:
121122
``` HTTP
122123
POST https://{your_endpoint_URI}/resource?{optional_parameter}={optional_parameter_value} HTTP/1.1
123124
@@ -174,21 +175,20 @@ POST https://{your_endpoint_URI}/resource?{optional_parameter}={optional_paramet
174175

175176
Parameter | Description
176177
---|---
177-
eventType | The type of event that triggered the notification. (e.g. "PUT", "PATCH", "DELETE")
178-
applicationId | The fully qualified resource identifier of the managed application for which the notification was triggered.
178+
eventType | The type of event that triggered the notification. (For example, PUT, PATCH, DELETE.)
179+
applicationId | The fully qualified resource identifier of the managed application for which the notification was triggered.
179180
eventTime | The timestamp of the event that triggered the notification. (Date and time in UTC ISO 8601 format.)
180-
provisioningState | The provisioning state of the managed application instance. (e.g. "Succeeded", "Failed", "Deleting", "Deleted")
181-
billingDetails | The billing details of the managed application instance. Contains the resourceUsageId that can be used to query marketplace for usage details.
182-
error | *Only specified when the provisioningState is Failed*. Contains the error code, message, and details of the issue that caused the failure.
183-
applicationDefinitionId | *Only specified for Service Catalog managed applications*. Represents the fully qualified resource identifier of the application definition for which the managed application instance was provisioned.
184-
plan | *Only specified for Marketplace managed applications*. Represents the publisher, offer, sku, and version of the managed application instance.
181+
provisioningState | The provisioning state of the managed application instance. (For example, Succeeded, Failed, Deleting, Deleted.)
182+
error | *Specified only when the provisioningState is Failed*. Contains the error code, message, and details of the issue that caused the failure.
183+
applicationDefinitionId | *Specified only for service catalog managed applications*. Represents the fully qualified resource identifier of the application definition for which the managed application instance was provisioned.
184+
plan | *Specified only for Azure Marketplace managed applications*. Represents the publisher, offer, SKU, and version of the managed application instance.
185+
billingDetails | *Specified only for Azure Marketplace managed applications.* The billing details of the managed application instance. Contains the resourceUsageId that you can use to query Azure Marketplace for usage details.
185186

186187
## Endpoint authentication
187188
To secure the webhook endpoint and ensure the authenticity of the notification:
188-
- Provide a query parameter on top of the webhook URI like https://your-endpoint.com?sig=Guid. With each notification, do a quick check that the query parameter `sig` has the expected value `Guid`.
189-
- Issue a GET on the managed application instance with applicationId. Validate that the provisioningState matches the provisioningState of the notification to ensure consistency.
189+
1. Provide a query parameter on top of the webhook URI, like this: https://your-endpoint.com?sig=Guid. With each notification, check that the query parameter `sig` has the expected value `Guid`.
190+
2. Issue a GET on the managed application instance by using applicationId. Validate that the provisioningState matches the provisioningState of the notification to ensure consistency.
190191

191192
## Notification retries
192193

193-
The Managed Application Notification service expects a `200 OK` response from the webhook endpoint to the notification. The notification service will retry if the webhook endpoint returns an HTTP error code >=500, 429 or if the endpoint is temporarily unreachable. If the webhook endpoint doesn't become available within 10 hours, the notification message will be dropped and the retries will stop.
194-
194+
The Managed Application Notification service expects a `200 OK` response from the webhook endpoint to the notification. The notification service will retry if the webhook endpoint returns an HTTP error code greater than or equal to 500, if it returns an error code of 429, or if the endpoint is temporarily unreachable. If the webhook endpoint doesn't become available within 10 hours, the notification message will be dropped and the retries will stop.

0 commit comments

Comments
 (0)