Azure Logic Apps와 통합하는 함수 만들기Create a function that integrates with Azure Logic Apps

Azure Functions는 논리 앱 디자이너에서 Azure Logic Apps와 통합합니다.Azure Functions integrates with Azure Logic Apps in the Logic Apps Designer. 이 통합을 통해 다른 Azure 및 타사 서비스와 함께 오케스트레이션에서 함수의 컴퓨팅 기능을 사용할 수 있습니다.This integration lets you use the computing power of Functions in orchestrations with other Azure and third-party services.

이 자습서에서는 Azure의 Logic Apps 및 Cognitive Services와 함께 Functions를 사용하여 Twitter 게시물의 감정을 분석하는 방법을 보여줍니다.This tutorial shows you how to use Functions with Logic Apps and Cognitive Services on Azure to run sentiment analysis from Twitter posts. HTTP 트리거된 함수는 감정 점수를 기준으로 트윗을 녹색, 노랑 또는 빨강으로 분류합니다.An HTTP triggered function categorizes tweets as green, yellow, or red based on the sentiment score. 불량 감정이 감지되면 전자 메일이 전송됩니다.An email is sent when poor sentiment is detected.

논리 앱 디자이너에서 앱의 처음 2단계를 보여 주는 이미지

이 자습서에서는 다음 작업 방법을 알아봅니다.In this tutorial, you learn how to:

  • Cognitive Services API 리소스를 만듭니다.Create a Cognitive Services API Resource.
  • 트윗 감정을 분류하는 함수를 만듭니다.Create a function that categorizes tweet sentiment.
  • Twitter에 연결하는 논리 앱을 만듭니다.Create a logic app that connects to Twitter.
  • 논리 앱에 감정 검색을 추가합니다.Add sentiment detection to the logic app.
  • 함수에 논리 앱을 연결합니다.Connect the logic app to the function.
  • 함수의 응답에 따라 전자 메일을 보냅니다.Send an email based on the response from the function.

사전 요구 사항Prerequisites

Cognitive Services 리소스 만들기Create a Cognitive Services resource

Cognitive Services API는 Azure에서 개별 리소스로 사용할 수 있습니다.The Cognitive Services APIs are available in Azure as individual resources. 텍스트 분석 API를 사용하여 모니터링 중인 트윗의 감정을 검색합니다.Use the Text Analytics API to detect the sentiment of the tweets being monitored.

  1. Azure Portal에 로그인합니다.Sign in to the Azure portal.

  2. Azure Portal의 왼쪽 위 모서리에서 리소스 만들기를 클릭합니다.Click Create a resource in the upper left-hand corner of the Azure portal.

  3. AI + 기계 학습 > Text Analytics를 클릭합니다.Click AI + Machine Learning > Text Analytics. 그런 다음, 표에 지정된 대로 설정을 사용하여 리소스를 만듭니다.Then, use the settings as specified in the table to create the resource.

    Cognitive 리소스 만들기 페이지

    설정Setting 제안 값Suggested value DescriptionDescription
    이름Name MyCognitiveServicesAccntMyCognitiveServicesAccnt 고유한 계정 이름을 선택합니다.Choose a unique account name.
    위치Location 미국 서부West US 가장 가까운 위치를 사용합니다.Use the location nearest you.
    가격 책정 계층Pricing tier F0F0 가장 낮은 계층으로 시작합니다.Start with the lowest tier. 호출에서 실행하는 경우 더 높은 계층으로 확장합니다.If you run out of calls, scale to a higher tier.
    리소스 그룹Resource group myResourceGroupmyResourceGroup 이 자습서에서 모든 서비스에 대해 동일한 리소스 그룹을 사용합니다.Use the same resource group for all services in this tutorial.
  4. 만들기를 클릭하여 리소스를 만듭니다.Click Create to create your resource.

  5. 개요를 클릭하고 엔드포인트의 값을 텍스트 편집기에 복사합니다.Click on Overview and copy the value of the Endpoint to a text editor. 이 값은 Cognitive Services API에 연결할 때 사용됩니다.This value is used when creating a connection to the Cognitive Services API.

    Cognitive Services 설정

  6. 왼쪽 탐색 열에서 를 클릭한 다음, 키1의 값을 복사하여 텍스트 편집기에 보관해 둡니다.In the left navigation column, click Keys, and then copy the value of Key 1 and set it aside in a text editor. 이 키는 논리 앱을 Cognitive Services API에 연결할 때 사용됩니다.You use the key to connect the logic app to your Cognitive Services API.

    Cognitive Services 키

함수 앱 만들기Create the function app

함수는 논리 앱 워크플로에서 처리 작업을 오프로드하는 훌륭한 방법을 제공합니다.Functions provides a great way to offload processing tasks in a logic apps workflow. 이 자습서는 HTTP 트리거된 함수를 사용하여 Cognitive Services에서 트윗 감정 점수를 처리하고 범주 값을 반환합니다.This tutorial uses an HTTP triggered function to process tweet sentiment scores from Cognitive Services and return a category value.

  1. Azure Portal 메뉴에서 리소스 만들기를 선택합니다.From the Azure portal menu, select Create a resource.

    Azure Portal 메뉴를 사용하여 리소스 추가

  2. 새로 만들기 페이지에서 컴퓨팅 > 함수 앱을 선택합니다.In the New page, select Compute > Function App.

  3. 이미지 아래 표에 지정된 것처럼 함수 앱 설정을 사용합니다.Use the function app settings as specified in the table below the image.

    기본 사항

    설정Setting 제안 값Suggested value DescriptionDescription
    구독Subscription 사용자의 구독Your subscription 이 새 함수 앱이 만들어질 구독입니다.The subscription under which this new function app is created.
    리소스 그룹Resource Group myResourceGroupmyResourceGroup 함수 앱을 만들 새 리소스 그룹의 이름입니다.Name for the new resource group in which to create your function app.
    함수 앱 이름Function App name 전역적으로 고유한 이름Globally unique name 새 함수 앱을 식별하는 이름입니다.Name that identifies your new function app. 유효한 문자는 a-z(대/소문자 구분 안 함), 0-9-입니다.Valid characters are a-z (case insensitive), 0-9, and -.
    게시Publish 코드Code 코드 파일 또는 Docker 컨테이너를 게시하는 옵션입니다.Option to publish code files or a Docker container.
    런타임 스택Runtime stack 기본 설정 언어Preferred language 즐겨찾는 함수 프로그래밍 언어를 지원하는 런타임을 선택합니다.Choose a runtime that supports your favorite function programming language. C# 및 F# 함수의 경우 .NET을 선택합니다.Choose .NET for C# and F# functions.
    지역Region 기본 지역Preferred region 사용자 근처 또는 함수가 액세스할 기타 서비스에 가까운 지역을 선택합니다.Choose a region near you or near other services your functions access.

    다음: 호스팅 > 단추를 선택합니다.Select the Next : Hosting > button.

  4. 호스팅을 위해 다음 설정을 입력합니다.Enter the following settings for hosting.

    Hosting

    설정Setting 제안 값Suggested value DescriptionDescription
    Storage 계정Storage account 전역적으로 고유한 이름Globally unique name 함수 앱에서 사용하는 스토리지 계정을 만듭니다.Create a storage account used by your function app. Storage 계정 이름은 3자에서 24자 사이여야 하고 숫자 및 소문자만 포함할 수 있습니다.Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only. 기존 계정을 사용할 수도 있습니다. 여기서는 스토리지 계정 요구 사항을 충족해야 합니다.You can also use an existing account, which must meet the storage account requirements.
    운영 체제Operating system 기본 설정 운영 체제Preferred operating system 운영 체제는 런타임 스택 선택에 따라 미리 선택되지만 필요한 경우 설정을 변경할 수 있습니다.An operating system is pre-selected for you based on your runtime stack selection, but you can change the setting if necessary.
    계획Plan 소비 계획Consumption plan 함수 앱에 리소스가 할당되는 방법을 정의하는 호스팅 계획입니다.Hosting plan that defines how resources are allocated to your function app. 기본 소비 계획에서 함수의 필요에 따라 리소스가 동적으로 추가됩니다.In the default Consumption Plan, resources are added dynamically as required by your functions. 서버 없는 호스팅에서는 함수가 실행되는 시간 만큼만 요금을 지불하면 됩니다.In this serverless hosting, you only pay for the time your functions run. App Service 계획에서 실행하는 경우 함수 앱의 크기 조정을 관리해야 합니다.When you run in an App Service plan, you must manage the scaling of your function app.

    다음: 모니터링 > 단추를 선택합니다.Select the Next : Monitoring > button.

  5. 모니터링을 위해 다음 설정을 입력합니다.Enter the following settings for monitoring.

    모니터링

    설정Setting 제안 값Suggested value DescriptionDescription
    Application InsightsApplication Insights 기본값Default 가장 가까운 지원 영역에 동일한 앱 이름의 Application Insight 리소스를 만듭니다.Creates an Application Insights resource of the same App name in the nearest supported region. 이 설정을 확장하면 새 리소스 이름을 변경하거나 데이터를 저장하려는 Azure 지리적 위치에서 다른 위치를 선택합니다.By expanding this setting, you can change the New resource name or choose a different Location in an Azure geography where you want to store your data.

    검토 + 만들기를 선택하여 앱 구성 선택을 검토합니다.Select Review + Create to review the app configuration selections.

  6. 만들기를 선택하여 함수 앱을 프로비전하고 배포합니다.Select Create to provision and deploy the function app.

  7. 포털의 오른쪽 위 모서리에 있는 [알림] 아이콘을 선택하고 배포 성공 메시지가 표시될 때까지 기다립니다.Select the Notification icon in the upper-right corner of the portal and watch for the Deployment succeeded message.

    배포 알림

  8. 리소스로 이동을 선택하여 함수 앱을 봅니다.Select Go to resource to view your new function app. 대시보드에 고정을 선택할 수도 있습니다.You can also select Pin to dashboard. 고정하면 대시보드에서 이 함수 앱 리소스로 쉽게 돌아올 수 있습니다.Pinning makes it easier to return to this function app resource from your dashboard.

HTTP 트리거 함수 만들기Create an HTTP triggered function

  1. 함수 앱을 확장한 후 함수 옆의 + 단추를 클릭합니다.Expand your function app and click the + button next to Functions. 함수 앱의 첫 번째 함수인 경우 포털 내를 선택합니다.If this is the first function in your function app, select In-portal.

    Azure Portal에서 함수 빨리 시작하기 페이지

  2. 다음으로, Webhook + API를 선택하고 만들기를 클릭합니다.Next, select Webhook + API and click Create.

    HTTP 트리거 선택

  3. run.csx 파일의 콘텐츠를 다음 코드로 바꾼 다음 저장을 클릭합니다.Replace the contents of the run.csx file with the following code, then click Save:

    #r "Newtonsoft.Json"
    
    using System;
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Logging;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
    {
        string category = "GREEN";
    
        string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
        log.LogInformation(string.Format("The sentiment score received is '{0}'.", requestBody));
    
        double score = Convert.ToDouble(requestBody);
    
        if(score < .3)
        {
            category = "RED";
        }
        else if (score < .6) 
        {
            category = "YELLOW";
        }
    
        return requestBody != null
            ? (ActionResult)new OkObjectResult(category)
            : new BadRequestObjectResult("Please pass a value on the query string or in the request body");
    }
    

    이 함수 코드는 요청에서 받은 감정 점수를 기준으로 색 범주를 반환합니다.This function code returns a color category based on the sentiment score received in the request.

  4. 함수를 테스트하려면 오른쪽 끝의 테스트 를 클릭하여 테스트 탭을 확장합니다. 요청 본문0.2 값을 입력한 다음 실행 을 클릭합니다.To test the function, click Test at the far right to expand the Test tab. Type a value of 0.2 for the Request body, and then click Run. 응답의 본문에 RED 값이 반환됩니다.A value of RED is returned in the body of the response.

    Azure Portal에서 함수 테스트

이제 감정 점수를 분류하는 함수가 있습니다.Now you have a function that categorizes sentiment scores. 다음으로 Twitter 및 Cognitive Services API와 함수를 통합하는 논리 앱을 만듭니다.Next, you create a logic app that integrates your function with your Twitter and Cognitive Services API.

논리 앱 만들기Create a logic app

  1. Azure Portal에서 Azure Portal의 왼쪽 상단 모서리에 있는 리소스 만들기 단추를 클릭합니다.In the Azure portal, click the Create a resource button found on the upper left-hand corner of the Azure portal.

  2. > 논리 앱을 클릭합니다.Click Web > Logic App.

  3. 그런 다음, 이름의 값을 입력하고(예: TweetSentiment) 표에 지정된 대로 설정을 사용합니다.Then, type a value for Name like TweetSentiment, and use the settings as specified in the table.

    Azure Portal에서 논리 앱 만들기

    설정Setting 제안 값Suggested value DescriptionDescription
    이름Name TweetSentimentTweetSentiment 앱에 적절한 이름을 선택합니다.Choose an appropriate name for your app.
    리소스 그룹Resource group myResourceGroupmyResourceGroup 이전과 동일한 기존 리소스 그룹을 선택합니다.Choose the same existing resource group as before.
    위치Location 미국 동부East US 가까운 위치를 선택합니다.Choose a location close to you.
  4. 적절한 설정 값을 입력한 후에는 만들기를 클릭하여 논리 앱을 만듭니다.Once you have entered the proper settings values, click Create to create your logic app.

  5. 앱이 만들어지면 대시보드에 고정된 새 논리 앱을 클릭합니다.After the app is created, click your new logic app pinned to the dashboard. 그런 다음 Logic Apps 디자이너에서 아래로 스크롤하고 빈 논리 앱 템플릿을 클릭합니다.Then in the Logic Apps Designer, scroll down and click the Blank Logic App template.

    빈 Logic Apps 템플릿

이제 Logic Apps 디자이너를 사용하여 App Service 및 트리거를 앱에 추가할 수 있습니다.You can now use the Logic Apps Designer to add services and triggers to your app.

Twitter에 연결Connect to Twitter

먼저 Twitter 계정에 대한 연결을 만듭니다.First, create a connection to your Twitter account. 논리 앱은 앱이 실행되도록 트리거하는 트윗에 대해 폴링합니다.The logic app polls for tweets, which trigger the app to run.

  1. 디자이너에서 Twitter 서비스를 클릭하고 새 트윗이 게시된 경우 트리거를 클릭합니다.In the designer, click the Twitter service, and click the When a new tweet is posted trigger. Twitter 계정에 로그인하고 계정을 사용하도록 Logic Apps에 권한을 부여합니다.Sign in to your Twitter account and authorize Logic Apps to use your account.

  2. 표에 지정된 것처럼 Twitter 트리거 설정을 사용합니다.Use the Twitter trigger settings as specified in the table.

    Twitter 커넥터 설정

    설정Setting 제안 값Suggested value DescriptionDescription
    검색 텍스트Search text #Azure#Azure 선택한 간격으로 새 트윗을 생성할 만큼 충분히 인기 있는 해시태그를 사용합니다.Use a hashtag that is popular enough to generate new tweets in the chosen interval. 무료 계층을 사용하고 사용자 해시태그가 너무 많이 사용되면 Cognitive Services API에서 트랜잭션 할당량을 빠르게 사용할 수 있습니다.When using the Free tier and your hashtag is too popular, you can quickly use up the transaction quota in your Cognitive Services API.
    간격Interval 1515 빈도 단위에서 Twitter 요청 간 경과된 시간입니다.The time elapsed between Twitter requests, in frequency units.
    빈도Frequency MinuteMinute Twitter 폴링에 사용되는 빈도 단위입니다.The frequency unit used for polling Twitter.
  3. 저장을 클릭하여 Twitter 계정에 연결합니다.Click Save to connect to your Twitter account.

이제 앱이 Twitter에 연결되었습니다.Now your app is connected to Twitter. 다음으로 텍스트 분석에 연결하여 수집된 트윗의 감정을 검색합니다.Next, you connect to text analytics to detect the sentiment of collected tweets.

감정 검색 추가Add sentiment detection

  1. 새 단계를 클릭한 다음 작업 추가를 선택합니다.Click New Step, and then Add an action.

  2. 작업 선택에서 Text Analytics를 입력한 다음, 감정 검색 작업을 클릭합니다.In Choose an action, type Text Analytics, and then click the Detect sentiment action.

    새 단계 후 작업 추가

  3. 연결 이름을 입력하고(예: MyCognitiveServicesConnection), 텍스트 편집기에 보관해 둔 Cognitive Services API 및 Cognitive Services 엔드포인트의 키를 붙여넣고, 만들기를 클릭합니다.Type a connection name such as MyCognitiveServicesConnection, paste the key for your Cognitive Services API and the Cognitive Services endpoint you set aside in a text editor, and click Create.

    새 단계 후 작업 추가

  4. 다음으로, 텍스트 상자에 트윗 텍스트를 입력하고 새 단계를 클릭합니다.Next, enter Tweet Text in the text box and then click on New Step.

    분석할 텍스트 정의

감정 검색을 구성했으므로 감정 점수 출력을 사용하는 함수에 연결을 추가할 수 있습니다.Now that sentiment detection is configured, you can add a connection to your function that consumes the sentiment score output.

함수에 감정 출력 연결Connect sentiment output to your function

  1. Logic Apps 디자이너에서 새 단계 > 작업 추가를 클릭하고, Azure Functions로 필터링하고, Azure 함수 선택을 클릭합니다.In the Logic Apps Designer, click New step > Add an action, filter on Azure Functions and click Choose an Azure function.

    감정 검색

  2. 앞에서 만든 함수 앱을 선택합니다.Select the function app you created earlier.

    함수 선택

  3. 이 자습서에서 만든 함수를 선택합니다.Select the function you created for this tutorial.

    함수 선택

  4. 요청 본문에서 점수, 저장을 차례로 클릭합니다.In Request Body, click Score and then Save.

    점수

이제 논리 앱에서 감정 점수를 보낼 때 함수가 트리거됩니다.Now, your function is triggered when a sentiment score is sent from the logic app. 색으로 지정된 범주는 함수에 의해 논리 앱에 반환됩니다.A color-coded category is returned to the logic app by the function. 다음으로 RED 감정 값이 함수에서 반환될 때 전송되는 전자 메일 알림을 추가합니다.Next, you add an email notification that is sent when a sentiment value of RED is returned from the function.

전자 메일 알림 추가Add email notifications

워크플로의 마지막 부분은 감정이 _RED_로 점수가 매겨질 때 전자 메일을 트리거하는 것입니다.The last part of the workflow is to trigger an email when the sentiment is scored as RED. 이 항목에서는 Outlook.com 커넥터를 사용합니다.This topic uses an Outlook.com connector. 비슷한 단계를 수행하여 Gmail 또는 Office 365 Outlook 커넥터를 사용할 수 있습니다.You can perform similar steps to use a Gmail or Office 365 Outlook connector.

  1. Logic Apps 디자이너에서 새 단계 > 조건 추가를 클릭합니다.In the Logic Apps Designer, click New step > Add a condition.

    논리 앱에 조건을 추가합니다.

  2. 값 선택을 클릭한 다음 본문을 클릭합니다.Click Choose a value, then click Body. 같음을 선택하고 값 선택을 클릭하고 RED를 입력하고 저장을 클릭합니다.Select is equal to, click Choose a value and type RED, and click Save.

    조건에 대한 작업을 선택합니다.

  3. True인 경우에서 작업 추가를 클릭하고, outlook.com을 검색하고, 전자 메일 보내기를 클릭하고, Outlook.com 계정에 로그인합니다.In IF TRUE, click Add an action, search for outlook.com, click Send an email, and sign in to your Outlook.com account.

    전자 메일 보내기 작업에 대한 전자 메일을 구성합니다.

    참고

    Outlook.com 계정이 없는 경우 Gmail 또는 Office 365 Outlook과 같은 다른 커넥터를 선택할 수 있습니다.If you don't have an Outlook.com account, you can choose another connector, such as Gmail or Office 365 Outlook

  4. 전자 메일 보내기 작업에서 테이블에 지정된 대로 전자 메일 설정을 사용합니다.In the Send an email action, use the email settings as specified in the table.

    전자 메일 보내기 작업에 대한 전자 메일을 구성합니다.

설정Setting 제안 값Suggested value DescriptionDescription
수행할 작업To 메일 주소 입력Type your email address 알림을 받는 전자 메일 주소입니다.The email address that receives the notification.
SubjectSubject 부정적인 트윗 감정 검색Negative tweet sentiment detected 전자 메일 알림의 제목 줄입니다.The subject line of the email notification.
본문Body 트윗 텍스트, 위치Tweet text, Location 트윗 텍스트위치 매개 변수를 클릭합니다.Click the Tweet text and Location parameters.
  1. 저장을 클릭합니다.Click Save.

이제 워크플로를 완료했으므로 논리 앱을 활성화하고 작업 시 함수를 확인할 수 있습니다.Now that the workflow is complete, you can enable the logic app and see the function at work.

워크플로 테스트Test the workflow

  1. 논리 앱 디자이너에서 실행을 클릭하여 앱을 시작합니다.In the Logic App Designer, click Run to start the app.

  2. 왼쪽 열에서 개요를 클릭하여 논리 앱의 상태를 봅니다.In the left column, click Overview to see the status of the logic app.

    논리 앱 실행 상태

  3. (선택 사항) 실행 중 하나를 클릭하여 실행의 세부 정보를 봅니다.(Optional) Click one of the runs to see details of the execution.

  4. 함수로 이동하고 로그를 보고 감정 값이 수신 및 처리되었는지 확인합니다.Go to your function, view the logs, and verify that sentiment values were received and processed.

    함수 로그 보기

  5. 잠재적으로 부정적인 감정이 검색되면 전자 메일을 수신합니다.When a potentially negative sentiment is detected, you receive an email. 전자 메일을 수신하지 않은 경우 항상 RED를 반환하도록 함수 코드를 변경할 수 있습니다.If you haven't received an email, you can change the function code to return RED every time:

    return (ActionResult)new OkObjectResult("RED");
    

    전자 메일 알림을 확인한 후 원래 코드로 다시 변경합니다.After you have verified email notifications, change back to the original code:

    return requestBody != null
        ? (ActionResult)new OkObjectResult(category)
        : new BadRequestObjectResult("Please pass a value on the query string or in the request body");
    

    중요

    이 자습서를 완료 한 후 논리 앱을 비활성화해야 합니다.After you have completed this tutorial, you should disable the logic app. 앱을 비활성화하여 Cognitive Services API에서 실행에 대한 요금 부과 및 트랜잭션 소모를 방지할 수 있습니다.By disabling the app, you avoid being charged for executions and using up the transactions in your Cognitive Services API.

이제 Logic Apps 워크플로로 함수를 통합하는 것이 얼마나 쉬운지 살펴보았습니다.Now you have seen how easy it is to integrate Functions into a Logic Apps workflow.

논리 앱 비활성화Disable the logic app

논리 앱을 비활성화하려면 개요 클릭한 다음 화면 맨 위의 비활성화를 클릭합니다.To disable the logic app, click Overview and then click Disable at the top of the screen. 요금이 발생하지 않도록 앱을 삭제하지 않고 앱을 중지하려면 앱을 사용하지 않도록 설정합니다.Disabling the app stops it from running and incurring charges without deleting the app.

함수 로그

다음 단계Next steps

이 자습서에서는 다음 작업 방법을 알아보았습니다.In this tutorial, you learned how to:

  • Cognitive Services API 리소스를 만듭니다.Create a Cognitive Services API Resource.
  • 트윗 감정을 분류하는 함수를 만듭니다.Create a function that categorizes tweet sentiment.
  • Twitter에 연결하는 논리 앱을 만듭니다.Create a logic app that connects to Twitter.
  • 논리 앱에 감정 검색을 추가합니다.Add sentiment detection to the logic app.
  • 함수에 논리 앱을 연결합니다.Connect the logic app to the function.
  • 함수의 응답에 따라 전자 메일을 보냅니다.Send an email based on the response from the function.

함수에 대한 서버 없는 API를 만드는 방법에 대해 알아보려면 다음 자습서로 이동합니다.Advance to the next tutorial to learn how to create a serverless API for your function.

Logic Apps에 대해 자세히 알아보려면 Azure Logic Apps를 참조하세요.To learn more about Logic Apps, see Azure Logic Apps.