Azure Logic Apps 'de HTTP uç noktalarını kullanarak çağrı, tetikleyici veya iç içe mantıksal uygulamalarCall, trigger, or nest logic apps by using HTTP endpoints in Azure Logic Apps

Logic Apps 'te bir URL aracılığıyla tetikleyebilmeniz veya çağrabilmeniz için mantıksal uygulamalarda Tetikleyiciler olarak zaman uyumlu HTTP uç noktalarını yerel olarak kullanıma sunabilirsiniz.You can natively expose synchronous HTTP endpoints as triggers on logic apps so that you can trigger or call your logic apps through a URL. Ayrıca, çağrılabilir uç noktaların bir modelini kullanarak mantıksal uygulamalarınızda iş akışlarını iç içe geçirebilirsiniz.You can also nest workflows in your logic apps by using a pattern of callable endpoints.

HTTP uç noktaları oluşturmak için, mantıksal uygulamalarınızın gelen istekleri alabilmesi için bu Tetikleyicileri ekleyebilirsiniz:To create HTTP endpoints, you can add these triggers so that your logic apps can receive incoming requests:

Mantıksal uygulamanız için bir HTTP uç noktası ayarlamaSet up an HTTP endpoint for your logic app

Bir HTTP uç noktası oluşturmak için gelen istekleri alabilen bir tetikleyici ekleyin.To create an HTTP endpoint, add a trigger that can receive incoming requests.

  1. Azure Portal’ında oturum açın.Sign in to the Azure portal. Mantıksal uygulamanıza gidin ve mantıksal uygulama Tasarımcısı ' nı açın.Go to your logic app, and open Logic App Designer.

  2. Mantıksal uygulamanızın gelen istekleri almasına imkan tanıyan bir tetikleyici ekleyin.Add a trigger that lets your logic app receive incoming requests. Örneğin, mantıksal uygulamanıza istek tetikleyicisini ekleyin.For example, add the Request trigger to your logic app.

  3. Istek GÖVDESI JSON şemasıaltında, isteğe bağlı olarak, tetikleyicinin almasını beklediğinizi bekleyen yük (veri) IÇIN bir JSON şeması girebilirsiniz.Under Request Body JSON Schema, you can optionally enter a JSON schema for the payload (data) that you expect the trigger to receive.

    Tasarımcı, mantıksal uygulamanızın iş akışınız aracılığıyla tetikleyiciden verileri tüketmek, ayrıştırmak ve geçirebilmesi için kullanabileceği belirteçler oluşturmak için bu şemayı kullanır.The designer uses this schema for generating tokens that your logic app can use to consume, parse, and pass data from the trigger through your workflow. JSON şemalardan oluşturulan belirteçlerhakkında daha fazla bilgi.More about tokens generated from JSON schemas.

    Bu örnekte, tasarımcıda gösterilen şemayı girin:For this example, enter the schema shown in the designer:

    {
      "type": "object",
      "properties": {
        "address": {
          "type": "string"
        }
      },
      "required": [
        "address"
      ]
    }
    

    Istek eylemini ekleyin

    İpucu

    Jsonschema.netgibi bir araçtan örnek bir JSON yükü için bir şema oluşturabilir veya şema oluşturmak Için örnek yük kullan' ı seçerek istek tetikleyebilirsiniz.You can generate a schema for a sample JSON payload from a tool like jsonschema.net, or in the Request trigger by choosing Use sample payload to generate schema. Örnek yükünüzü girip bitti' yi seçin.Enter your sample payload, and choose Done.

    Örneğin, bu örnek yük:For example, this sample payload:

    {
       "address": "21 2nd Street, New York, New York"
    }
    

    Bu şemayı oluşturur:generates this schema:

    {
       "type": "object",
       "properties": {
          "address": {
             "type": "string" 
          }
       }
    }
    
  4. Mantıksal uygulamanızı kaydedin.Save your logic app. Bu URL 'ye http post' ın altında, şu örnekte olduğu gibi oluşturulmuş bir geri çağırma URL 'si bulmanız gerekir:Under HTTP POST to this URL, you should now find a generated callback URL, like this example:

    Uç nokta için geri çağırma URL 'SI oluşturuldu

    Bu URL, kimlik doğrulaması için kullanılan sorgu parametrelerinde bir paylaşılan erişim Imzası (SAS) anahtarı içerir.This URL contains a Shared Access Signature (SAS) key in the query parameters that are used for authentication. Ayrıca, Azure portal mantıksal uygulamanıza genel bakış üzerinden HTTP uç noktası URL 'sini de alabilirsiniz.You can also get the HTTP endpoint URL from your logic app overview in the Azure portal. Tetikleyici geçmişialtında tetikleyiciyi seçin:Under Trigger History, select your trigger:

    Azure portal HTTP uç noktası URL 'SI al

    Ya da bu çağrıyı yaparak URL 'YI edinebilirsiniz:Or you can get the URL by making this call:

    POST https://management.azure.com/{logic-app-resourceID}/triggers/{myendpointtrigger}/listCallbackURL?api-version=2016-06-01
    

Tetikleyicinizin HTTP yöntemini değiştirmeChange the HTTP method for your trigger

Varsayılan olarak, istek TETIKLEYICISI BIR http post isteği bekler, ancak farklı bir http yöntemi de kullanabilirsiniz.By default, the Request trigger expects an HTTP POST request, but you can use a different HTTP method.

Not

Yalnızca bir yöntem türü belirtebilirsiniz.You can specify only one method type.

  1. İstek tetikleyicisinde Gelişmiş seçenekleri göster' i seçin.On your Request trigger, choose Show advanced options.

  2. Yöntem listesini açın.Open the Method list. Bu örnek için, HTTP uç noktanızın URL 'sini daha sonra sınayabilmeniz için Al ' ı seçin.For this example, select GET so that you can test your HTTP endpoint's URL later.

    Not

    Başka herhangi bir HTTP yöntemini seçebilir veya kendi mantıksal uygulamanız için özel bir yöntem belirtebilirsiniz.You can select any other HTTP method, or specify a custom method for your own logic app.

    HTTP yöntemini değiştir

HTTP uç noktası URL 'niz aracılığıyla parametreleri kabul etmeAccept parameters through your HTTP endpoint URL

HTTP uç noktası URL 'nizin parametreleri kabul etmesini istediğinizde, tetikleyicinizin göreli yolunu özelleştirin.When you want your HTTP endpoint URL to accept parameters, customize your trigger's relative path.

  1. İstek tetikleyicisinde Gelişmiş seçenekleri göster' i seçin.On your Request trigger, choose Show advanced options.

  2. Yöntemialtında, isteğinizin kullanmasını istediğiniz http yöntemini belirtin.Under Method, specify the HTTP method that you want your request to use. Bu örnek için, henüz yapmadıysanız, HTTP uç noktanızın URL 'nizi test edebilmeniz için Get yöntemini seçin.For this example, select the GET method, if you haven't already, so that you can test your HTTP endpoint's URL.

    Not

    Tetikleyiciniz için göreli bir yol belirttiğinizde, Tetikleyiciniz için de açıkça bir HTTP yöntemi belirtmeniz gerekir.When you specify a relative path for your trigger, you must also explicitly specify an HTTP method for your trigger.

  3. Göreli yolaltında URL 'nizin kabul edileceği parametrenin göreli yolunu belirtin, örneğin customers/{customerID}.Under Relative path, specify the relative path for the parameter that your URL should accept, for example, customers/{customerID}.

    Parametre için HTTP yöntemini ve göreli yolu belirtin

  4. Parametresini kullanmak için, mantıksal uygulamanıza bir Yanıt eylemi ekleyin.To use the parameter, add a Response action to your logic app. (Tetikleyiciniz altında yeni adım > bir eylem > yanıtıEkle ' yi seçin)(Under your trigger, choose New step > Add an action > Response)

  5. Yanıtınızın gövdesinde, tetikleyicinizin göreli yolunda belirttiğiniz parametrenin belirtecini ekleyin.In your response's Body, include the token for the parameter that you specified in your trigger's relative path.

    Örneğin, Hello {customerID} döndürmek için, Hello {customerID token} ile yanıt gövdesini güncelleştirin.For example, to return Hello {customerID}, update your response's Body with Hello {customerID token}. Dinamik içerik listesi görünmelidir ve seçtiğiniz customerID belirtecini gösterir.The dynamic content list should appear and show the customerID token for you to select.

    Yanıt gövdesine parametre Ekle

    Gövde'niz şu örnekteki gibi görünmelidir:Your Body should look like this example:

    Parametreli yanıt gövdesi

  6. Mantıksal uygulamanızı kaydedin.Save your logic app.

    HTTP uç noktası URL 'niz artık göreli yolu içerir, örneğin:Your HTTP endpoint URL now includes the relative path, for example:

    https://prod-00.southcentralus.Logic.Azure.com/Workflows/f90cb66c52ea4e9cabe0abf4e197deff/Triggers/Manual/Paths/invoke/Customers/{CustomerID}...https://prod-00.southcentralus.logic.azure.com/workflows/f90cb66c52ea4e9cabe0abf4e197deff/triggers/manual/paths/invoke/customers/{customerID}...

  7. HTTP uç noktanızı test etmek için, güncelleştirilmiş URL 'YI kopyalayıp başka bir tarayıcı penceresine yapıştırın, ancak {customerID} 123456 ve ENTER ' a basın.To test your HTTP endpoint, copy and paste the updated URL into another browser window, but replace {customerID} with 123456, and press Enter.

    Tarayıcınız şu metni göstermelidir:Your browser should show this text:

    Hello 123456

Mantıksal uygulamanıza yönelik JSON şemalardan oluşturulan belirteçlerTokens generated from JSON schemas for your logic app

İstek Tetikleyiciniz IÇIN bir JSON şeması sağladığınızda, mantıksal uygulama Tasarımcısı bu şemadaki özellikler için belirteçler oluşturur.When you provide a JSON schema in your Request trigger, the Logic App Designer generates tokens for properties in that schema. Daha sonra bu belirteçleri, mantıksal uygulama iş akışınız aracılığıyla veri geçirmek için kullanabilirsiniz.You can then use those tokens for passing data through your logic app workflow.

Bu örnekte, title ve name özelliklerini JSON şemanıza eklerseniz, belirteçleri daha sonra iş akışı adımlarında kullanılmak üzere kullanılabilir.For this example, if you add the title and name properties to your JSON schema, their tokens are now available to use in later workflow steps.

Tüm JSON şeması aşağıda verilmiştir:Here is the complete JSON schema:

{
   "type": "object",
   "properties": {
      "address": {
         "type": "string"
      },
      "title": {
         "type": "string"
      },
      "name": {
         "type": "string"
      }
   },
   "required": [
      "address",
      "title",
      "name"
   ]
}

Mantıksal uygulamalar için iç içe iş akışları oluşturmaCreate nested workflows for logic apps

İstekleri alabilen diğer mantıksal uygulamaları ekleyerek mantıksal uygulamanıza iş akışlarını iç içe yerleştirebilirsiniz.You can nest workflows in your logic app by adding other logic apps that can receive requests. Bu mantıksal uygulamaları eklemek için, tetikleyicinizin Azure Logic Apps bir Logic Apps iş akışı eylemi seçin .To include these logic apps, add the Azure Logic Apps - Choose a Logic Apps workflow action to your trigger. Daha sonra uygun Logic Apps arasından seçim yapabilirsiniz.You can then select from eligible logic apps.

Başka bir mantıksal uygulama ekleyin

HTTP uç noktaları aracılığıyla mantıksal uygulamaları çağırma veya tetiklemeCall or trigger logic apps through HTTP endpoints

HTTP uç noktanızı oluşturduktan sonra, mantıksal uygulamanızı bir POST yöntemi aracılığıyla tam URL 'ye tetikleyebilirsiniz.After you create your HTTP endpoint, you can trigger your logic app through a POST method to the full URL. Logic Apps, doğrudan erişimli uç noktalar için yerleşik desteğe sahiptir.Logic apps have built-in support for direct-access endpoints.

Not

Mantıksal uygulamayı dilediğiniz zaman el ile çalıştırmak için, mantıksal uygulama Tasarımcısı veya mantıksal uygulama kod görünümü araç çubuğunda Çalıştır' ı seçin.To manually run a logic app at any time, on the Logic App Designer or Logic App Code View toolbar, choose Run.

Gelen bir istekten başvuru içeriğiReference content from an incoming request

İçeriğin türü application/json ise, gelen istekten özelliklere başvurabilirsiniz.If the content's type is application/json, you can reference properties from the incoming request. Aksi takdirde, içerik diğer API 'lere geçirebilmeniz için tek bir ikili birim olarak değerlendirilir.Otherwise, content is treated as a single binary unit that you can pass to other APIs. İş akışı içindeki bu içeriğe başvurmak için bu içeriği dönüştürmeniz gerekir.To reference this content inside the workflow, you must convert that content. Örneğin, application/xml içerik geçirirseniz, bir XPath ayıklama için @xpath() veya XML 'yi JSON 'a dönüştürmek için @json() kullanabilirsiniz.For example, if you pass application/xml content, you can use @xpath() for an XPath extraction, or @json() for converting XML to JSON. İçerik türleriyle çalışmahakkında bilgi edinin.Learn about working with content types.

Gelen bir istekten gelen çıktıyı almak için @triggerOutputs() işlevini kullanabilirsiniz.To get the output from an incoming request, you can use the @triggerOutputs() function. Çıktı şu örnekteki gibi görünebilir:The output might look like this example:

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

@No__t_0 özelliğine özel olarak erişmek için @triggerBody() kısayolunu kullanabilirsiniz.To access the body property specifically, you can use the @triggerBody() shortcut.

İsteklere yanıt vermeRespond to requests

Çağrıyı yapana içerik döndürerek mantıksal uygulama başlatan belirli isteklere yanıt vermek isteyebilirsiniz.You might want to respond to certain requests that start a logic app by returning content to the caller. Yanıtınız için durum kodunu, üstbilgiyi ve gövdesini oluşturmak için, Yanıt eylemini kullanabilirsiniz.To construct the status code, header, and body for your response, you can use the Response action. Bu eylem, yalnızca iş akışınızın sonunda değil, mantıksal uygulamanızda herhangi bir yerde görünebilir.This action can appear anywhere in your logic app, not just at the end of your workflow.

Not

Mantıksal uygulamanız bir YanıtIÇERMIYORSA, HTTP uç noktası hemen 202 kabul edilen bir durumla yanıt verir.If your logic app doesn't include a Response, the HTTP endpoint responds immediately with a 202 Accepted status. Ayrıca, yanıtı almak için özgün istek için, iş akışını iç içe bir mantıksal uygulama olarak çağırmadığınız sürece yanıt için gereken tüm adımların istek zaman aşımı sınırı içinde bitmesi gerekir.Also, for the original request to get the response, all steps required for the response must finish within the request timeout limit unless you call the workflow as a nested logic app. Bu sınırın içinde yanıt yoksa, gelen istek zaman aşımına uğrar ve HTTP yanıt 408 istemci zaman aşımınıalır.If no response happens within this limit, the incoming request times out and receives the HTTP response 408 Client timeout. İç içe mantıksal uygulamalar için, ne kadar süre gerekli olursa olsun, ana mantıksal uygulama tamamlanana kadar bir yanıt beklemeye devam eder.For nested logic apps, the parent logic app continues to wait for a response until completed, regardless of how much time is required.

Yanıtı oluşturunConstruct the response

Yanıt gövdesine birden fazla üstbilgi ve herhangi bir içerik türü dahil edebilirsiniz.You can include more than one header and any type of content in the response body. Örnek yanıtta, üst bilgi yanıtın application/json içerik türüne sahip olduğunu belirtir.In the example response, the header specifies that the response has content type application/json. gövde, daha önce istek tetikleyicisi IÇIN güncelleştirilmiş JSON şemasına göre title ve name içerir.and the body contains title and name, based on the JSON schema updated previously for the Request trigger.

HTTP yanıt eylemi

Yanıtlar şu özelliklere sahiptir:Responses have these properties:

ÖzellikProperty AçıklamaDescription
DurumstatusCode Gelen isteğe yanıt vermek için HTTP durum kodunu belirtir.Specifies the HTTP status code for responding to the incoming request. Bu kod, 2xx, 4xx veya 5xx ile başlayan geçerli bir durum kodu olabilir.This code can be any valid status code that starts with 2xx, 4xx, or 5xx. Ancak, 3xx durum kodlarına izin verilmez.However, 3xx status codes are not permitted.
Bilgisindeheaders Yanıta dahil edilecek herhangi bir sayıda üstbilgiyi tanımlar.Defines any number of headers to include in the response.
bölümübody Bir dize, JSON nesnesi veya hatta bir önceki adımdan başvurulan ikili içerik olabilecek bir Body nesnesini belirtir.Specifies a body object that can be a string, a JSON object, or even binary content referenced from a previous step.

Yanıt eylemi için şu anda JSON şeması şöyle görünür:Here's what the JSON schema looks like now for the Response action:

"Response": {
   "inputs": {
      "body": {
         "title": "@{triggerBody()?['title']}",
         "name": "@{triggerBody()?['name']}"
      },
      "headers": {
           "content-type": "application/json"
      },
      "statusCode": 200
   },
   "runAfter": {},
   "type": "Response"
}

İpucu

Mantıksal uygulamanızın tüm JSON tanımını görüntülemek için mantıksal uygulama Tasarımcısı 'nda kod görünümü' ne tıklayın.To view the complete JSON definition for your logic app, on the Logic App Designer, choose Code view.

Soru-CevapQ & A

S: URL güvenliği hakkında ne olacak?Q: What about URL security?

Y: Azure, paylaşılan erişim Imzası (SAS) kullanarak mantıksal uygulama geri çağırma URL 'Lerini güvenli şekilde oluşturur.A: Azure securely generates logic app callback URLs using a Shared Access Signature (SAS). Bu imza bir sorgu parametresi olarak geçirilir ve mantıksal uygulamanızın tetiklenmesi için doğrulanması gerekir.This signature passes through as a query parameter and must be validated before your logic app can fire. Azure, mantıksal uygulama başına bir gizli anahtar birleşimi, tetikleyici adı ve gerçekleştirilen işlem ile imza oluşturur.Azure generates the signature using a unique combination of a secret key per logic app, the trigger name, and the operation that's performed. Bu nedenle, gizli mantıksal uygulama anahtarına birisi erişemediği takdirde, geçerli bir imza üretemiyor.So unless someone has access to the secret logic app key, they cannot generate a valid signature.

Önemli

Üretim ve güvenli sistemler için, mantıksal uygulamanızı doğrudan tarayıcıdan çağırmaya kesinlikle önerilir, çünkü:For production and secure systems, we strongly recommend against calling your logic app directly from the browser because:

  • Paylaşılan erişim anahtarı URL 'de görüntülenir.The shared access key appears in the URL.
  • Mantıksal uygulama müşterileri genelinde paylaşılan etki alanları nedeniyle güvenli içerik ilkelerini yönetemezsiniz.You can't manage secure content policies due to shared domains across Logic App customers.

S: HTTP uç noktalarını başka bir şekilde yapılandırabilir miyim?Q: Can I configure HTTP endpoints further?

Y: Evet, HTTP uç noktaları API Managementaracılığıyla daha gelişmiş yapılandırmayı destekler.A: Yes, HTTP endpoints support more advanced configuration through API Management. Bu hizmet ayrıca Logic Apps, özel etki alanı adları ayarlama, daha fazla kimlik doğrulama yöntemi kullanma ve daha fazlasını içeren tüm API 'lerinizi sürekli olarak yönetmenize olanak sağlar. Örneğin:This service also offers the capability for you to consistently manage all your APIs, including logic apps, set up custom domain names, use more authentication methods, and more, for example:

S: şema 1 Aralık 2014 önizlemesinden geçirildiğinde ne değişti?Q: What changed when the schema migrated from the December 1, 2014 preview?

Y: Bu değişiklikler hakkında bir özet aşağıda verilmiştir:A: Here's a summary about these changes:

1 Aralık 2014 PreviewDecember 1, 2014 preview 1 Haziran 2016June 1, 2016
Http dinleyicisi API uygulaması ' na tıklayınClick HTTP Listener API App El ile tetikleme (API uygulaması gerekmez) seçeneğine tıklayınClick Manual trigger (no API App required)
"Yanıtı otomatik olarak gönderir" http dinleyicisi ayarıHTTP Listener setting "Sends response automatically" Bir Yanıt eylemi ekleyin veya iş akışı tanımında değilEither include a Response action or not in the workflow definition
Temel veya OAuth kimlik doğrulamasını yapılandırmaConfigure Basic or OAuth authentication API Management aracılığıylavia API Management
HTTP yöntemini yapılandırmaConfigure HTTP method Gelişmiş seçenekleri gösteraltında bir http yöntemi seçinUnder Show advanced options, choose an HTTP method
Göreli yolu YapılandırConfigure relative path Gelişmiş seçenekleri gösteraltında göreli bir yol ekleyinUnder Show advanced options, add a relative path
@No__t_0 üzerinden gelen gövdeye başvurReference the incoming body through @triggerOutputs().body.Content @No__t_0 ile başvuruReference through @triggerOutputs().body
Http dinleyicisinde http yanıtı gönderme eylemiSend HTTP response action on the HTTP Listener Http Isteğine Yanıtla ' ya tıklayın (API uygulaması gerekmez)Click Respond to HTTP request (no API App required)

Yardım alınGet help

Sorular sormak, soruları yanıtlamak ve diğer Azure Logic Apps kullanıcılarının neler yaptığını öğrenmek için Azure Logic Apps forumunu ziyaret edin.To ask questions, answer questions, and learn what other Azure Logic Apps users are doing, visit the Azure Logic Apps forum.

Azure Logic Apps ve bağlayıcıları geliştirmeye yardımcı olmak için, Azure Logic Apps kullanıcı geri bildirim sitesinde oy kullanın veya fikirlerinizi paylaşın.To help improve Azure Logic Apps and connectors, vote on or submit ideas at the Azure Logic Apps user feedback site.

Sonraki adımlarNext steps