Azure İşlevleri'de Event Grid tetikleyicileri ve bağlamalarıyla çalışma

Azure İşlevleri, tetikleyicileri ve bağlamaları kullanarak Azure Event Grid ile yerleşik tümleştirme sağlar. Bu makalede, Event Grid tetikleyicinizi ve bağlamalarınızı yapılandırma ve yerel olarak değerlendirme işlemleri gösterilmektedir. Event Grid tetikleyicisi ve çıkış bağlama tanımları ve örnekleri hakkında daha fazla bilgi için aşağıdaki başvuru makalelerinden birine bakın:

Olay aboneliği oluşturma

Event Grid HTTP isteklerini almaya başlamak için Event Grid tarafından tetiklenen olaylara yönelik bir aboneliğe ihtiyacınız vardır. Olay abonelikleri işlevi çağıran uç nokta URL'sini belirtir. İşlevinizin Azure portalındaki Tümleştirme sekmesinden bir olay aboneliği oluşturduğunuzda URL sizin için sağlanır. Program aracılığıyla bir olay aboneliği oluşturduğunuzda veya Event Grid'den olay aboneliği oluşturduğunuzda uç noktayı sağlamanız gerekir. Uç nokta URL'si, İşlev yöneticisi REST API'lerinden almanız gereken bir sistem anahtarı içerir.

Web kancası uç noktası URL'sini alma

Event Grid ile tetiklenen işlevinizin URL uç noktası İşlevler çalışma zamanının sürümüne bağlıdır. Aşağıdaki örnekte sürüme özgü URL deseni gösterilir:

https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey}

Not

Blob depolama tetikleyicisinin olay aboneliklerini de kullanan bir sürümü vardır. Bu tür bir Blob depolama tetikleyicisinin uç nokta URL'sinin /runtime/webhooks/blobsyolu olurken, Event Grid tetikleyicisinin yolu olacaktır /runtime/webhooks/EventGrid. Blobları işleme seçeneklerinin karşılaştırması için bkz . Blob kapsayıcısı üzerinde tetikleme.

Sistem anahtarını alma

Oluşturduğunuz URL uç noktası bir sistem anahtarı değeri içerir. Sistem anahtarı, Event Grid web kancasına özgü, Event Grid tetikleyicisi için uç nokta URL'sine yönelik bir isteğe dahil edilmesi gereken bir yetkilendirme anahtarıdır. Aşağıdaki bölümde sistem anahtarının nasıl alınacakları açıklanmaktadır.

İşlev uygulamanızın ana anahtarını portaldaki İşlevler>Uygulaması anahtarlarından da alabilirsiniz.

Dikkat

Ana anahtar, işlev uygulamanıza yönetici erişimi sağlar. Bu anahtarı üçüncü taraflarla paylaşmayın veya yerel istemci uygulamalarında dağıtmayın.

Daha fazla bilgi için bkz. Azure İşlevleri'da erişim anahtarlarıyla çalışma.

Aşağıdaki yönetici API'lerini (HTTP GET) kullanarak işlev uygulamanızdan sistem anahtarını alabilirsiniz:

http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey}

Bu REST API bir yönetici API'dir, bu nedenle işlev uygulama ana anahtarınızı gerektirir. Sistem anahtarını (Event Grid tetikleyici işlevini çağırmak için) ana anahtarla (işlev uygulamasında yönetim görevlerini gerçekleştirmek için) karıştırmayın. Event Grid konusuna abone olduğunuzda sistem anahtarını kullandığınızdan emin olun.

Sistem anahtarını sağlayan yanıtın bir örneği aşağıda verilmiştir:

{
  "name": "eventgridextensionconfig_extension",
  "value": "{the system key for the function}",
  "links": [
    {
      "rel": "self",
      "href": "{the URL for the function, without the system key}"
    }
  ]
}

Aboneliği oluşturma

Azure portalından veya Azure CLI kullanarak bir olay aboneliği oluşturabilirsiniz.

Azure portalında Event Grid tetikleyicisi ile geliştirdiğiniz işlevler için Tümleştirme'yi ve ardından Event Grid Tetikleyicisi'ni seçin ve Event Grid aboneliği oluştur'u seçin.

Portalda tetiklenmesi için yeni bir olay aboneliğine bağlanma işleminin ekran görüntüsü.

Bu bağlantıyı seçtiğinizde portal, geçerli tetikleyici uç noktasının önceden tanımlanmış olduğu Olay Aboneliği Oluştur sayfasını açar.

İşlev uç noktası önceden tanımlanmış bir olay aboneliği oluşturma işleminin ekran görüntüsü.

Azure portalını kullanarak abonelik oluşturma hakkında daha fazla bilgi için Event Grid belgelerindeki Özel olay oluşturma - Azure portalı bölümüne bakın.

Abonelik oluşturma hakkında daha fazla bilgi için bkz . blob depolama hızlı başlangıcı veya diğer Event Grid hızlı başlangıçları.

Görüntüleyici web uygulamasıyla yerel test

Event Grid tetikleyicisini yerel olarak test etmek için Event Grid HTTP isteklerinin buluttaki kaynaklarından yerel makinenize teslimini almanız gerekir. Bunun bir yolu, istekleri çevrimiçi olarak yakalamak ve bunları yerel makinenizde el ile yeniden göndermektir:

  1. Olay iletilerini yakalayan bir görüntüleyici web uygulaması oluşturun.
  2. Görüntüleyici uygulamasına olay gönderen bir Event Grid aboneliği oluşturun.
  3. bir istek oluşturun ve görüntüleyici uygulamasından istek gövdesini kopyalayın.
  4. İsteği Event Grid tetikleyici işlevinizin localhost URL'sine el ile gönderin.

HTTP gönderi isteği göndermek için bir HTTP test aracına ihtiyacınız vardır. Verilerinizin güvenliğini sağlayan bir araç seçtiğinizden emin olun. Daha fazla bilgi için bkz . HTTP test araçları.

Testi tamamladığınızda, uç noktayı güncelleştirerek üretim için aynı aboneliği kullanabilirsiniz. az eventgrid event-subscription update Azure CLI komutunu kullanın.

Görüntüleyici web uygulaması oluşturma

Olay iletilerini yakalamayı basitleştirmek için, olay iletilerini görüntüleyen önceden oluşturulmuş bir web uygulaması dağıtabilirsiniz. Dağıtılan çözüm bir App Service planı, App Service web uygulaması ve GitHub'dan kaynak kod içerir.

Çözümü aboneliğinize dağıtmak için Azure'a Dağıt'ı seçin. Azure portalında parametre değerlerini girin.

Resource Manager şablonunu Azure'a dağıtma düğmesi.

Dağıtımın tamamlanması birkaç dakika sürebilir. Dağıtım başarıyla gerçekleştirildikten sonra, web uygulamanızı görüntüleyip çalıştığından emin olun. Web tarayıcısında şu adrese gidin: https://<your-site-name>.azurewebsites.net

Siteyi görürsünüz ancak henüz yayımlanmış olay yoktur.

Yeni siteyi görüntüleme

Event Grid aboneliği oluşturma

Test etmek istediğiniz türde bir Event Grid aboneliği oluşturun ve web uygulamanızdaki URL'yi olay bildirimi için uç nokta olarak verin. Web uygulamanızın uç noktası /api/updates/ sonekini içermelidir. Bu nedenle, tam URL şu şekildedir: https://<your-site-name>.azurewebsites.net/api/updates

Azure portalını kullanarak abonelik oluşturma hakkında bilgi için Event Grid belgelerindeki Özel olay oluşturma - Azure portalı bölümüne bakın.

İstek oluşturma

Web uygulaması uç noktanıza HTTP trafiği oluşturacak bir olayı tetikleme. Örneğin, blob depolama aboneliği oluşturduysanız blobu karşıya yükleyin veya silin. Web uygulamanızda bir istek göründüğünde istek gövdesini kopyalayın.

Önce abonelik doğrulama isteği alınır; tüm doğrulama isteklerini yoksayın ve olay isteğini kopyalayın.

Web uygulamasından istek gövdesini kopyalama

İsteği el ile gönderme

Event Grid işlevinizi yerel olarak çalıştırın. Content-Type ve aeg-event-type üst bilgilerinin el ile ayarlanması gerekirken ve diğer tüm değerler varsayılan olarak bırakılabilir.

HTTP POST isteği oluşturmak için HTTP test aracınızı kullanın:

  • Üst Content-Type: application/json bilgi ayarlayın.

  • Üst aeg-event-type: Notification bilgi ayarlayın.

  • RequestBin verilerini istek gövdesine yapıştırın.

  • Event Grid tetikleyicisini el ile başlatan uç noktaya bir HTTP POST isteği gönderin.

    http://localhost:7071/runtime/webhooks/eventgrid?functionName={FUNCTION_NAME}
    

parametresi, functionName özniteliğinde FunctionName belirtilen ad olmalıdır.

Event Grid tetikleyici işlevi aşağıdaki örneğe benzer günlükleri yürütür ve gösterir:

Örnek Event Grid tetikleyici işlev günlükleri

Sonraki adımlar

İşlevler ile Event Grid hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: