Azure Logic Apps ve Power Automate için web kancasını tetikleyici olarak kullanma

Web kancaları, bir web hizmetinde bir şey olduğunda olay bildirimleri sağlayan basit HTTP geri çağırmalarıdır. Azure Logic Apps ve Power Automate web kancalarını tetikleyici olarak kullanabilirsiniz. Bir mantık uygulaması veya akış bu tetikleyiciyi dinler ve tetikleyici her çalıştığında bir eylem gerçekleştirir. Bu öğreticide, OpenAPI belirtimi ile tanımlanan özel bağlayıcı aracılığıyla bir web kancasının tetikleyici olarak nasıl kullanılacağı gösterilmektedir.

Not

Bu makalede, web kancaları aracılığıyla bildirim gönderebilen bir hizmet örneği olarak GitHub kullanılır, ancak burada gösterilen teknikleri web kancalarına izin veren herhangi bir hizmete genişletebilirsiniz.

Ön koşullar

GitHub'de kimlik doğrulamayı etkinleştirin

Logic Apps'e veya Power Automate bir web kancası isteği gönderen bir web hizmeti API'si genellikle bir tür kimlik doğrulaması kullanır ve GitHub bir istisna değildir. GitHub çeşitli kimlik doğrulama türlerini destekler. Bu öğreticide GitHub ince ayarlı kişisel erişim belirteçleri kullanılır.

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

  2. Sağ üstteki profil resminizi seçin ve ardından menüde Ayarlar'ı seçin.

  3. Soldaki menüde Geliştirici ayarları'nı seçin.

  4. Kişisel erişim belirteçleri altında Ayrıntılı belirteçler seçin.

  5. Yeni belirteç oluştur düğmesini seçin ve istenirse parolanızı onaylayın.

  6. Belirteç için bir Belirteç adı ve Açıklama girin.

  7. Süre Sonu'nın altında belirteç için bir son kullanma tarihi seçin.

  8. Depo erişimi'nin altında Yalnızca depoları seçin'i seçin ve erişim vermek istediğiniz depoyu seçin.

  9. İzinler altında, İzin ekle>Web kancaları> seçin.

  10. Belirteç oluştur düğmesini seçin.

  11. Yeni belirtecinizi not edin. Bu belirteci daha sonra web kancası bağlayıcınızı tetikleyici olarak eklerken kullanmanız gerekir.

    Önemli

    Bu belirtece artık erişemezsiniz. Öğreticinin ilerleyen bölümlerinde kullanmak üzere kopyalayıp bir yere yapıştırın.

OpenAPI tanımında web kancasını tanımlama

Web kancalarını Logic Apps ve Power Automate'te bir özel bağlayıcının parçası olarak uygularsınız. Bağlayıcıyı oluşturmak için web kancasının şeklini tanımlayan bir OpenAPI tanımı sağlamanız gerekir. Bu öğreticide, GitHub web kancaları için indirilen örnek openAPI tanımı kullanılmaktadır.

Tetikleyici oluşturmak istiyorsanız ancak çalışabileceğiniz bir OpenAPI tanımı yoksa, web kancası tetikleyicilerini tanımlamak için özel bağlayıcı sihirbazındaki tetikleyiciler kullanıcı arabirimini kullanın.

Örnek OpenAPI tanımı, web kancasının çalışması için kritik öneme sahip üç bölüm içerir:

  • Web kancasını oluşturma
  • Web hizmeti API'sinden gelen webhook isteğinin tanımlanması (bu eğitim örneğinde GitHub)
  • Webhook'u silme

Bağlayıcı, GitHub deposu için web kancalarının nasıl oluşturulacağını, alınacağını ve silineceği hakkında bilgi edinmek için bu OpenAPI tanımını kullanır.

Webhook oluşturun

Bağlayıcı, web hizmeti için uygun web kancası oluşturma uç noktasına bir HTTP POST isteği göndererek web hizmeti tarafında web kancası oluşturmak için web hizmeti API'sini (örneğimizde, GitHub REST API'sini) kullanır (/repos/{owner}/{repo}/hooksGitHub söz konusu olduğunda).

Bağlayıcıyı kullanarak yeni bir mantıksal uygulama veya akış oluşturduğunuzda bağlayıcı, bağlayıcının OpenAPI tanımında tanımlandığı gibi web hizmetinin web kancası oluşturma uç noktasına bir POST isteği gönderir. Mantıksal uygulamayı veya akış tetikleyicisini değiştirirseniz bu URL'ye bir POST isteği de gönderir. Aşağıdaki örnek OpenAPI yol yapılandırmasında post özelliği, GitHub REST API'sine gönderilecek web kancası oluşturma isteğinin ş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'e ve Power Automate bu web kancasını tasarımcıdaki kullanılabilir tetikleyiciler listesinde görüntülemesini söyleyen bir şema uzantısıdır. Onu eklediğinizden emin olun.

API’den gelen hook isteğini tanımlayın

Önceki örnekte gösterildiği gibi, özel x-ms-notification-content özelliğinde gelen hook isteğinin yapısını (GitHub’dan Logic Apps’e veya Power Automate’e gönderilen bildirim) tanımlayın. İsteğin tüm içeriğini içermesi gerekmez, yalnızca mantıksal uygulamanızda veya akışınızda kullanmak istediğiniz bölümleri içerir.

Webhook’u sil

OpenAPI tanımına web kancasının nasıl silineceğiyle ilgili bir tanım ekleyin. Tetikleyiciyi güncelleştirirseniz ya da mantık uygulamasını veya akışı silerseniz, Logic Apps ve Power Automate mevcut webhook’u 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 webhook being deleted",
                "required": true,
                "type": "string"
            }
        ]
    }
},

Web kancasını silme çağrısı için üst bilgi eklenmedi. Web kancasını sil çağrısı, bağlayıcıyla aynı bağlantıyı kullanır.

Önemli

Logic Apps'in veya Power Automate bir web kancasını silmesini etkinleştirmek için web hizmetinin API'sinin, web kancası oluşturulduğunda 201 yanıtına bir Location HTTP üst bilgisi içermesi gerekir. Location başlığı, HTTP DELETE yöntemiyle kullanılan web kancasının yolunu içermelidir. Örneğin, Location GitHub yanıtında yer alan üst bilgi şu biçimdedir: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>.

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 ardından Düzenle'yi seçin.

    Logic Apps bağlayıcısı için Düzenle seçeneğinin ekran görüntüsü.

  3. Genel'in altında OpenAPI dosyasını karşıya yükle'yi seçin ve ardından indirdiğiniz örnek OpenAPI dosyasına gidin.

    “OpenAPI dosyası yükle” seçeneğinin ekran görüntüsü.

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

  1. Şuraya git: https://make.powerautomate.com/ .

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

    Özel bağlayıcılar seçeneğini içeren dişli simgesi menüsünün ekran görüntüsü.

  3. Özel bağlayıcı oluştur'u ve ardından Postman koleksiyonunu içeri aktar'ı seçin.

    İçeri aktarma seçeneklerini içeren Özel bağlayıcı oluştur menüsünün ekran görüntüsü.

  4. Özel bağlayıcı için bir ad girin, indirdiğiniz örnek OpenAPI dosyasına gidin ve Bağlan'ı seçin.

    Özel bağlayıcı adı girme alanının 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. Bu etiketler, tetikleyiciyi bir mantıksal uygulamada veya akışta kullandığınızda görünür.

    Temel kimlik doğrulama etiketi alanlarının ekran görüntüsü.

  4. Sihirbazın üst kısmında adın "GitHubDemo" olarak ayarlandığından emin olun ve ardından 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 tetikleyici tanımları olmadan kullanıcı arabiriminde tetikleyici oluşturmayı öğreneceksiniz. 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 belirttiğinizden emin olun.

    Parametre Değer
    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 tetikleyici'yi seçin ve tetikleyicinizin açıklamasını doldurun. Bu örnekte, bir depoya çekme isteği gönderildiğinde tetiklenen bir tetikleyici oluşturuyorsunuz.

    Yeni tetikleyici genel bilgi alanlarının ekran görüntüsü.

    Parametre Değer
    Özet Seçili depoda bir pull request oluşturulduğunda tetiklenir
    Açıklama Seçili depoda bir çekme talebi oluşturulduğunda 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ü Webhook

    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.

    Örnekten içeri aktar seçeneğinin olduğu Tanım sayfasının ekran görüntüsü.

  5. Webhook tetikleyicisi için isteği tanımlayın ve ardından İçeri Aktar seçeneğini belirleyin. İçeri aktarmanız için bir örnek sağlıyoruz (aşağıdaki bölümde). Daha fazla bilgi için bkz. GitHub API referansı. Logic Apps ve Power Automate otomatik olarak standart content-type ve güvenlik üst bilgileri ekler, bu nedenle bir örnekten içeri aktarırken bunları tanımlamanız gerekmez.

    Webhook tetikleyicisi için istek içe aktarma iletişim kutusunun ekran görüntüsü.

    Parametre Değer
    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.

    Varsayılan yanıt ekle seçeneğinin bulunduğu Tanım sayfası Yanıt alanının ekran görüntüsü.

  7. Web kancası tetikleyicisi için yanıtı tanımlayın ve ardından İçe Aktar'ı seçin. Yine, içe aktarmanız için size bir örnek sunuyoruz. Daha fazla bilgi için bkz. GitHub API referansı.

    Web kancası tetikleyicisi için yanıtı içeri aktarma iletişim kutusunun ekran görüntüsü.

    {
      "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 parametre, config nesnesindeki url özelliğidir.

    Geri çağırma URL'si parametresinin seçili olduğu Tetikleyici yapılandırma alanının ekran görüntüsü.

  9. Sihirbazın en üstüne bir ad girin ve bağlayıcı oluştur'u seçin.

Web kancasını tetikleyici olarak kullanma

Her şeyi yapılandırdıktan sonra, web kancasını bir mantıksal uygulama veya akıştaki özel bağlayıcı aracılığıyla kullanın. Ardından, GitHub deponuz git gönderimi aldığında e-posta gönderen bir akış oluşturun.

  1. sayfasında https://make.powerautomate.com/, sayfanın üst kısmındaki Akışlarım'ı seçin.

  2. Boştan oluştur seçeneğini belirleyin.

    Yüzlerce bağlayıcı ve tetikleyiciyi ara seçeneğinin ekran görüntüsü.

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

    Power Automate tasarımcısında özel bağlayıcı tetikleyicisini arama işleminin ekran görüntüsü.

  4. Tetikleyici olarak kullanmak için listedeki öğeyi seçin.

  5. Bu özel bağlayıcıyı ilk kez kullandığınız için, özel bağlayıcıya bağlanın. Bağlantı bilgilerini girin ve Oluştur'u seçin.

    Yeni bağlantı bilgileri alanlarının ekran görüntüsü.

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

    Tetikleyici için depo sahibi ve ad alanlarının ekran görüntüsü.

    Parametre Değer
    sahibi İzlenecek deponun sahibi
    repo Monitöre depo

    Önemli

    Hesabınızın erişebildiği bir depo kullanın. Bunu yapmanın en kolay yolu kendi reponuzu kullanmaktır.

  7. Yeni adım>Eylem ekle seçeneğini belirleyin.

  8. E-posta gönder (V2) eylemini arayın ve seçin.

  9. Dinamik içerik iletişim kutusundaki değerleri kullanarak Gövde alanına ve diğer alanlara metin girin. Değerler, OpenAPI dosyasındaki WebhookPushResponse nesnesinden gelir.

  10. Sayfanın üst kısmında, akışa bir ad verin ve Akış oluştur’a tıklayın.

    Akış adı alanının ve Akış oluştur düğmesinin ekran görüntüsü.

Doğrulama ve sorun giderme

Her şeyin doğru şekilde ayarlandığını doğrulamak için Akışlarım'ı seçin ve ardından yeni akışın yanındaki bilgi simgesini seçerek çalıştırma geçmişini görüntüleyin:

  • Web kancası oluşturma işleminden en az bir Başarılı çalışma görmüş olmalısınız. Bu çalıştırma, web kancasının GitHub tarafında başarıyla oluşturulduğunu gösterir.
  • Çalıştırma başarısız olduysa, neden başarısız olduğunu görmek için çalıştırma ayrıntılarını gözden geçirin. Hata bir 404 Not Found yanıt nedeniyle oluştuysa, GitHub hesabınızın büyük olasılıkla kullandığınız depoda web kancası oluşturmak için doğru izinleri yoktur.

Özet

Her şeyi doğru yapılandırdıysanız, seçtiğiniz GitHub deposunda git gönderimi her gerçekleştiğinde Power Automate mobil uygulamasında anında iletme bildirimleri alırsınız. Önceki işlemi kullanarak, akışlarınızda tetikleyici olarak web kancası özellikli herhangi bir hizmeti kullanabilirsiniz.

Sonraki adımlar

Geri bildirimde bulunun

Bağlayıcı platformumuzla veya yeni özellik fikirlerimizle ilgili sorunlar hakkındaki geri bildirimleriniz 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.