Azure Logic Apps'te HTTPS uç noktalarını kullanarak çağırabileceğiniz, tetikleyebileceğiniz veya iç içe yerleştirebileceğiniz iş akışları oluşturma

Şunlar için geçerlidir: Azure Logic Apps (Tüketim + Standart)

Bazı senaryolar, diğer hizmetlerden veya iş akışlarından gelen istekleri alabilen bir mantıksal uygulama iş akışı veya URL kullanarak çağırabileceğiniz bir iş akışı oluşturmanızı gerektirebilir. Bu görev için, aşağıdaki istek tabanlı tetikleyici türlerinden herhangi birini kullandığınızda iş akışınızda yerel bir zaman uyumlu HTTPS uç noktasını kullanıma açabilirsiniz:

  • İste
  • HTTP Web kancası
  • Api Bağlan ionWebhook türüne sahip olan ve gelen HTTPS isteklerini alabilen yönetilen bağlayıcı tetikleyicileri

Bu kılavuzda, İstek tetikleyicisini ekleyip başka bir iş akışından bu uç noktayı çağırarak iş akışınız için çağrılabilen bir uç nokta oluşturma işlemi gösterilmektedir. Tüm ilkeler aynı şekilde gelen istekleri alabilen diğer istek tabanlı tetikleyici türleri için de geçerlidir.

Önkoşullar

  • Bir Azure hesabı ve aboneliği Aboneliğiniz yoksa, ücretsiz bir Azure hesabı için kaydolun.

  • Çağrılabilen uç noktayı oluşturmak için istek tabanlı tetikleyiciyi kullanmak istediğiniz mantıksal uygulama iş akışı. Boş bir iş akışıyla veya geçerli tetikleyiciyi değiştirebileceğiniz mevcut bir iş akışıyla başlayabilirsiniz. Bu örnek boş bir iş akışıyla başlar.

  • Oluşturduğunuz çağrılabilir uç noktanın URL'sini test etmek için Postman gibi bir araç veya uygulama gerekir.

Çağrılabilen uç nokta oluşturma

Standart veya Tüketim mantıksal uygulaması iş akışına bağlı olarak, ilgili adımları izleyin:

  1. Azure portalında Standart mantıksal uygulama kaynağınızı ve boş iş akışınızı tasarımcıda açın.

  2. HTTP isteği alındığında adlı İstek tetikleyicisini eklemek için bu genel adımları izleyin.

  3. İsteğe bağlı olarak, İstek Gövdesi JSON Şeması kutusuna tetikleyicinin almasını beklediğiniz yükü veya verileri açıklayan bir JSON şeması girebilirsiniz.

    Tasarımcı, tetikleyici çıkışlarını temsil eden belirteçler oluşturmak için bu şemayı kullanır. Daha sonra mantıksal uygulamanızın iş akışı boyunca bu çıkışlara kolayca başvurabilirsiniz. JSON şemalarından oluşturulan belirteçler hakkında daha fazla bilgi edinin.

    Bu örnek için aşağıdaki şemayı girin:

    {
       "type": "object",
       "properties": {
          "address": {
             "type": "object",
             "properties": {
                "streetNumber": {
                   "type": "string"
                },
                "streetName": {
                   "type": "string"
                },
                "town": {
                   "type": "string"
                },
                "postalCode": {
                   "type": "string"
                }
             }
          }
       }
    }
    

    Screenshot shows Standard workflow with Request trigger and Request Body JSON Schema parameter with example schema.

    Alternatif olarak, örnek bir yük sağlayarak bir JSON şeması oluşturabilirsiniz:

    1. İstek tetikleyicisinde Şema oluşturmak için örnek yükü kullan'ı seçin.

    2. Örnek bir JSON yükü girin veya yapıştırın kutusuna örnek yükünüzü girin, örneğin:

      {
         "address": {
            "streetNumber": "00000",
            "streetName": "AnyStreet",
            "town": "AnyTown",
            "postalCode": "11111-1111"
        }
      }
      
    3. Hazır olduğunuzda Bitti'yi seçin.

      İstek Gövdesi JSON Şeması kutusu artık oluşturulan şemayı gösterir.

  4. İş akışınızı kaydedin.

    HTTP POST URL'si kutusu artık diğer hizmetlerin mantıksal uygulama iş akışınızı çağırmak ve tetiklemek için kullanabileceği oluşturulan geri çağırma URL'sini gösterir. Bu URL, kimlik doğrulaması için kullanılan Paylaşılan Erişim İmzası (SAS) anahtarını belirten sorgu parametrelerini içerir.

    Screenshot shows Standard workflow, Request trigger, and generated callback URL for endpoint.

  5. Geri arama URL'sini kopyalamak için şu seçeneklere sahipsiniz:

    • HTTP POST URL'si kutusunun sağındaki URL'yi kopyala (dosyaları kopyala simgesi) öğesini seçin.

    • İş akışınızın Genel Bakış sayfasından geri arama URL'sini kopyalayın.

      1. İş akışı menünüzün Genel Bakış'ı seçin.

      2. Genel Bakış sayfasındaki İş Akışı URL'si altında işaretçinizi URL'nin üzerine getirin ve Panoya kopyala'yı seçin:

        Screenshot shows Standard workflow and Overview page with workflow URL.

  6. İstek tetikleyicisi için sahip olduğunuz geri çağırma URL'sini test etmek için Postman gibi bir araç veya uygulama kullanın ve İstek tetikleyicisinin beklediği yöntemi kullanarak isteği gönderin.

    Bu örnekte şu POST yöntem kullanılır:

    POST https://{logic-app-name}.azurewebsites.net:443/api/{workflow-name}/triggers/{trigger-name}/invoke?api-version=2022-05-01&sp=%2Ftriggers%2F{trigger-name}%2Frun&sv=1.0&sig={shared-access-signature}

Beklenen istek yöntemini seçin

Varsayılan olarak İstek tetikleyicisi bir POST istek bekler. Ancak, çağıranın kullanması gereken farklı bir yöntem belirtebilir, ancak yalnızca tek bir yöntem belirtebilirsiniz.

  1. İstek tetikleyicisinde Gelişmiş parametreler listesini açın ve bu özelliği tetikleyiciye ekleyen Yöntem'i seçin.

  2. Yöntem listesinden tetikleyicinin beklemesi gereken yöntemi seçin. İsterseniz özel bir yöntem de belirtebilirsiniz.

    Örneğin, uç noktanızın URL'sini daha sonra test edebilmeniz için GET yöntemini seçin.

Parametreleri uç nokta URL'si üzerinden geçirme

Uç noktanın URL'si aracılığıyla parametre değerlerini kabul etmek istediğinizde şu seçeneklere sahip olursunuz:

  • GET parametreleri veya URL parametreleri aracılığıyla değerleri kabul edin.

    Bu değerler, uç noktanın URL'sinde ad-değer çiftleri olarak geçirilir. Bu seçenek için İstek tetikleyicinizde GET yöntemini kullanmanız gerekir. Sonraki bir eylemde, bir ifadedeki işlevini kullanarak triggerOutputs() parametre değerlerini tetikleyici çıkışları olarak alabilirsiniz.

  • İstek tetikleyicinizdeki parametreler için göreli bir yol üzerinden değerleri kabul edin.

    Bu değerler, uç noktanın URL'sindeki göreli bir yoldan geçirilir. Tetikleyicinin beklediği yöntemi de açıkça seçmeniz gerekir. Sonraki bir eylemde, bu çıkışlara doğrudan başvurarak parametre değerlerini tetikleyici çıkışları olarak alabilirsiniz.

GET parametreleri aracılığıyla değerleri kabul etme

  1. İstek tetikleyicisinde Gelişmiş parametreleri açın, tetikleyiciye Method özelliğini ekleyin ve GET yöntemini seçin.

    Daha fazla bilgi için bkz . Beklenen istek yöntemini seçme.

  2. Tasarımcıda, parametre değerini kullanmak istediğiniz eylemi eklemek için bu genel adımları izleyin.

    Bu örnekte Yanıt adlı eylemi seçin.

  3. Parametre değerini alan ifadeyi oluşturmak triggerOutputs() için şu adımları izleyin:

    1. Yanıt eyleminde Body özelliğinin içini seçerek dinamik içerik (şimşek simgesi) ve ifade düzenleyicisi (formül simgesi) seçeneklerinin gösterilmesini sağlayın. İfade düzenleyicisini açmak için formül simgesini seçin.

    2. İfade kutusuna aşağıdaki ifadeyi girin ve değerini parametre adınızla değiştirin parameter-name ve Tamam'ı seçin.

      triggerOutputs()['queries']['parameter-name']

      Screenshot shows Standard workflow, Response action, and the triggerOutputs() expression.

      Body özelliğinde ifade belirteci triggerOutputs() çözümler.

      Screenshot shows Standard workflow with Response action's resolved triggerOutputs() expression.

      İş akışını kaydeder, tasarımcıdan uzaklaşır ve tasarımcıya dönerseniz, belirteç belirttiğiniz parametre adını gösterir, örneğin:

      Screenshot shows Standard workflow with Response action's resolved expression for parameter name.

      Kod görünümünde Body özelliği, Yanıt eyleminin tanımında aşağıdaki gibi görünür:

      "body": "@{triggerOutputs()['queries']['parameter-name']}",

      Örneğin, adlı postalCodeparametre için bir değer geçirmek istediğinizi varsayalım. Body özelliği, Postal Code: sonunda boşluk olan dizeyi ve ardından karşılık gelen ifadeyi belirtir:

      Screenshot shows Standard workflow with Response action and example triggerOutputs() expression.

Çağrılabilen uç noktanızı test edin

  1. İstek tetikleyicisinden iş akışı URL'sini kopyalayın ve URL'yi başka bir tarayıcı penceresine yapıştırın. URL'de, parametre adını ve değerini URL'ye aşağıdaki biçimde ekleyin ve Enter tuşuna basın.

    ...invoke/{parameter-name}/{parameter-value}?api-version=2022-05-01...

    Örneğin:

    https://mystandardlogicapp.azurewebsites.net/api/Stateful-Workflow/triggers/When_a_HTTP_request_is_received/invoke/address/12345?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig={shared-access-signature}

    Tarayıcı şu metni içeren bir yanıt döndürür: Postal Code: 123456

    Screenshot shows browser with Standard workflow response from request to callback URL.

Not

Karma veya pound simgesini (#) URI'ye eklemek istiyorsanız, bunun yerine şu kodlanmış sürümü kullanın: %25%23

Göreli bir yol üzerinden değerleri kabul etme

  1. İstek tetikleyicisinde Gelişmiş parametreler listesini açın ve bu özelliği tetikleyiciye ekleyen Göreli yol'ı seçin.

    Screenshot shows Standard workflow, Request trigger, and added property named Relative path.

  2. Göreli yol özelliğinde, JSON şemanızda URL'nizin kabul etmelerini istediğiniz parametrenin göreli yolunu belirtin; örneğin, /address/{postalCode}.

    Screenshot shows Standard workflow, Request trigger, and Relative path parameter value.

  3. İstek tetikleyicisinin altında, parametre değerini kullanmak istediğiniz eylemi eklemek için bu genel adımları izleyin.

    Bu örnekte Yanıt eylemini ekleyin.

  4. Yanıt eyleminin Gövde özelliğine, tetikleyicinizin göreli yolunda belirttiğiniz parametreyi temsil eden belirteci ekleyin.

    Örneğin, Yanıt eyleminin döndürmesini Postal Code: {postalCode}istediğinizi varsayalım.

    1. Body özelliğine sondaki bir boşlukla girinPostal Code: . İmlecinizi düzenleme kutusunun içinde tutarak dinamik içerik listesinin açık kalmasını sağlayın.

    2. Dinamik içerik listesinde, HTTP isteği alındığında bölümünde Yol Parametreleri posta kodu tetikleyici çıkışını seçin.

      Screenshot shows Standard workflow, Response action, and specified trigger output to include in response body.

      Body özelliği artık seçili parametreyi içerir:

      Screenshot shows Standard workflow and example response body with parameter.

  5. İş akışınızı kaydedin.

    İstek tetikleyicisinde geri çağırma URL'si güncelleştirilir ve şimdi göreli yolu içerir, örneğin:

    https://mystandardlogicapp.azurewebsites.net/api/Stateful-Workflow/triggers/When_a_HTTP_request_is_received/invoke/address/%7BpostalCode%7D?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig={shared-access-signature}

  6. Çağrılabilen uç noktanızı test etmek için İstek tetikleyicisinden güncelleştirilmiş geri çağırma URL'sini kopyalayın, URL'yi başka bir tarayıcı penceresine yapıştırın, URL'yi ile 123456değiştirin %7BpostalCode%7D ve Enter tuşuna basın.

    Tarayıcı şu metni içeren bir yanıt döndürür: Postal Code: 123456

    Screenshot shows browser with Standard workflow response from request to callback URL.

Not

Karma veya pound simgesini (#) URI'ye eklemek istiyorsanız, bunun yerine şu kodlanmış sürümü kullanın: %25%23

Uç nokta URL'si aracılığıyla iş akışını çağırma

Uç noktayı oluşturduktan sonra, uç noktanın tam URL'sine bir HTTPS isteği göndererek iş akışını tetikleyebilirsiniz. Azure Logic Apps iş akışları, doğrudan erişim uç noktaları için yerleşik desteğe sahiptir.

Şemadan oluşturulan belirteçler

İstek tetikleyicisinde bir JSON şeması sağladığınızda, iş akışı tasarımcısı bu şemadaki özellikler için belirteçler oluşturur. Daha sonra bu belirteçleri iş akışınızdan veri geçirmek için kullanabilirsiniz.

Örneğin, JSON şemanıza gibi "suite"daha fazla özellik eklerseniz, iş akışınızın sonraki adımlarında bu özelliklerin belirteçlerini kullanabilirsiniz. JSON şemasının tamamı aşağıdadır:

{
   "type": "object",
   "properties": {
      "address": {
         "type": "object",
         "properties": {
            "streetNumber": {
               "type": "string"
            },
            "streetName": {
               "type": "string"
            },
            "suite": {
               "type": "string"
            },
            "town": {
               "type": "string"
            },
            "postalCode": {
               "type": "string"
            }
         }
      }
   }
}

Diğer iş akışlarını çağırma

İstekleri geçerli iş akışının içine yerleştirerek alabilen diğer iş akışlarını çağırabilirsiniz. Bu iş akışlarını çağırmak için şu adımları izleyin:

  1. Tasarımcıda, bu iş akışı uygulamasında iş akışı çağır adlı İş Akışı İşlemleri eylemini eklemek için bu genel adımları izleyin.

    İş Akışı Adı listesi, seçmeniz için uygun iş akışlarını gösterir.

  2. İş Akışı Adı listesinden, çağırmak istediğiniz iş akışını seçin, örneğin:

    Screenshot shows Standard workflow, action named Invoke a workflow in this workflow app, opened Workflow Name list, and available workflows to call.

Gelen istekten gelen içeriğe başvurma

Gelen isteğin içerik türü ise application/json, gelen istekteki özelliklere başvurabilirsiniz. Aksi takdirde, bu içerik diğer API'lere geçirebileceğiniz tek bir ikili birim olarak değerlendirilir. Mantıksal uygulamanızın iş akışında bu içeriğe başvurmak için önce bu içeriği dönüştürmeniz gerekir.

Örneğin, türü olan application/xml içeriği geçiriyorsanız, XPath ayıklaması gerçekleştirmek için ifadeyi@xpath()kullanabilir veya XML'yi JSON'a dönüştürmek için ifadeyi @json() kullanabilirsiniz. Desteklenen içerik türleriyle çalışma hakkında daha fazla bilgi edinin.

Gelen istekten çıktı almak için ifadesini kullanabilirsiniz.@triggerOutputs Örneğin, aşağıdaki örneğe benzer bir çıktınız olduğunu varsayalım:

{
   "headers": {
      "content-type" : "application/json"
   },
   "body": {
      "myProperty" : "property value"
   }
}

Özellikle özelliğine body erişmek için ifadeyi @triggerBody() kısayol olarak kullanabilirsiniz.

İstekleri yanıtlama

Bazen, çağırana içerik döndürerek iş akışınızı tetikleyen belirli isteklere yanıt vermek istersiniz. Yanıtınızın durum kodunu, üst bilgisini ve gövdesini oluşturmak için Yanıt eylemini kullanın. Bu eylem yalnızca iş akışınızın sonunda değil iş akışınızın herhangi bir yerinde görünebilir. İş akışınız bir Yanıt eylemi içermiyorsa uç nokta 202 Kabul Edildi durumuyla hemen yanıt verir.

Özgün çağıranın yanıtı başarıyla alabilmesi için, tetiklenen iş akışı iç içe iş akışı olarak çağrılmadığı sürece yanıt için gerekli tüm adımların istek zaman aşımı sınırı içinde bitmelidir. Bu sınır içinde yanıt döndürülmezse, gelen istek zaman aşımına uğradı ve 408 İstemci zaman aşımı yanıtını alır.

İç içe geçmiş iş akışları için üst iş akışı, ne kadar süre gerekli olursa olsun tüm adımlar tamamlanana kadar yanıt beklemeye devam eder.

Yanıtı oluşturma

Yanıt gövdesine birden çok üst bilgi ve herhangi bir içerik türü ekleyebilirsiniz. Örneğin, aşağıdaki yanıtın üst bilgisi yanıtın içerik türünün olduğunu application/json ve gövdesinin İstek tetikleyicisi için bu konunun önceki bölümlerinde açıklanan JSON şemasına göre ve postalCode özellikleri için town değerler içerdiğini belirtir.

Screenshot shows Response action and response content type.

Yanıtlar şu özelliklere sahiptir:

Özellik (Görüntü) Özellik (JSON) Açıklama
Durum Kodu statusCode Gelen istek için yanıtta kullanılacak HTTPS durum kodu. Bu kod 2xx, 4xx veya 5xx ile başlayan geçerli bir durum kodu olabilir. Ancak, 3xx durum kodlarına izin verilmez.
Üst bilgiler headers Yanıta eklenecek bir veya daha fazla üst bilgi
Gövde body Dize, JSON nesnesi, hatta önceki bir adımdan başvurulmuş ikili içerik olabilecek bir gövde nesnesi

Yanıt eyleminin JSON tanımını ve iş akışınızın tam JSON tanımını görüntülemek için tasarımcı görünümünden kod görünümüne geçin.

"Response": {
   "type": "Response",
   "kind": "http",
   "inputs": {
      "body": {
         "postalCode": "@triggerBody()?['address']?['postalCode']",
         "town": "@triggerBody()?['address']?['town']"
      },
      "headers": {
         "content-type": "application/json"
      },
      "statusCode": 200
   },
   "runAfter": {}
}

Sorular ve Yanıtlar

S: Gelen aramalar için URL güvenliği ne olacak?

Y: Azure, Paylaşılan Erişim İmzası (SAS) kullanarak mantıksal uygulama geri çağırma URL'lerini güvenli bir şekilde oluşturur. Bu imza bir sorgu parametresi olarak geçer ve iş akışınızın çalıştırılabilmesi için önce doğrulanması gerekir. Azure, mantıksal uygulama başına gizli anahtarın benzersiz bir bileşimini, tetikleyici adını ve gerçekleştirilen işlemi kullanarak imzayı oluşturur. Bu nedenle, gizli dizi mantıksal uygulama anahtarına erişimi olmadığı sürece geçerli bir imza oluşturamaz.

Önemli

Üretim ve daha yüksek güvenlik sistemleri için aşağıdaki nedenlerle iş akışınızı doğrudan tarayıcıdan çağırmamanızı kesinlikle öneririz:

  • Paylaşılan erişim anahtarı URL'de görünür.
  • Azure Logic Apps müşterileri genelinde paylaşılan etki alanları nedeniyle güvenlik içerik ilkelerini yönetemezsiniz.

Daha önce Güvenli Yuva Katmanı (SSL) olarak bilinen Aktarım Katmanı Güvenliği (TLS), Microsoft Entra ID Açık Kimlik Doğrulaması (Microsoft Entra ID OAuth) gibi iş akışınıza gelen çağrılar için güvenlik, yetkilendirme ve şifreleme, Azure API Management ile mantıksal uygulama iş akışınızı ortaya çıkarma veya gelen çağrıları oluşturan IP adreslerini kısıtlama hakkında daha fazla bilgi için bkz. İstek tabanlı tetikleyicilere gelen çağrılar için güvenli erişim ve veri erişimi.

S: Çağrılabilen uç noktaları daha fazla yapılandırabilir miyim?

Y: Evet, HTTPS uç noktaları Azure API Management aracılığıyla daha gelişmiş yapılandırmayı destekler. Bu hizmet ayrıca mantıksal uygulamalar dahil olmak üzere tüm API'lerinizi tutarlı bir şekilde yönetme, özel etki alanı adları ayarlama, daha fazla kimlik doğrulama yöntemi kullanma ve daha fazlasını yapmanıza olanak sağlar. Örneğin:

Sonraki adımlar