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:
- Azure Event Grid bağlamalarına genel bakış
- Azure İşlevleri için Azure Event Grid tetikleyicisi
- Azure İşlevleri için Azure Event Grid çıkış bağlaması
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/blobs
yolu 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.
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.
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:
- Olay iletilerini yakalayan bir görüntüleyici web uygulaması oluşturun.
- Görüntüleyici uygulamasına olay gönderen bir Event Grid aboneliği oluşturun.
- bir istek oluşturun ve görüntüleyici uygulamasından istek gövdesini kopyalayın.
- İ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.
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.
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.
İ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.
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:
Sonraki adımlar
İşlevler ile Event Grid hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: