OLAYLARı API Management'tan Event Grid'e gönderme

ŞUNLAR IÇIN GEÇERLIDIR: Tüketim | Geliştirici | Temel | Standart | Premium

API Management, diğer hizmetlere olay bildirimleri gönderebilmeniz ve aşağı akış işlemlerini tetikleyebilmeniz için Azure Event Grid ile tümleştirilir. Event Grid, yayımlama-abone olma modeli kullanan tam olarak yönetilen bir olay yönlendirme hizmetidir. Event Grid, Azure İşlevleri ve Azure Logic Apps gibi Azure hizmetleri için yerleşik desteğe sahiptir ve web kancalarını kullanarak Azure kapsamında olmayan hizmetlere olay uyarıları gönderebilir.

Aşağıdaki API Management olay türlerine abone olabilirsiniz:

  • Denetim düzlemi olayları: Bu olaylar belirli API Management kaynaklarını oluşturduğunuzda, güncelleştirdiğinizde veya sildiğinizde oluşturulur. Örneğin, API Management örneğinizde yeni bir kullanıcı veya yeni ürün oluşturulduğunda bir olay alabilirsiniz.
  • Veri düzlemi olayları (önizleme): Bu olaylar API Management ağ geçidinin çalıştırılması sırasında oluşturulur. Api Management şu anda arka uç devre kesicileri ve kendinden barındırmalı ağ geçidi erişim belirteçlerinin yaşam döngüsü için olaylar oluşturabilir.

Kullanılabilir olayların tam listesi için bkz. API Management için Event Grid şeması.

Event Grid ile API Management tümleştirme diyagramı.

Örneğin, Event Grid ile tümleştirmeyi kullanarak bir veritabanını güncelleştiren, ödeme hesabı oluşturan ve API Management örneğinize her kullanıcı eklendiğinde e-posta bildirimi gönderen bir uygulama oluşturabilirsiniz.

Bu makalede API Management örneğinizdeki Event Grid olaylarına abone olacak, olayları tetikler ve olayları verileri işleyen bir uç noktaya gönderirsiniz. Basit tutmak için, iletileri toplayan ve görüntüleyen örnek bir web uygulamasına olay gönderirsiniz:

Önkoşullar

Olay uç noktası oluşturma

Bu bölümde, önceden oluşturulmuş bir örnek web uygulamasını Azure Uygulaması Service'e dağıtmak için Resource Manager şablonu kullanacaksınız. Daha sonra API Management örneğinizin Event Grid olaylarına abone olur ve bu uygulamayı olayların gönderildiği uç nokta olarak belirtirsiniz.

Örnek uygulamayı dağıtmak için Azure CLI, Azure PowerShell veya Azure portalını kullanabilirsiniz. Aşağıdaki örnekte Azure CLI'da az deployment group create komutu kullanılmaktadır.

  • RESOURCE_GROUP_NAME ifadesini mevcut bir kaynak grubunun adı olarak ayarlayın

  • Web uygulamanız için benzersiz bir ad olarak ayarlayın SITE_NAME

    Web uygulamasının tam etki alanı adının (FQDN) bir parçasını oluşturması nedeniyle site adı Azure'da benzersiz olmalıdır. Sonraki bir bölümde, olayları görüntülemek için web tarayıcısında uygulamanın FQDN'sine gidersiniz.

RESOURCE_GROUP_NAME=<your-resource-group-name>
SITE_NAME=<your-site-name>

az deployment group create \
    --resource-group $RESOURCE_GROUP_NAME \
    --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
    --parameters siteName=$SITE_NAME hostingPlanName=$SITE_NAME-plan

Dağıtım başarılı olduktan sonra (birkaç dakika sürebilir), bir tarayıcı açın ve çalıştığından emin olmak için web uygulamanıza gidin:

https://<your-site-name>.azurewebsites.net

Örnek uygulamanın hiçbir olay iletisi görüntülenmeden işlendiğini görmeniz gerekir.

Event Grid kaynak sağlayıcısını kaydetme

Event Grid'i daha önce kullanmadığınız sürece Event Grid kaynak sağlayıcısını kaydetmeniz gerekir. Event Grid'i daha önce kullandıysanız sonraki bölüme geçin.

Azure portalında şu adımları izleyin:

  1. Soldaki menüde Abonelikler'i seçin.

  2. Abonelik listesinden Event Grid için kullanmak istediğiniz aboneliği seçin.

  3. Abonelik sayfasındaki soldaki menüden Ayarlar'ın altında Kaynak sağlayıcıları'nı seçin.

  4. Microsoft.EventGrid öğesini arayın ve Status değerinin NotRegistered olduğunu doğrulayın.

  5. Sağlayıcı listesinden Microsoft.EventGrid'i seçin.

  6. Komut çubuğunda Kaydet'i seçin.

    Microsoft.EventGrid sağlayıcısının bir Azure aboneliğine kaydedildiğini gösteren ekran görüntüsü.

  7. Microsoft.EventGrid durumunun Kayıtlı olarak değiştiğinden emin olmak için yenileyin.

    Microsoft.EventGrid sağlayıcısının bir Azure aboneliğine başarıyla kaydedildiğini gösteren ekran görüntüsü.

API Management olaylarına abone olma

Event Grid'de, hangi olayları izlemek istediğinizi ve bunları nereye gönderebileceğinizi bildirmek için bir konuya abone olursunuz. Burada API Management örneğinizdeki olaylara abonelik oluşturacaksınız.

  1. Azure portalında API Management örneğine gidin.

  2. Olaylar > + Olay Aboneliği öğesini seçin.

  3. Temel sekmesinde:

    • Olay aboneliği için açıklayıcı bir Ad girin.
    • Event Grid'e göndermek için Olay Türleri'nde bir veya daha fazla API Management olay türü seçin. Bu makaledeki örnek için en az Microsoft.APIManagement.ProductCreated öğesini seçin
    • "Uç Nokta Ayrıntıları kısmında, Web Hook olay türünü seçin, Bir uç nokta seçin'e tıklayın ve ardından web uygulamanızın URL'sini api/updatesgiriniz." Örnek: https://myapp.azurewebsites.net/api/updates.
    • Seçimi onayla'yı seçin.
  4. Kalan sekmelerdeki ayarları varsayılan değerlerinde bırakın ve oluştur'u seçin.

    Azure portalında olay aboneliği oluşturma

Olayları tetikleme ve görüntüleme

Örnek uygulama çalışır durumda olduğuna ve Event Grid ile API Management örneğine abone olduğunuz için artık olaylar oluşturmaya hazırsınız.

Örnek olarak, API Management örneğinizde bir ürün oluşturun. Olay aboneliğiniz Microsoft.APIManagement.ProductCreated olayını içeriyorsa, ürün oluşturmak web uygulaması uç noktanıza gönderilen bir olayı tetikler.

Event Grid Görüntüleyicisi web uygulamanıza gidin ve ProductCreated etkinliğini görmelisiniz. Ayrıntıları göstermek için etkinliğin yanındaki düğmeyi seçin.

Event Grid görüntüleyicisinde ürün yaratma etkinliği

Event Grid olay şeması

API Management olay verileri, olayı tetikleyen API Management kaynağını tanımlayan öğesini içerir resourceUri. API Management olay iletisi şeması hakkında ayrıntılı bilgi için Event Grid belgelerine bakın:

API Management için Azure Event Grid olay şeması