Azure Logic Apps'ten Azure işlevleri çağırmaCall Azure functions from Azure Logic Apps

Logic apps içinde belirli bir işi yapan kodu çalıştırmak istediğinizde, kendi işlevi kullanarak oluşturabileceğiniz Azure işlevleri.When you want to run code that performs a specific job in your logic apps, you can create your own function by using Azure Functions. Bu hizmet, Node.js, oluşturmanıza yardımcı olur. C#, ve F# tam uygulama veya kod çalıştırmak için altyapı oluşturmak zorunda kalmamak için çalışır.This service helps you create Node.js, C#, and F# functions so you don't have to build a complete app or infrastructure to run code. Ayrıca logic apps'ten çağrı Azure işlevleri içindeki.You can also call logic apps from inside Azure functions. Azure işlevleri, sunucusuz bilgi işlem bulutta sağlar ve aşağıdaki örnekte olduğu gibi görevleri gerçekleştirmek için yararlıdır:Azure Functions provides serverless computing in the cloud and is useful for performing tasks such as these examples:

  • Node.js veya C# işlevleri ile mantıksal uygulamanızın davranışını genişletin.Extend your logic app's behavior with functions in Node.js or C#.
  • Mantıksal uygulama iş akışınızı hesaplamalar gerçekleştirin.Perform calculations in your logic app workflow.
  • Gelişmiş biçimlendirme uygulamak veya logic apps alanları işlem.Apply advanced formatting or compute fields in your logic apps.

Azure işlevleri'ni oluşturmadan kod parçacıklarını çalıştırmak için bilgi nasıl ekleme ve satır içi kod çalıştırma.To run code snippets without creating Azure functions, learn how to add and run inline code.

Not

Logic Apps ve Azure işlevleri arasında tümleştirme şu anda etkin yuvaları ile çalışmaz.Integration between Logic Apps and Azure Functions currently doesn't work with Slots enabled.

ÖnkoşullarPrerequisites

  • Azure aboneliği.An Azure subscription. Azure aboneliğiniz yoksa ücretsiz bir Azure hesabı için kaydolun.If you don't have an Azure subscription, sign up for a free Azure account.

  • Azure işlevleri, birlikte Azure işleviniz için bir kapsayıcı bir Azure işlev uygulaması.An Azure function app, which is a container for Azure functions, along with your Azure function. Bir işlev uygulaması yoksa ilk işlev uygulamanızı oluşturmak.If you don't have a function app, create your function app first. Daha sonra işlevinizi mantıksal uygulamanızı dışında ya da Azure portalında oluşturabilirsiniz veya öğesinden sonra mantıksal uygulamanızın içinde mantıksal Uygulama Tasarımcısı'nda.You can then create your function either outside your logic app in the Azure portal, or from inside your logic app in the Logic App Designer.

  • Mevcut veya yeni olup olmadığını logic apps ile çalışırken aynı gereksinimleri işlev uygulaması ve işlevleri için geçerlidir:When working with logic apps, the same requirements apply to function apps and functions whether they are existing or new:

    • İşlev uygulaması ve mantıksal uygulama, aynı Azure aboneliği kullanmanız gerekir.Your function app and logic app must use the same Azure subscription.

    • Yeni işlev uygulamaları .NET veya JavaScript çalışma zamanı yığını olarak kullanmanız gerekir.New function apps must use either the .NET or JavaScript as the runtime stack. Var olan işlev uygulamaları için yeni bir işlev eklediğinizde, seçebilirsiniz C# veya JavaScript.When you add a new function to existing function apps, you can select either C# or JavaScript.

    • İşlevinizi kullanan HTTP tetikleyicisi şablonu.Your function uses the HTTP trigger template.

      HTTP tetikleyici şablonu olan içeriği kabul edebilir application/json mantıksal uygulamanızdan türü.The HTTP trigger template can accept content that has application/json type from your logic app. Bir Azure işlevi mantıksal uygulamanıza eklediğinizde, mantıksal Uygulama Tasarımcısı, Azure aboneliğinizde bu şablondan oluşturulan özel işlevler gösterir.When you add an Azure function to your logic app, the Logic App Designer shows custom functions that are created from this template within your Azure subscription.

    • İşlevinizi tanımladınız sürece özel yollar kullanmayan bir Openapı tanımı (eski adıyla bir Swagger dosyası).Your function doesn't use custom routes unless you've defined an OpenAPI definition (formerly known as a Swagger file).

    • İşleviniz için bir Openapı tanımı varsa, Logic Apps Tasarımcısı'nda daha zengin bir size zaman deneyimi iş işlevi parametrelere sahip.If you have an OpenAPI definition for your function, the Logic Apps Designer gives you a richer experience when your work with function parameters. Mantıksal uygulamanızı bulun ve erişim Openapı tanımlarıyla sahip işlevlerin önce aşağıdaki adımları izleyerek işlev uygulamanızı ayarlama.Before your logic app can find and access functions that have OpenAPI definitions, set up your function app by following these steps.

  • İşlev eklemek istediğiniz mantıksal uygulama da dahil olmak üzere bir tetikleyici mantıksal uygulamanızı ilk adımı olarakThe logic app where you want to add the function, including a trigger as the first step in your logic app

    İşlevleri çalıştırma eylemleri eklemeden önce mantıksal uygulamanızın bir tetikleyici ile başlamalıdır.Before you can add actions that run functions, your logic app must start with a trigger. Logic apps kullanmaya yeni başladıysanız gözden Azure Logic Apps nedir ve hızlı başlangıç: İlk mantıksal uygulamanızı oluşturma.If you're new to logic apps, review What is Azure Logic Apps and Quickstart: Create your first logic app.

Openapı açıklamaları işlevleri BulFind functions that have OpenAPI descriptions

Logic Apps Tasarımcısı'nda işlev parametreleri ile çalışırken daha zengin bir deneyim Openapı tanımı oluşturma, eski adıyla bir Swagger dosyası, işleviniz için.For a richer experience when you work with function parameters in the Logic Apps Designer, generate an OpenAPI definition, formerly known as a Swagger file, for your function. Mantıksal uygulamanızı bulun ve Swagger açıklamaları işlevleri kullanmak için işlev uygulamanızı ayarlamak için aşağıdaki adımları izleyin:To set up your function app so your logic app can find and use functions that have Swagger descriptions, follow these steps:

  1. İşlev uygulamanızı etkin bir şekilde çalıştığından emin olun.Make sure that your function app is actively running.

  2. İşlev uygulamanız ayarlanan çıkış noktaları arası kaynak paylaşımı (CORS) böylece tüm kaynaklar, aşağıdaki adımları izleyerek izin verilir:In your function app, set up Cross-Origin Resource Sharing (CORS) so that all origins are permitted by following these steps:

    1. Gelen işlev uygulamaları listesinde, işlev uygulamanızı seçin.From the Function Apps list, select your function app. Sağ bölmede seçin Platform özellikleri > CORS.In the right-hand pane, select Platform features > CORS.

      İşlev uygulamanızı seçin > "Platform özellikleri" > "CORS"

    2. Altında CORS, yıldız işareti ekleyin ( * ) joker karakter, ancak tüm diğer kaynakları listeden kaldırın ve seçin Kaydet.Under CORS, add the asterisk (*) wildcard character, but remove all the other origins in the list, and choose Save.

      Ayarlama "CORS * joker karakteri için" * "

HTTP isteklerini içinde erişim özellik değerleriAccess property values inside HTTP requests

Web kancası İşlevler, girdi olarak HTTP isteklerini kabul etmek ve diğer işlevler için bu istekleri geçirin.Webhook functions can accept HTTP requests as inputs and pass those requests to other functions. Örneğin, Logic Apps olsa da DateTime değerlerini dönüştürme işlevleri, bu temel örnek JavaScript işlevi, işleve geçirilen ve üzerinde işlem yapabileceğiniz bir istek nesnesi içinde bir özelliği nasıl erişebileceğiniz gösterir. Bu özellik değeri.For example, although Logic Apps has functions that convert DateTime values, this basic sample JavaScript function shows how you can access a property inside a request object that's passed to the function and perform operations on that property value. Nesnelerin özelliklerine erişmek için bu örnekte nokta (.) işleci:To access properties inside objects, this example uses the dot (.) operator:

function convertToDateString(request, response){
   var data = request.body;
   response = {
      body: data.date.ToDateString();
   }
}

Bu işlev içinde neler aşağıda verilmiştir:Here's what happens inside this function:

  1. İşlev oluşturur bir data değişkeni ve atar body içinde nesne request Bu değişken için nesne.The function creates a data variable and assigns the body object inside the request object to that variable. İşlev başvurmak için nokta (.) işlecini kullanır body içinde nesne request nesnesi:The function uses the dot (.) operator to reference the body object inside the request object:

    var data = request.body;
    
  2. İşlevi artık erişebilirsiniz date özelliği aracılığıyla data değişkeni ve DateTime türü özellik değerini DateString yazın çağırarak dönüştürme ToDateString() işlevi.The function can now access the date property through the data variable, and convert that property value from DateTime type to DateString type by calling the ToDateString() function. İşlev ayrıca sonucunu döndürür body işlevin yanıt özelliği:The function also returns the result through the body property in the function's response:

    body: data.date.ToDateString();
    

Azure işlevinizi oluşturduğunuza göre nasıl adımlarını izleyin logic Apps'e işlevler eklemek.Now that you've created your Azure function, follow the steps for how to add functions to logic apps.

Logic apps içinde işlevler oluşturmaCreate functions inside logic apps

Mantıksal uygulamanız içinde Logic Apps Tasarımcısı'nı kullanarak başlayarak bir Azure işlev oluşturabilmeniz için önce işlevleriniz için kapsayıcı olan bir Azure işlev uygulaması olmalıdır.Before you can create an Azure function starting from inside your logic app by using the Logic App Designer, you must first have an Azure function app, which is a container for your functions. Bir işlev uygulamasına sahip değilseniz, bu işlev uygulaması ilk oluşturun.If you don't have a function app, create that function app first. Bkz: Azure portalında ilk işlevinizi oluşturma.See Create your first function in the Azure portal.

  1. İçinde Azure portalında, mantıksal Uygulama Tasarımcısı'nda mantıksal uygulamanızı açın.In the Azure portal, open your logic app in the Logic App Designer.

  2. Oluşturma ve işlevinizi eklemek için senaryonuz için geçerli adımı izleyin:To create and add your function, follow the step that applies to your scenario:

    • Mantıksal uygulamanızın iş akışında son adımı altında seçin yeni adım.Under the last step in your logic app's workflow, choose New step.

    • Mantıksal uygulamanızın iş akışında mevcut adımlar arasındaki okun üzerine fareyi hareket ettirin seçin artı (+) oturum açın ve ardından Eylem Ekle.Between existing steps in your logic app's workflow, move your mouse over the arrow, choose the plus (+) sign, and then select Add an action.

  3. Arama kutusuna filtreniz olarak "azure işlevleri" girin.In the search box, enter "azure functions" as your filter. Eylem listesinden şu eylemi seçin: Azure işlevleri - Azure işlevi seçinFrom the actions list, select this action: Choose an Azure function - Azure Functions

    "Azure işlevleri" bulun

  4. İşlev uygulamaları listesinden işlevi uygulamanızı seçin.From the function apps list, select your function app. Eylem listesini açıldıktan sonra şu eylemi seçin: Azure işlevleri - yeni bir işlev oluşturmaAfter the actions list opens, select this action: Azure Functions - Create New Function

    İşlev uygulamanızı seçin

  5. İşlev tanımı Düzenleyicisi'nde, işlevinizi tanımlayın:In the function definition editor, define your function:

    1. İçinde işlev adı kutusunda, işleviniz için bir ad sağlayın.In the Function name box, provide a name for your function.

    2. İçinde kod kutusunda, eklemek istediğiniz yük ve yanıt dahil, bir işlev şablonu kodunuza işlevinizi çalışmayı tamamladıktan sonra mantıksal uygulamanızı döndürdü.In the Code box, add your code to the function template, including the response and payload that you want returned to your logic app after your function finishes running.

      İşlevinizi tanımlayın

      Şablonun kodda context nesne aracılığıyla, mantıksal uygulamanın gönderdiği ileti başvurduğu istek gövdesi sonraki bir adımda alan.In the template's code, the context object refers to the message that your logic app sends through the Request Body field in a later step. Erişim için context nesnenin özelliklerinden, işlevin içindeki bu sözdizimini kullanın:To access the context object's properties from inside your function, use this syntax:

      context.body.<property-name>

      Örneğin, başvuru için content özelliği içinde context nesne, bu sözdizimini kullanın:For example, to reference the content property inside the context object, use this syntax:

      context.body.content

      Ayrıca şablon kodunu içeren bir input değerini depolayan değişken data işlevinizi değeri işlemleri gerçekleştirebilmesi için parametre.The template code also includes an input variable, which stores the value from the data parameter so your function can perform operations on that value. JavaScript işlevleri içinde data değişkeni, ayrıca bir kısayol context.body.Inside JavaScript functions, the data variable is also a shortcut for context.body.

      Not

      body Özelliği burada uygulandığı context nesne ve aynı olmayan gövdesi eylem belirtecinden çıkış, hangi işlevinize de geçebilir.The body property here applies to the context object and isn't the same as the Body token from an action's output, which you might also pass to your function.

    3. İşiniz bittiğinde Oluştur’u seçin.When you're done, choose Create.

  6. İçinde istek gövdesi kutusunda, işlevinizin giriş, JavaScript nesne gösterimi (JSON) nesnesi olarak biçimlendirilmelidir, sağlayın.In the Request Body box, provide your function's input, which must be formatted as a JavaScript Object Notation (JSON) object.

    Bu giriş bağlam nesnesi veya mantıksal uygulamanızı işlevinize gönderen bir ileti.This input is the context object or message that your logic app sends to your function. Tıkladığınızda istek gövdesi alan, dinamik içerik listesi görüntülenir önceki adımlardan bir çıkış belirteçleri seçebilmeniz.When you click in the Request Body field, the dynamic content list appears so you can select tokens for outputs from previous steps. Bu örnek bağlamı yükü adlı bir özellik içerdiğini belirtir content olan gelen e-posta tetikleyicisi değerinden belirteci:This example specifies that the context payload contains a property named content that has the From token's value from the email trigger:

    "İstek gövdesi" örnek - bağlam nesnesi yükü

    Burada, nesne içeriğini, doğrudan JSON yükü için eklenen için bağlam nesnesini bir dize olarak cast değil.Here, the context object isn't cast as a string, so the object's content gets added directly to the JSON payload. Ancak, bağlam nesnesini bir dize, bir JSON nesnesi veya bir JSON dizisi gönderen bir JSON belirteç bulunmadığında hata alırsınız.However, when the context object isn't a JSON token that passes a string, a JSON object, or a JSON array, you get an error. Bu nedenle, bu örnekte kullanılan alınma zamanı belirteci bunun yerine, bağlam nesnesini bir dize olarak çift tırnak işareti eklenerek çevirebilirsiniz:So, if this example used the Received Time token instead, you can cast the context object as a string by adding double-quotation marks:

    Dize olarak atama nesnesi

  7. İstek üstbilgileri veya sorgu parametreleri kullanılacak yöntemi gibi diğer ayrıntılarını belirtmek için açık yeni parametre Ekle listesinde ve istediğiniz seçenekleri seçin.To specify other details such as the method to use, request headers, or query parameters, open the Add new parameter list, and select the options that you want.

Logic Apps'e var olan işlevleri ekleyinAdd existing functions to logic apps

Mantıksal uygulamalarınızı mevcut Azure işlevleri çağırmak için Logic App Tasarımcısı'nda Azure işlevleri gibi diğer herhangi bir eylem ekleyebilirsiniz.To call existing Azure functions from your logic apps, you can add Azure functions like any other action in the Logic App Designer.

  1. İçinde Azure portalında, mantıksal Uygulama Tasarımcısı'nda mantıksal uygulamanızı açın.In the Azure portal, open your logic app in the Logic App Designer.

  2. İşlev eklemek istediğiniz adımı altında seçin yeni adımseçip Eylem Ekle.Under the step where you want to add the function, choose New step, and select Add an action.

  3. Arama kutusuna filtreniz olarak "azure işlevleri" girin.In the search box, enter "azure functions" as your filter. Eylem listesinden şu eylemi seçin: Azure işlevleri - Azure işlevi seçinFrom the actions list, select this action: Choose an Azure function - Azure Functions

    "Azure işlevleri" bulun

  4. İşlev uygulamaları listesinden işlevi uygulamanızı seçin.From the function apps list, select your function app. İşlevler listesi göründükten sonra işlevinizi seçin.After the functions list appears, select your function.

    İşlev uygulaması ve Azure işlevi seçin

    API tanımı (Swagger açıklamaları) varsa ve işlevler mantıksal uygulamanızı bulabilir ve bu işlevlere erişmek için ayarlanan, seçebileceğiniz Swagger eylemleri:For functions that have API definitions (Swagger descriptions) and are set up so your logic app can find and access those functions, you can select Swagger actions:

    İşlev uygulaması, "Swagger eylemleri" seçin "ve Azure işlevinizin

  5. İçinde istek gövdesi kutusunda, işlevinizin giriş, JavaScript nesne gösterimi (JSON) nesnesi olarak biçimlendirilmelidir, sağlayın.In the Request Body box, provide your function's input, which must be formatted as a JavaScript Object Notation (JSON) object.

    Bu giriş bağlam nesnesi veya mantıksal uygulamanızı işlevinize gönderen bir ileti.This input is the context object or message that your logic app sends to your function. Tıkladığınızda istek gövdesi alan, dinamik içerik listesinden görünür önceki adımlardan çıkış belirteçleri seçebilirsiniz.When you click in the Request Body field, the dynamic content list appears so that you can select tokens for outputs from previous steps. Bu örnek bağlamı yükü adlı bir özellik içerdiğini belirtir content olan gelen e-posta tetikleyicisi değerinden belirteci:This example specifies that the context payload contains a property named content that has the From token's value from the email trigger:

    "İstek gövdesi" örnek - bağlam nesnesi yükü

    Burada, nesne içeriğini, doğrudan JSON yükü için eklenen için bağlam nesnesini bir dize olarak cast değil.Here, the context object isn't cast as a string, so the object's content gets added directly to the JSON payload. Ancak, bağlam nesnesini bir dize, bir JSON nesnesi veya bir JSON dizisi gönderen bir JSON belirteç bulunmadığında hata alırsınız.However, when the context object isn't a JSON token that passes a string, a JSON object, or a JSON array, you get an error. Bu nedenle, bu örnekte kullanılan alınma zamanı belirteci bunun yerine, bağlam nesnesini bir dize olarak çift tırnak işareti eklenerek çevirebilirsiniz:So, if this example used the Received Time token instead, you can cast the context object as a string by adding double-quotation marks:

    Dize olarak atama nesnesi

  6. İstek üstbilgileri veya sorgu parametreleri kullanılacak yöntemi gibi diğer ayrıntılarını belirtmek için açık yeni parametre Ekle listesinde ve istediğiniz seçenekleri seçin.To specify other details such as the method to use, request headers, or query parameters, open the Add new parameter list, and select the options that you want.

Mantıksal uygulamaları Azure işlevleri çağırmaCall logic apps from Azure functions

Bir Azure işlevi içinde bir mantıksal uygulamadan tetiklemek istediğinizde, mantıksal uygulama bir çağrılabilir uç noktası sağlayan bir tetikleyici ile başlamalıdır.When you want to trigger a logic app from inside an Azure function, the logic app must start with a trigger that provides a callable endpoint. Örneğin, mantıksal uygulama ile başlayabilirsiniz HTTP, istek, Azure kuyrukları, veya Event Grid tetikleyici.For example, you can start the logic app with the HTTP, Request, Azure Queues, or Event Grid trigger. İçinde işlevinizi tetikleyicinin URL'sine HTTP POST isteği gönderin ve istediğiniz işlemek için bu mantıksal uygulama yükü içerir.Inside your function, send an HTTP POST request to the trigger's URL, and include the payload you want that logic app to process. Daha fazla bilgi için çağrı, tetikleyici veya iç içe mantıksal uygulamalar.For more information, see Call, trigger, or nest logic apps.

Sonraki adımlarNext steps