Azure Logic Apps ve Power Automate için web kancasını tetikleyici olarak kullanma
Web kancaları olay bildirimleri sağlamak için kullanılan basit HTTP geri aramalarıdır. Hem Azure Logic Apps hem de Power Automate, web kancalarını tetikleyici olarak kullanmanıza imkan tanır. Bir mantık uygulaması veya akışı bu tetikleyiciyi dinler ve tetik her ateşinde bir eylem gerçekleştirir. Bu öğretici bir Web kancasını tetik olarak nasıl kullanacağınızı gösterir.
Not
Web kancaları aracılığıyla bildirim gönderebilen bir hizmet örneği olarak GitHub kullanacağız, ancak burada gösterilen teknikler web kancaları kullanan herhangi bir hizmet için genişletilebilir.
Ön koşullar
- Aşağıdaki aboneliklerden birini:
- Bumantık uygulamalarını kullanıyorsanız Azure
- Power Automate
- Temel deneyim oluşturma mantıksal uygulamalar veya akışlar ve özel bağlayıcılar.
- Logic Apps kullanıyorsanız önce bir Azure Logic Apps özel bağlayıcısı oluşturun
- Web kancaları hakkında temel bilgiler.
- OpenAPI Belirtimi (önceden Swagger olarak biliniyordu) hakkında temel bilgiler.
- Bir GitHub hesabı.
- Bu öğretici için örnek OpenAPI tanımı.
OpenAPI tanımı
Logic Apps ve Power Automate'te web kancaları özel bağlayıcıların bir parçası olarak uygulandığından, web kancasının biçimini tanımlayan bir OpenAPI tanımı sağlamanız gerekir. Bir tetikleyici oluşturmak istiyorsanız ancak bir OpenAPI tanımınız yoksa, web kancası tetikleyicilerini tanımlamak için özel bağlayıcı sihirbazında Tetikleyiciler Kullanıcı arabirimini kullanabilirsiniz.
OpenAPI tanımı, web kancasının çalışması için kritik olan üç parça içerir:
- Web kancasını oluşturma
- API’den (bu durumda, GitHub) gelen kanca isteğini tanımlama
- Web kancasını silme
Web kancasını oluşturma
Web kancası GitHub tarafında /repos/{owner}/{repo}/hooks
hedefinde bir HTTP POST tarafından oluşturulur. Yeni bir mantıksal uygulama veya akış oluşturulduğunda, OpenAPI tanımında tanımlanan tetikleyiciyi kullanarak bu URL'ye gönderir. Tetik değiştirilirse de URL'ye gönderir. Aşağıda, post
özelliği GitHub’a gönderilen istek şemasını içerir.
"/repos/{owner}/{repo}/hooks": {
"x-ms-notification-content": {
"description": "Details for Webhook",
"schema": {
"$ref": "#/definitions/WebhookPushResponse"
}
},
"post": {
"description": "Creates a Github webhook",
"summary": "Triggers when a PUSH event occurs",
"operationId": "webhook-trigger",
"x-ms-trigger": "single",
"parameters": [
{
"name": "owner",
"in": "path",
"description": "Name of the owner of targeted repository",
"required": true,
"type": "string"
},
{
"name": "repo",
"in": "path",
"description": "Name of the repository",
"required": true,
"type": "string"
},
{
"name": "Request body of webhook",
"in": "body",
"description": "This is the request body of the Webhook",
"schema": {
"$ref": "#/definitions/WebhookRequestBody"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/WebhookCreationResponse"
}
}
}
}
},
Önemli
"x-ms-trigger": "single"
özelliği, Logic Apps ve Power Automate'e hata ayıklayıcıdaki kullanılabilir tetikleyiciler listesinde bu web kancasını görüntülemesini söyleyen bir şema uzantısıdır.
API’den gelen kanca isteğini tanımlama
Gelen kanca isteğinin (GitHub’dan Logic Apps veya Power Automate'e gönderilen bildirim) biçimi, önceki örnekte gösterildiği gibi özel x-ms-notification-content
özelliğinde tanımlanır. İsteğin tüm içeriğini içermesi gerekmez, yalnızca mantıksal uygulama veya akışta kullanmak istediğiniz bölümler yeterlidir.
Web kancasını silme
OpenAPI tanımı web kancasını silmeye yönelik bir tanım içermelidir. Tetikleyiciyi güncelleştirir veya mantıksal uygulamayı ya da akışı silerseniz Logic Apps ve Power Automate web kancasını silmeye çalışır.
"/repos/{owner}/{repo}/hooks/{hook_Id}": {
"delete": {
"description": "Deletes a Github webhook",
"operationId": "DeleteTrigger",
"parameters": [
{
"name": "owner",
"in": "path",
"description": "Name of the owner of targeted repository",
"required": true,
"type": "string"
},
{
"name": "repo",
"in": "path",
"description": "Name of the repository",
"required": true,
"type": "string"
},
{
"name": "hook_Id",
"in": "path",
"description": "ID of the Hook being deleted",
"required": true,
"type": "string"
}
]
}
},
Web kancasını silme çağrısına harç başlığı dahil değildir. Bağlayıcıda kullanılan aynı bağlantı, web kancası silme çağrısında da kullanılmaktadır.
Önemli
Logic Apps’in veya Power Automate'in bir web kancasını silmesi için web kancası oluşturulduğu sırada API, 201 yanıtında bir Location
HTTP üst bilgisi içermelidir. Location
üst bilgisi, HTTP DELETE ile kullanılacak web kancasının yolunu içermelidir. Örneğin, GitHub’ın yanıtına eklenen Location
şu biçimdedir: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>
.
GitHub'de kimlik doğrulamayı etkinleştirin
Logic Apps veya Power Automate'e web kancası isteği gönderen API genellikle bir çeşit kimlik doğrulaması kullanır ve GitHub için de aynı durum geçerlidir. GitHub çeşitli kimlik doğrulama türlerini destekler; bu öğretici için GitHub kişisel erişim belirteçleri kullanıyoruz.
Henüz yapmadıysanız GitHub’a gidin ve oturum açın.
Sağ üst köşede, profil resminize tıklayın ve ardından menüde Ayarlar’a tıklayın.
Soldaki menüde, Geliştirici ayarları altında, Kişisel erişim belirteçleri’ne tıklayın.
Yeni belirteç üretme düğmesini seçin ve istenirse parolanızı onaylayın.
Belirteç açıklaması kutusuna bir açıklama girin.
admin:repo_hook onay kutusunu seçin.
Belirteç oluştur düğmesine tıklayın.
Yeni belirtecinizi not edin.
Önemli
Bu belirtece tekrar erişemeyeceksiniz. Öğreticinin sonraki adımlarında kullanmak üzere belirteci, bir yere kopyalayıp yapıştırmanız gerekir.
OpenAPI tanımını içeri aktarma
İlk olarak Logic Apps’e ya da Power Automate'e yönelik OpenAPI tanımını içeri aktarın.
Logic Apps için OpenAPI tanımını içeri aktarma
Azure portalına gidin ve daha önce Azure Logic Apps özel bağlayıcısı oluşturma bölümünde oluşturduğunuz Logic Apps bağlayıcısını açın.
Bağlayıcı menüsünde, Logic Apps Bağlayıcısı öğesini seçin ve sonra Düzenle'yi seçin.
Genel bölümünde OpenAPI dosyasını karşıya yükle seçeneğini belirleyip indirdiğini OpenAPI dosyasına gidin.
Power Automate için OpenAPI tanımını içeri aktarma
flow.microsoft.com adresine gidin.
Sağ üst köşedeki dişli simgesini ve ardından Özel bağlayıcılar'ı seçin.
Özel bağlayıcı oluştur’u ve sonra Bir Postman koleksiyonunu içeri aktarın’ı seçin.
Özel bağlayıcı için bir ad girin ve indiridğiniz veya oluşturduğunuz OpenAPI dosyasına gidip Bağlan’ı seçin.
Parametre Değer Özel bağlayıcı başlığı "GitHubDemo"
Özel bağlayıcıyı oluşturmayı tamamlayın
Genel sayfasında devam ' ı seçin.
Güvenlik sayfasında, kimlik doğrulama türü altında, temel kimlik doğrulaması seçeneğini belirleyin.
Temel kimlik doğrulaması bölümünde, etiket alanları için Kullanıcı adı ve Parola metnini girin. Bunlar yalnızca tetikleyici bir mantıksal uygulamada veya akışta kullanıldığı zaman görüntülenen etiketlerdir.
Sihirbazın üst kısmındaki adın "GitHubDemo" olarak ayarlandığından emin olun ve Bağlayıcı oluştur’u seçin.
Şimdi tetikleyiciyi bir mantık uygulamasında veya akışta kullanıma hazır durumdasınız veya kullanıcı arabiriminden Tetikleyici oluşturma hakkında ' yı okuyabilirsiniz.
Kullanıcı arabiriminden web kancası tetikleyicileri oluşturma
Bu bölümde, OpenAPI tanımınızda herhangi bir tetikleyici tanımı olmadan kullanıcı arabiriminde bir tetikleyicinin nasıl oluşturulacağını gösteririz. Temel bir OpenAPI tanımıyla başlayın veya özel bağlayıcı sihirbazında sıfırdan başlayın.
Genel sayfasında bir açıklama ve URL belirtin.
Parametre Value Açıklama "GitHub bir sosyal kaynak kod deposudur." URL "api.github.com" Güvenlik sayfasında, temel kimlik doğrulamasını önceki bölümde olduğu gibi yapılandırın.
Tanım sayfasında, + yeni tetik'i seçin ve tetikleyicinizin açıklamasını doldurun. Bu örnekte, depodan bir çekme isteğinde bulunulduğunda başlatılan bir tetikleyici oluşturuyoruz.
Parametre Value Özet "Seçili havuzda bir çekme isteği yapıldığında tetiklenir" Açıklama "Seçili havuzda bir çekme isteği yapıldığında tetiklenir" İşlem Kimliği "webhook-PR-trigger" Görünürlük "hiç" (Daha fazla bilgi için aşağıya bakın) Tetikleyici türü "Web Kancası" Bir mantık uygulamasındaki veya akıştaki işlemler ve parametreler için görünürlük özelliği aşağıdaki seçeneklere sahiptir:
- hiçbiri - Normalde mantıksal uygulamada veya akışta görüntülenir
- gelişmiş - Ek bir menünün altına gizlenir
- dahili - kullanıcıdan gizlenir
- önemli - Her zaman kullanıcıya ilk olarak gösterilir
İstek alanı, eyleme yönelik HTTP isteğine göre bilgileri görüntüler. Örnekten aktar'ı seçin.
Web kancası tetikleyicisine yönelik isteği tanımlayın ve İçeri aktar’ı seçin. Almanız (resmin altında) için bir örnek sunuyoruz. Daha fazla bilgi için bkz. GitHub API referansı. Logic Apps ve Power Automate tarafından otomatik olarak standart
content-type
ve güvenlik üst bilgileri eklendiğinden, bir örnekten içeri aktarırken bunları tanımlamanız gerekmez.Parametre Value Fiil "GÖNDERİ" URL "https://api.github.com/repos/{owner}/{repo}/hooks" Gövde Aşağıya bakın { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }
Yanıt alanı, eyleme yönelik HTTP yanıtına göre bilgileri görüntüler. Varsayılan yanıt ekle’yi seçin.
Web kancası tetikleyicisine yönelik yanıtı tanımlayın ve İçeri aktar’ı seçin. Yeniden, almanız (resmin altında) için bir örnek sunuyoruz. Daha fazla bilgi için bkz. GitHub API referansı.
{ "action": "opened", "number": 1, "pull_request": { "html_url": "https://github.com/baxterthehacker/public-repo/pull/1", "state": "open", "locked": false, "title": "Update the README with new information", "user": { "login": "baxterthehacker", "type": "User" } } }
Tetikleyici yapılandırması alanında, GitHub 'dan geri çağırma URL 'si değerini alması gereken parametreyi seçin. Bu,
config
nesnesindekiurl
özelliğidir.Sihirbazın en üstünde, bir ad girin ve ardından bağlayıcıyı oluştur seçeneğini belirleyin.
Web kancasını tetikleyici olarak kullanma
Her şeyi yapılandırdığınıza göre artık web kancasını bir mantıksal uygulamada veya akışta kullanabilirsiniz. Ardından, GitHub deponuz git push aldığında Power Automate mobil uygulamasına anında iletme bildirimi gönderecek bir akış oluşturun.
flow.microsoft.com sitesinde, sayfanın üst kısmında, Akışlarım’a tıklayın.
Boş oluştur ' u seçtikten sonra bir sonraki sayfada yüzlerce bağlayıcı ve tetikleyici ara ' yı seçin.
Power Automate’in tasarımcısında daha önce kaydettiğiniz özel bağlayıcıyı arayın.
Tetikleyici olarak kullanmak için listedeki bir öğeye tıklayın.
Bu özel bağlayıcıyı ilk kez kullandığınız için buna bağlanmanız gerekiyor. Bağlantı bilgilerini girin ve Oluştur'u seçin.
Parametre Value Bağlantı adı Açıklayıcı bir ad Kullanıcı adı GitHub Kullanıcı adınız Parola Önceden oluşturduğunuz kişisel erişim belirtecini kullanın İzlemek istediğiniz depoyla ilgili ayrıntıları girin. Alanları OpenAPI dosyasındaki WebhookRequestBody nesnesinden tanıyabilirsiniz.
Parametre Değer sahip İzlenecek deponun sahibi depo Monitöre depo Önemli
Hesabınızın, kullanma hakkına sahip olduğu bir depo kullanmalısınız. Bunu yapmanın en kolay yolu kendi deponuzu kullanmaktır.
+ Yeni adım’ı ve ardından Eylem ekle’yi seçin.
Anında iletme bildirimi eylemini arayın ve seçin.
Dinamik içerik iletişim kutusundaki değerleri kullanarak metin alanına ve diğer alanlara metin girin. Bu değerlerin OpenAPI dosyasındaki WebhookPushResponse nesnesinden geldiğini unutmayın.
Parametre Değer Bağlantı adı Açıklayıcı bir ad Kullanıcı adı GitHub Kullanıcı adınız Parola Önceden oluşturduğunuz kişisel erişim belirtecini kullanın Sayfanın üst kısmında, akışa bir ad verin ve Akış oluştur’a tıklayın.
Doğrulama ve sorun giderme
Her şeyin doğru ayarlandığından emin olmak için, Akışlarım’a tıklayın ve ardından çalıştırma geçmişini görüntülemek üzere yeni akışın yanındaki bilgi simgesine tıklayın.
Web kancası oluşturmadan en az bir “Başarılı” çalıştırmayı görmüş olmanız gerekir. Bu, web kancasının GitHub tarafında başarılı bir şekilde oluşturulduğunu gösterir.
Çalıştırma başarısız olduysa nedenini öğrenmek için çalıştırma ayrıntılarına inebilirsiniz. Hata bir “404 Bulunamadı” yanıtı nedeniyle oluştuysa GitHub hesabınız kullandığınız, depo üzerinde web kancası oluşturmak için doğru izinlere sahip olmayabilir.
Özet
Her şey doğru olarak yapılandırıldıysa, seçtiğiniz GitHub deposunda gerçekleşen her git push işlemi için Power Automate mobil uygulamasında anında iletme bildirimleri alırsınız. Yukarıdaki süreci kullanarak web kancası özellikli herhangi bir hizmeti akışlarınızda tetikleyici olarak kullanabilirsiniz.
Sonraki adımlar
- Web API'si için bir özel bağlayıcı oluşturma
- API'nizi ve bağlayıcınızı Microsoft Entra ID ile doğrulayın
Geri bildirimde bulunun
Bağlayıcı platformumuzla ilgili sorunlar veya yeni özellik fikirleri hakkındaki geri bildiriminiz bizim için çok önemlidir. Geri bildirimde bulunmak için Sorun gönderme veya bağlayıcılarla ilgili yardım alma bölümüne gidip geri bildirim türünü seçin.