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 abonelikleri

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'si

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ı

Oluşturduğunuz URL uç noktası sistem anahtarı değerini içerir. Sistem anahtarı, Event Grid tetikleyicisi için uç nokta URL'sine eklenmesi gereken yetkilendirme anahtarıdır. Aşağıdaki bölümde sistem anahtarının nasıl alınacakları açıklanmaktadır.

Aşağıdaki API'yi (HTTP GET) kullanarak 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}"
    }
  ]
}

İşlev uygulamanızın ana anahtarını portaldaki İşlev uygulaması ayarları sekmesinden alabilirsiniz.

Önemli

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 HTTP tetikleyicisi başvuru makalesindeki Yetkilendirme anahtarları bölümüne bakın.

Olay 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.

Screenshot of connecting to a new event subscription to trigger in the portal.

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.

Screenshot of creating an event subscription with the function endpoint already defined.

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.

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.

Uzak istekleri yerel olarak çalışan işlevlerinize iletmek için ngrok yardımcı programını da kullanabilirsiniz. Daha fazla bilgi için bu öğreticiye bakı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.

Button to deploy the Resource Manager template to Azure.

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.

View new site

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.

Copy request body from web app

İ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 Postman veya curl gibi bir araç 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 tetikleyici işlevinizin URL'sine gönderin.

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

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

Aşağıdaki ekran görüntüleri Postman'deki üst bilgileri ve istek gövdesini gösterir:

Headers in Postman

Request body in Postman

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

Sample Event Grid trigger function logs

Sonraki adımlar

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