Bildirimler içeren Azure yönetilen uygulamaları
Azure yönetilen uygulama bildirimleri, yayımcıların yönetilen uygulama örneklerinin yaşam döngüsü olaylarına göre eylemleri otomatikleştirmesine olanak tanır. Yayımcılar, yeni ve mevcut yönetilen uygulama örnekleri hakkında olay bildirimleri almak için özel bir bildirim web kancası uç noktası belirtebilir. Yayımcılar uygulama sağlama, güncelleştirmeler ve silme sırasında özel iş akışları ayarlayabilir.
Başlarken
Yönetilen uygulama bildirimlerini almaya başlamak için genel bir HTTPS uç noktası oluşturun. Hizmet kataloğu uygulama tanımını veya Microsoft Azure Market teklifini yayımladığınızda uç noktayı belirtin.
Hızlı bir şekilde başlamak için önerilen adımlar şunlardır:
- Gelen POST isteklerini günlüğe kaydeden ve döndüren
200 OK
genel bir HTTPS uç noktası oluşturun. - Uç noktayı, bu makalenin devamında açıklandığı gibi hizmet kataloğu uygulama tanımına veya Azure Market teklifine ekleyin.
- Uygulama tanımına veya Azure Market teklifine başvuran yönetilen bir uygulama örneği oluşturun.
- Bildirimlerin alındığını doğrulayın.
- Bu makalenin Uç nokta kimlik doğrulaması bölümünde açıklandığı gibi yetkilendirmeyi etkinleştirin.
- Bildirim isteklerini ayrıştırmak ve bildirime dayalı olarak iş mantığınızı uygulamak için bu makalenin Bildirim şeması bölümündeki yönergeleri izleyin.
Hizmet kataloğu uygulama tanımı bildirimleri ekleme
Aşağıdaki örneklerde portalı veya REST API'yi kullanarak bildirim uç noktası URI'sinin nasıl ekleneceği gösterilmektedir.
Azure portal
Başlamak için bkz . Hızlı Başlangıç: Azure Yönetilen Uygulama tanımı oluşturma ve yayımlama.
REST API
Not
Yönetilen uygulama tanımının özelliğinde notificationEndpoints
yalnızca bir uç nokta sağlayabilirsiniz.
{
"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"
},
...
yönetilen Azure Market uygulama bildirimleri ekleme
Daha fazla bilgi için bkz . Azure uygulama teklifi oluşturma.
Olay tetikleyicileri
Aşağıdaki tabloda ve provisioningState
tetikleyicilerinin olası tüm birleşimleri eventType
açıklanmaktadır:
EventType | ProvisioningState | Bildirim için tetikleyici |
---|---|---|
PUT | Kabul edildi | Yönetilen kaynak grubu, uygulama PUT'sinin ardından (yönetilen kaynak grubu içindeki dağıtım başlatılmadan önce) başarıyla oluşturuldu ve yansıtıldı. |
PUT | Başarılı | Put sonrasında yönetilen uygulamanın tam sağlanması başarılı oldu. |
PUT | Başarısız | Herhangi bir noktada uygulama örneği sağlamanın PUT hatası. |
PATCH | Başarılı | Etiketleri, tam zamanında (JIT) erişim ilkesini veya yönetilen kimliği güncelleştirmek için yönetilen uygulama örneğinde başarılı bir PATCH sonrasında. |
SİL | Siliniyor | Kullanıcı yönetilen bir uygulama örneğinin DELETE işlemini başlattığı anda. |
SİL | Silindi | Yönetilen uygulamanın tam ve başarılı bir şekilde silinmesinden sonra. |
SİL | Başarısız | Sağlamayı kaldırma işlemi sırasında silmeyi engelleyen herhangi bir hatadan sonra. |
Bildirim şeması
Bildirimleri işlemek için web kancası uç noktanızı oluşturduğunuzda, önemli özellikleri almak için yükü ayrıştırarak bildirim üzerinde işlem yapmanız gerekir. Hizmet kataloğu ve Azure Market yönetilen uygulama bildirimleri aynı özelliklerin birçoğunu sağlar, ancak bazı farklılıklar vardır. applicationDefinitionId
özelliği yalnızca hizmet kataloğu için geçerlidir. billingDetails
ve plan
özellikleri yalnızca Azure Market için geçerlidir.
Azure, /resource
yönetilen uygulama tanımında sağladığınız bildirim uç noktası URI'sine ekler. Web kancası uç noktasının URI'de /resource
bildirimleri işleyebilmesi gerekir. Örneğin, gibi https://fabrikam.com
bir bildirim uç noktası URI'sini sağladıysanız web kancası uç noktası URI'si olur https://fabrikam.com/resource
.
Hizmet kataloğu uygulama bildirim şeması
Aşağıdaki örnekte, yönetilen uygulama örneğinin başarıyla sağlanmasından sonra bir hizmet kataloğu bildirimi gösterilmektedir.
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>"
}
Sağlama başarısız olursa, belirtilen uç noktaya hata ayrıntılarını içeren bir bildirim gönderilir.
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"
}
]
}
}
uygulama bildirim şemasını Azure Market
Aşağıdaki örnekte, yönetilen uygulama örneğinin başarıyla sağlanmasından sonra bir hizmet kataloğu bildirimi gösterilmektedir.
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"
}
}
Sağlama başarısız olursa, belirtilen uç noktaya hata ayrıntılarını içeren bir bildirim gönderilir.
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"
}
]
}
}
Özellik | Açıklama |
---|---|
eventType |
Bildirimi tetikleyen olayın türü. Örneğin PUT, PATCH, DELETE. |
applicationId |
Bildirimin tetiklendiği yönetilen uygulamanın tam kaynak tanımlayıcısı. |
eventTime |
Bildirimi tetikleyen olayın zaman damgası. UTC ISO 8601 biçiminde tarih ve saat. |
provisioningState |
Yönetilen uygulama örneğinin sağlama durumu. Örneğin Başarılı, Başarısız, Silme, Silme. |
applicationDefinitionId |
Yalnızca hizmet kataloğu yönetilen uygulamaları için belirtilir. Yönetilen uygulama örneğinin sağlandığı uygulama tanımının tam kaynak tanımlayıcısını temsil eder. |
billingDetails |
Yalnızca Azure Market yönetilen uygulamalar için belirtilir. Yönetilen uygulama örneğinin faturalama ayrıntıları. resourceUsageId Kullanım ayrıntıları için Azure Market sorgulamak için kullanabileceğiniz öğesini içerir. |
plan |
Yalnızca Azure Market yönetilen uygulamalar için belirtilir. Yönetilen uygulama örneğinin yayımcısını, teklifini, SKU'sunu ve sürümünü temsil eder. |
error |
Yalnızca provisioningState Başarısız olduğunda belirtilir. Hataya neden olan sorunun hata kodunu, iletisini ve ayrıntılarını içerir. |
Uç nokta kimlik doğrulaması
Web kancası uç noktasının güvenliğini sağlamak ve bildirimin orijinalliğini sağlamak için:
- Web kancası URI'sinin üst kısmında şu şekilde bir sorgu parametresi sağlayın:
https://your-endpoint.com?sig=Guid
. Her bildirimde sorgu parametresininsig
beklenen değerineGuid
sahip olup olmadığını denetleyin. - kullanarak
applicationId
yönetilen uygulama örneğinde bir GET oluşturun. Tutarlılığı sağlamak için bildirimin ile eşleşdiğiniprovisioningState
provisioningState
doğrulayın.
Bildirim yeniden denemeleri
Yönetilen uygulama bildirim hizmeti, web kancası uç noktasından bildirime bir 200 OK
yanıt bekler. Web kancası uç noktası 500'den büyük veya buna eşit bir HTTP hata kodu döndürüyorsa, 429 hata kodu döndürüyorsa veya uç noktaya geçici olarak ulaşılamıyorsa bildirim hizmeti yeniden denenir. Web kancası uç noktası 10 saat içinde kullanılamaz duruma gelirse, bildirim iletisi bırakılır ve yeniden denemeler durur.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin