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

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.

  1. Henüz yapmadıysanız GitHub’a gidin ve oturum açın.

  2. Sağ üst köşede, profil resminize tıklayın ve ardından menüde Ayarlar’a tıklayın.

    Ayarlar

  3. Soldaki menüde, Geliştirici ayarları altında, Kişisel erişim belirteçleri’ne tıklayın.

  4. Yeni belirteç üretme düğmesini seçin ve istenirse parolanızı onaylayın.

    Yeni belirteç oluşturma

  5. Belirteç açıklaması kutusuna bir açıklama girin.

  6. admin:repo_hook onay kutusunu seçin.

    admin:repo_hook

  7. Belirteç oluştur düğmesine tıklayın.

  8. Yeni belirtecinizi not edin.

    Yeni belirteç

    Ö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

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

  2. Bağlayıcı menüsünde, Logic Apps Bağlayıcısı öğesini seçin ve sonra Düzenle'yi seçin.

    Logic Apps Bağlayıcısını düzenleme

  3. Genel bölümünde OpenAPI dosyasını karşıya yükle seçeneğini belirleyip indirdiğini OpenAPI dosyasına gidin.

    Bir OpenAPI dosyasını yükleme seçeneğini gösteren ekran görüntüsü.

Power Automate için OpenAPI tanımını içeri aktarma

  1. flow.microsoft.com adresine gidin.

  2. Sağ üst köşedeki dişli simgesini ve ardından Özel bağlayıcılar'ı seçin.

    Özel bağlayıcılar

  3. Özel bağlayıcı oluştur’u ve sonra Bir Postman koleksiyonunu içeri aktarın’ı seçin.

    Özel bağlayıcı oluşturma

  4. Özel bağlayıcı için bir ad girin ve indiridğiniz veya oluşturduğunuz OpenAPI dosyasına gidip Bağlan’ı seçin.

    Ad girme alanını gösteren ekran görüntüsü.

    Parametre Değer
    Özel bağlayıcı başlığı "GitHubDemo"

Özel bağlayıcıyı oluşturmayı tamamlayın

  1. Genel sayfasında devam ' ı seçin.

  2. Güvenlik sayfasında, kimlik doğrulama türü altında, temel kimlik doğrulaması seçeneğini belirleyin.

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

    Temel kimlik doğrulaması

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

  1. Genel sayfasında bir açıklama ve URL belirtin.

    Parametre Value
    Açıklama "GitHub bir sosyal kaynak kod deposudur."
    URL "api.github.com"
  2. Güvenlik sayfasında, temel kimlik doğrulamasını önceki bölümde olduğu gibi yapılandırın.

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

    Tetikleyici-1’i oluşturma

    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
  4. İstek alanı, eyleme yönelik HTTP isteğine göre bilgileri görüntüler. Örnekten aktar'ı seçin.

    Tanım sayfası - örnekten al

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

    Tetikleyici-2’yi oluşturma

    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"
      }
    }
    
  6. 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.

    Tanım sayfası - yanıt

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

    Tetikleyici-3’ü oluşturma

    {
      "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"
        }
      }
    }
    
  8. Tetikleyici yapılandırması alanında, GitHub 'dan geri çağırma URL 'si değerini alması gereken parametreyi seçin. Bu, config nesnesindeki url özelliğidir.

    Tetikleyici-4’ü oluşturma

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

  1. flow.microsoft.com sitesinde, sayfanın üst kısmında, Akışlarım’a tıklayın.

  2. Boş oluştur ' u seçtikten sonra bir sonraki sayfada yüzlerce bağlayıcı ve tetikleyici ara ' yı seçin.

    Bağlayıcıları ara

  3. Power Automate’in tasarımcısında daha önce kaydettiğiniz özel bağlayıcıyı arayın.

    Yeni tetikleyici

    Tetikleyici olarak kullanmak için listedeki bir öğeye tıklayın.

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

    Yeni bağlantı

    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
  5. İzlemek istediğiniz depoyla ilgili ayrıntıları girin. Alanları OpenAPI dosyasındaki WebhookRequestBody nesnesinden tanıyabilirsiniz.

    Depo bilgileri

    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.

  6. + Yeni adım’ı ve ardından Eylem ekle’yi seçin.

  7. Anında iletme bildirimi eylemini arayın ve seçin.

    Anında iletme bildirimi

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

    Anında iletme bildirimi ayrıntıları

    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
  9. Sayfanın üst kısmında, akışa bir ad verin ve Akış oluştur’a tıklayın.

    Akış adı

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

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.