자습서: Azure Logic Apps, Azure Functions 및 Azure Storage를 사용하여 이메일을 처리하는 작업 자동화Tutorial: Automate tasks to process emails by using Azure Logic Apps, Azure Functions, and Azure Storage

Azure Logic Apps를 사용하면 워크플로를 자동화하고 Azure 서비스, Microsoft 서비스, 기타 SaaS(software-as-a-service) 앱 및 온-프레미스 시스템의 데이터를 통합할 수 있습니다.Azure Logic Apps helps you automate workflows and integrate data across Azure services, Microsoft services, other software-as-a-service (SaaS) apps, and on-premises systems. 이 자습서에서는 수신 이메일 및 첨부 파일을 처리하는 논리 앱을 빌드하는 방법을 보여줍니다.This tutorial shows how you can build a logic app that handles incoming emails and any attachments. 이 논리 앱은 이메일 콘텐츠를 분석하고, Azure 스토리지에 콘텐츠를 저장하고, 해당 콘텐츠를 검토하기 위한 알림을 보냅니다.This logic app analyzes the email content, saves the content to Azure storage, and sends notifications for reviewing that content.

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

  • 저장된 이메일 및 첨부 파일을 확인할 수 있도록 Azure 스토리지 및 Storage Explorer를 설정합니다.Set up Azure storage and Storage Explorer for checking saved emails and attachments.
  • 이메일에서 HTML을 제거하는 Azure 함수를 만듭니다.Create an Azure function that removes HTML from emails. 이 자습서에는 이 함수에 사용할 수 있는 코드가 포함되어 있습니다.This tutorial includes the code that you can use for this function.
  • 빈 논리 앱을 만듭니다.Create a blank logic app.
  • 이메일의 첨부 파일을 모니터링하는 트리거를 추가합니다.Add a trigger that monitors emails for attachments.
  • 이메일에 첨부 파일이 있는지 확인하는 조건을 추가합니다.Add a condition that checks whether emails have attachments.
  • 이메일에 첨부 파일이 있으면 Azure 함수를 호출하는 작업을 추가합니다.Add an action that calls the Azure function when an email has attachments.
  • 이메일 및 첨부 파일에 대한 스토리지 BLOB을 만드는 작업을 추가합니다.Add an action that creates storage blobs for emails and attachments.
  • 이메일 알림을 보내는 작업을 추가합니다.Add an action that sends email notifications.

여기까지 모두 마치면 논리 앱이 이 워크플로와 비슷하게 보입니다.When you're done, your logic app looks like this workflow at a high level:

완료된 상위 수준 논리 앱

사전 요구 사항Prerequisites

첨부 파일을 저장하도록 스토리지 설정Set up storage to save attachments

수신 이메일 및 첨부 파일을 Azure Storage 컨테이너에 BLOB으로 저장할 수 있습니다.You can save incoming emails and attachments as blobs in an Azure storage container.

  1. Azure 계정 자격 증명을 사용하여 Azure Portal에 로그인합니다.Sign in to the Azure portal with your Azure account credentials.

  2. 스토리지 컨테이너를 만들려면 먼저 Azure Portal의 기본 탭에서 다음 설정을 사용하여 스토리지 계정 만들기를 수행해야 합니다.Before you can create a storage container, create a storage account with these settings on the Basics tab in the Azure portal:

    설정Setting Value 설명Description
    구독Subscription <Azure-subscription-name><Azure-subscription-name> Azure 구독의 이름The name for your Azure subscription
    리소스 그룹Resource group <Azure-resource-group><Azure-resource-group> 관련 리소스를 구성하고 관리하는 데 사용되는 Azure 리소스 그룹의 이름.The name for the Azure resource group used to organize and manage related resources. 이 예제에서는 "LA-Tutorial-RG"를 사용합니다.This example uses "LA-Tutorial-RG".

    참고: 리소스 그룹은 특정 지역 내에 있습니다.Note: A resource group exists inside a specific region. 일부 지역에서 이 자습서의 항목을 사용할 수 없을 수도 있지만, 가능하면 동일한 지역을 사용해 보세요.Although the items in this tutorial might not be available in all regions, try to use the same region when possible.

    스토리지 계정 이름Storage account name <Azure-storage-account-name><Azure-storage-account-name> 스토리지 계정 이름은 3-24자여야 하고 소문자와 숫자만 포함할 수 있습니다.Your storage account name, which must have 3-24 characters and can contain only lowercase letters and numbers. 이 예제에서는 "attachmentstorageacct"를 사용합니다.This example uses "attachmentstorageacct".
    위치Location <Azure-region><Azure-region> 스토리지 계정에 대한 정보를 저장할 지역입니다.The region where to store information about your storage account. 이 예제에서는 “미국 서부”를 사용합니다.This example uses "West US".
    성능Performance StandardStandard 이 설정은 지원되는 데이터 형식 및 데이터를 저장하기 위한 미디어를 지정합니다.This setting specifies the data types supported and media for storing data. 스토리지 계정 유형을 참조하세요.See Types of storage accounts.
    계정 종류Account kind 범용 가상 컴퓨터General purpose 스토리지 계정 유형The storage account type
    복제Replication LRS(로컬 중복 스토리지)Locally redundant storage (LRS) 이 설정은 데이터가 복사, 저장, 관리 및 동기화되는 방식을 지정합니다.This setting specifies how your data is copied, stored, managed, and synchronized. LRS(로컬 중복 스토리지): Azure Storage에 대한 저렴한 데이터 중복성을 참조하세요.See Locally redundant storage (LRS): Low-cost data redundancy for Azure Storage.
    액세스 계층(기본값)Access tier (default) 현재 설정을 유지합니다.Keep the current setting.

    고급 탭에서 다음 설정을 선택합니다.On the Advanced tab, select this setting:

    설정Setting Value 설명Description
    보안 전송 필요Secure transfer required 사용 안 함Disabled 이 설정은 연결의 요청에 필요한 보안을 지정합니다.This setting specifies the security required for requests from connections. 보안 전송 필요를 참조하세요.See Require secure transfer.

    스토리지 계정을 만들려면 Azure PowerShell 또는 Azure CLI를 사용할 수도 있습니다.To create your storage account, you can also use Azure PowerShell or Azure CLI.

  3. 완료되면 검토 + 만들기를 선택합니다.When you're done, select Review + create.

  4. Azure가 스토리지 계정을 배포한 후에는 스토리지 계정을 찾아 스토리지 계정의 액세스 키를 가져옵니다.After Azure deploys your storage account, find your storage account, and get the storage account's access key:

    1. 스토리지 계정 메뉴의 설정 아래에서 액세스 키를 선택합니다.On your storage account menu, under Settings, select Access keys.

    2. 스토리지 계정 이름과 key1을 복사한 다음, 이러한 값을 안전한 곳에 저장합니다.Copy your storage account name and key1, and save those values somewhere safe.

      스토리지 계정 이름과 키를 복사 및 저장

    스토리지 계정의 액세스 키를 가져오려면 Azure PowerShell 또는 Azure CLI를 사용할 수도 있습니다.To get your storage account's access key, you can also use Azure PowerShell or Azure CLI.

  5. 이메일 첨부 파일에 대한 Blob Storage 컨테이너를 만듭니다.Create a blob storage container for your email attachments.

    1. 스토리지 계정 메뉴에서 개요를 선택합니다.On your storage account menu, select Overview. 개요 창에서 연결을 선택합니다.On the Overview pane, select Containers.

      Blob Storage 컨테이너 추가

    2. 컨테이너 페이지가 열리면 도구 모음에서 컨테이너를 선택합니다.After the Containers page opens, on the toolbar, select Container.

    3. 새 컨테이너에서 컨테이너 이름으로 attachments를 입력합니다.Under New container, enter attachments as your container name. 퍼블릭 액세스 수준에서 컨테이너(컨테이너와 Blob에 대한 익명 읽기 권한) > 확인을 선택합니다.Under Public access level, select Container (anonymous read access for containers and blobs) > OK.

      여기까지 마쳤으면 Azure Portal에서 스토리지 계정의 스토리지 컨테이너를 찾을 수 있습니다.When you're done, you can find your storage container in your storage account here in the Azure portal:

      완료된 스토리지 컨테이너

    스토리지 컨테이너를 만들려면 Azure PowerShell 또는 Azure CLI를 사용할 수도 있습니다.To create a storage container, you can also use Azure PowerShell or Azure CLI.

다음으로, Storage Explorer를 스토리지 계정에 연결합니다.Next, connect Storage Explorer to your storage account.

Storage Explorer 설정Set up Storage Explorer

이제 Storage Explorer를 스토리지 계정에 연결하여 논리 앱에서 첨부 파일을 Blob으로 스토리지 컨테이너에 올바르게 저장하는지 확인할 수 있습니다.Now, connect Storage Explorer to your storage account so you can confirm that your logic app can correctly save attachments as blobs in your storage container.

  1. Microsoft Azure Storage Explorer를 시작합니다.Launch Microsoft Azure Storage Explorer.

    Storage Explorer에서 스토리지 계정에 대한 연결을 묻는 메시지를 표시합니다.Storage Explorer prompts you for a connection to your storage account.

  2. Azure Storage에 연결 창에서 스토리지 계정 이름 및 키 사용 > 다음을 선택합니다.In the Connect to Azure Storage pane, select Use a storage account name and key > Next.

    Storage Explorer - 스토리지 계정에 연결

    메시지가 표시되지 않으면 Storage Explorer 도구 모음에서 계정 추가를 선택합니다.If no prompt appears, on the Storage Explorer toolbar, select Add an account.

  3. 표시 이름에 연결에 사용할 친숙한 이름을 입력합니다.Under Display name, provide a friendly name for your connection. 계정 이름 아래에서 스토리지 계정 이름을 제공합니다.Under Account name, provide your storage account name. 계정 키에서 이전에 저장한 액세스 키를 입력하고 다음을 선택합니다.Under Account key, provide the access key that you previously saved, and select Next.

  4. 연결 정보를 확인한 다음, 연결을 선택합니다.Confirm your connection information, and then select Connect.

    Storage Explorer에서 연결이 생성되고, 탐색기 창의 로컬 및 첨부 > 스토리지 계정 아래에 스토리지 계정이 표시됩니다.Storage Explorer creates the connection, and shows your storage account in the Explorer window under Local & Attached > Storage Accounts.

  5. 스토리지 계정에서 Blob Storage 컨테이너를 찾으려면 스토리지 계정(여기서는 attachmentstorageacct), Blob 컨테이너(attachments 컨테이너가 있음)를 차례로 확장합니다. 예를 들면 다음과 같습니다.To find your blob storage container, under Storage Accounts, expand your storage account, which is attachmentstorageacct here, and expand Blob Containers where you find the attachments container, for example:

    Storage Explorer - 스토리지 컨테이너 찾기

다음으로, 수신 이메일에서 HTML을 제거하는 Azure 함수를 만듭니다.Next, create an Azure function that removes HTML from incoming email.

HTML을 정리하는 함수 만들기Create function to clean HTML

이제 다음 단계에서 제공하는 코드 조각을 사용하여 수신 이메일에서 HTML을 제거하는 Azure 함수를 만듭니다.Now, use the code snippet provided by these steps to create an Azure function that removes HTML from each incoming email. 이렇게 하면 이메일 콘텐츠를 좀 더 깨끗하게 정리하고 보다 쉽게 처리할 수 있습니다.That way, the email content is cleaner and easier to process. 그런 후 논리 앱에서 이 함수를 호출할 수 있습니다.You can then call this function from your logic app.

  1. 함수를 만들기 전에 다음 설정을 사용하여 함수 앱을 만듭니다.Before you can create a function, create a function app with these settings:

    설정Setting Value 설명Description
    앱 이름App name <function-app-name><function-app-name> 함수 앱의 이름은 Azure에서 전역적으로 고유해야 합니다.Your function app's name, which is must be globally unique across Azure. 이 예에서는 “CleanTextFunctionApp”을 이미 사용하고 있으므로 다른 이름을 입력합니다(예: “MyCleanTextFunctionApp-<사용자-이름>”).This example already uses "CleanTextFunctionApp", so provide a different name, such as "MyCleanTextFunctionApp-<your-name>"
    구독Subscription <your-Azure-subscription-name><your-Azure-subscription-name> 이전에 사용한 동일한 Azure 구독The same Azure subscription that you previously used
    리소스 그룹Resource Group LA-Tutorial-RGLA-Tutorial-RG 이전에 사용한 동일한 Azure 리소스 그룹The same Azure resource group that you previously used
    OSOS <your-operating-system><your-operating-system> 자주 사용하는 함수 프로그래밍 언어를 지원하는 운영 체제를 선택합니다.Select the operating system that supports your favorite function programming language. 이 예에서는 Windows를 선택합니다.For this example, select Windows.
    호스팅 계획Hosting Plan 소비 계획Consumption Plan 이 설정은 계산 성능처럼 함수 앱을 실행하기 위한 리소스를 할당하고 크기를 조정하는 방법을 결정합니다.This setting determines how to allocate and scale resources, such as computing power, for running your function app. 호스팅 계획 비교를 참조하세요.See hosting plans comparison.
    위치Location 미국 서부West US 이전에 사용한 동일한 지역The same region that you previously used
    런타임 스택Runtime Stack 기본 설정 언어Preferred language 자주 사용하는 함수 프로그래밍 언어를 지원하는 런타임을 선택합니다.Select a runtime that supports your favorite function programming language. C# 및 F# 함수의 경우 .NET을 선택합니다.Select .NET for C# and F# functions.
    스토리지Storage cleantextfunctionstorageacctcleantextfunctionstorageacct 함수 앱에 대한 스토리지 계정을 만듭니다.Create a storage account for your function app. 소문자와 숫자만 사용할 수 있습니다.Use only lowercase letters and numbers.

    참고: 이 스토리지 계정은 함수 앱을 포함하며, 이메일 첨부 파일에 대해 이전에 만든 스토리지 계정과 다릅니다.Note: This storage account contains your function apps and differs from your previously created storage account for email attachments.

    Application InsightsApplication Insights 사용 안 함Disable Application Insights를 사용한 애플리케이션 모니터링을 켭니다. 하지만 이 자습서에서는 사용 안 함 > 적용을 선택합니다.Turns on application monitoring with Application Insights, but for this tutorial, select Disable > Apply.

    배포 후 함수 앱이 자동으로 열리지 않으면 Azure Portal 검색 상자에서 함수 앱을 찾아 선택합니다.If your function app doesn't automatically open after deployment, in the Azure portal search box, find and select Function App. 함수 앱에서 함수 앱을 선택합니다.Under Function App, select your function app.

    함수 앱 선택

    그렇지 않으면 Azure에서 다음과 같이 함수 앱을 자동으로 엽니다.Otherwise, Azure automatically opens your function app as shown here:

    생성된 함수 앱

    함수 앱을 만들려면 Azure CLI 또는 PowerShell 및 Resource Manager 템플릿을 사용할 수도 있습니다.To create a function app, you can also use Azure CLI, or PowerShell and Resource Manager templates.

  2. 함수 앱 목록에서 함수 앱을 확장합니다(아직 확장되지 않은 경우).In the Function Apps list, expand your function app, if not already expanded. 함수 앱에서 함수를 선택합니다.Under your function app, select Functions. 함수 도구 모음에서 새 함수를 선택합니다.On the functions toolbar, select New function.

    새 함수 만들기

  3. 아래 템플릿 선택 또는 빠른 시작으로 이동에서 HTTP 트리거 템플릿을 선택합니다.Under Choose a template below or go to the quickstart, select the HTTP trigger template.

    HTTP 트리거 템플릿 선택

    Azure는 HTTP 트리거 함수에 대한 언어별 템플릿을 사용하여 함수를 만듭니다.Azure creates a function using a language-specific template for an HTTP triggered function.

  4. 새 함수 창의 이름 아래에서 RemoveHTMLFunction를 입력합니다.In the New Function pane, under Name, enter RemoveHTMLFunction. 권한 부여 수준함수로 유지하고 만들기를 선택합니다.Keep Authorization level set to Function, and select Create.

    함수 이름 지정

  5. 편집기가 열리면 템플릿 코드를 이 샘플 코드로 바꿉니다. 이 코드는 HTML을 제거하고 호출자에 결과를 반환합니다.After the editor opens, replace the template code with this sample code, which removes the HTML and returns results to the caller:

    #r "Newtonsoft.Json"
    
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    using System.Text.RegularExpressions;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log) {
    
       log.LogInformation("HttpWebhook triggered");
    
       // Parse query parameter
       string emailBodyContent = await new StreamReader(req.Body).ReadToEndAsync();
    
       // Replace HTML with other characters
       string updatedBody = Regex.Replace(emailBodyContent, "<.*?>", string.Empty);
       updatedBody = updatedBody.Replace("\\r\\n", " ");
       updatedBody = updatedBody.Replace(@"&nbsp;", " ");
    
       // Return cleaned text
       return (ActionResult)new OkObjectResult(new { updatedBody });
    }
    
  6. 완료되면 저장을 선택합니다.When you're done, select Save. 함수를 테스트하려면 편집기의 오른쪽 가장자리에 있는 화살표( < ) 아이콘 아래에서 테스트를 선택합니다.To test your function, at the editor's right edge, under the arrow (<) icon, select Test.

    "테스트" 창을 엽니다.

  7. 테스트 창의 요청 본문 아래에서 다음 줄을 입력하고 실행을 선택합니다.In the Test pane, under Request body, enter this line, and select Run.

    {"name": "<p><p>Testing my function</br></p></p>"}

    함수 테스트

    출력 창에 함수의 결과가 표시됩니다.The Output window shows the function's result:

    {"updatedBody":"{\"name\": \"Testing my function\"}"}
    

함수가 작동하는 것을 확인했으면 논리 앱을 만듭니다.After checking that your function works, create your logic app. 이 자습서에서는 이메일에서 HTML을 제거하는 함수를 만드는 방법을 보여 주지만, Logic Apps는 HTML-Text 커넥터도 제공합니다.Although this tutorial shows how to create a function that removes HTML from emails, Logic Apps also provides an HTML to Text connector.

논리 앱 만들기Create your logic app

  1. Azure 최상위 검색 상자에 logic apps를 입력하고, Logic Apps를 선택합니다.In the Azure top-level search box, enter logic apps, and select Logic Apps.

    "Logic Apps" 찾기 및 선택

  2. Logic Apps 창에서 추가를 선택합니다.On the Logic Apps pane, select Add.

    새 논리 앱 추가

  3. 여기에 표시된 것처럼 논리 앱 창에서 논리 앱에 대한 정보를 제공합니다.On the Logic App pane, provide details about your logic app as shown here. 완료되면 검토 + 만들기를 선택합니다.After you're done, select Review + create.

    논리 앱 정보 제공

    설정Setting Value 설명Description
    구독Subscription <your-Azure-subscription-name><your-Azure-subscription-name> 이전에 사용한 동일한 Azure 구독The same Azure subscription that you previously used
    리소스 그룹Resource group LA-Tutorial-RGLA-Tutorial-RG 이전에 사용한 동일한 Azure 리소스 그룹The same Azure resource group that you previously used
    논리 앱 이름Logic App name LA-ProcessAttachmentLA-ProcessAttachment 논리 앱의 이름The name for your logic app
    위치 선택Select the location 미국 서부West US 이전에 사용한 동일한 지역The same region that you previously used
    Log AnalyticsLog Analytics 꺼짐Off 이 자습서에서는 해제 설정을 선택합니다.For this tutorial, select the Off setting.
  4. Azure가 앱을 배포한 후 Azure 도구 모음에서 알림 아이콘을 선택하고 리소스로 이동을 선택합니다.After Azure deploys your app, on the Azure toolbar, select the notifications icon, and select Go to resource.

    Azure 알림 목록에서 “리소스로 이동”을 선택합니다.

  5. Logic Apps 디자이너가 열리고 일반적인 논리 앱 패턴에 대한 소개 비디오 및 템플릿이 포함된 페이지가 표시됩니다.After the Logic Apps Designer opens and shows a page with an introduction video and templates for common logic app patterns. 템플릿 아래에서 빈 논리 앱을 선택합니다.Under Templates, select Blank Logic App.

    빈 논리 앱 템플릿 선택

다음으로, 첨부 파일이 있는 수신 이메일을 수신 대기하는 트리거를 추가합니다.Next, add a trigger that listens for incoming emails that have attachments. 모든 논리 앱은 특정 이벤트가 발생하거나 새 데이터가 특정 조건을 충족할 때 실행되는 트리거를 통해 시작되어야 합니다.Every logic app must start with a trigger, which fires when a specific event happens or when new data meets a specific condition. 자세한 내용은 첫 번째 논리 앱 만들기를 참조하세요.For more information, see Create your first logic app.

수신 이메일 모니터링Monitor incoming email

  1. 디자이너의 검색 상자에서 필터로 when new email arrives를 입력합니다.On the designer in the search box, enter when new email arrives as your filter. 이메일 공급자에 대해 새 이메일이 도착하는 경우 - <your-email-provider> 트리거를 선택합니다.Select this trigger for your email provider: When a new email arrives - <your-email-provider>

    예를 들면 다음과 같습니다.For example:

    이메일 공급자에 대해 "새 이메일이 도착하는 경우" 트리거 선택

    • Azure 회사 또는 학교 계정에서 Office 365 Outlook을 선택합니다.For Azure work or school accounts, select Office 365 Outlook.

    • Microsoft 개인 계정에서 Outlook.com을 선택합니다.For personal Microsoft accounts, select Outlook.com.

  2. 자격 증명을 요청하는 메시지가 표시되면 Logic Apps에서 이메일 계정에 연결할 수 있도록 이메일 계정에 로그인합니다.If you're asked for credentials, sign in to your email account so Logic Apps can connect to your email account.

  3. 이제 트리거에서 새 이메일을 필터링하는 데 사용하는 조건을 입력합니다.Now provide the criteria the trigger uses to filter new email.

    1. 이메일 확인을 위해 아래에서 설명하는 설정을 지정합니다.Specify the settings described below for checking emails.

      이메일 확인에 사용할 폴더, 간격 및 빈도 지정

      설정Setting Value 설명Description
      폴더Folder 받은 편지함Inbox 확인할 이메일 폴더The email folder to check
      첨부 파일 있음Has Attachment Yes 첨부 파일이 있는 이메일만 받습니다.Get only emails with attachments.

      참고: 이 트리거는 계정에서 이메일을 제거하지 않으며, 새 메시지만 확인하고 제목 필터와 일치하는 이메일만 처리합니다.Note: The trigger doesn't remove any emails from your account, checking only new messages and processing only emails that match the subject filter.

      첨부 파일 포함Include Attachments Yes 첨부 파일을 확인하는 데서 그치지 않고 첨부 파일을 워크플로의 입력으로 가져옵니다.Get the attachments as input for your workflow, rather than just check for attachments.
      간격Interval 11 검사 간에 대기하는 간격의 수The number of intervals to wait between checks
      빈도Frequency MinuteMinute 검사 간 간격의 시간 단위The unit of time for each interval between checks
    2. 새 매개 변수 추가 목록에서 제목 필터를 선택합니다.From the Add new parameter list, select Subject Filter.

    3. 제목 필터 상자가 작업에 나타나면 여기에 나열된 제목을 지정합니다.After the Subject Filter box appears in the action, specify the subject as listed here:

      설정Setting Value 설명Description
      제목 필터Subject Filter Business Analyst 2 #423501 이메일 제목에서 찾을 텍스트The text to find in the email subject
  4. 지금은 트리거 세부 정보를 숨기려면 트리거의 제목 표시줄 내부를 클릭합니다.To hide the trigger's details for now, click inside the trigger's title bar.

    세부 정보를 숨기려면 셰이프 축소

  5. 논리 앱을 저장합니다.Save your logic app. 디자이너 도구 모음에서 저장을 선택합니다.On the designer toolbar, select Save.

    이제 논리 앱이 라이브 상태지만 이메일 확인 외에는 아무 것도 수행하지 않습니다.Your logic app is now live but doesn't do anything other check your emails. 다음으로, 워크플로를 계속하는 조건을 지정하는 조건을 추가합니다.Next, add a condition that specifies criteria to continue workflow.

첨부 파일 확인Check for attachments

이제 첨부 파일이 있는 이메일만 선택하는 조건을 추가합니다.Now add a condition that selects only emails that have attachments.

  1. 트리거 아래에서 새 단계를 선택합니다.Under the trigger, select New step.

    "새 단계"

  2. 작업 선택 아래의 검색 상자에 condition을 입력합니다.Under Choose an action, in the search box, enter condition. 현재 선택한 작업: ConditionSelect this action: Condition

    "조건" 선택

    1. 보다 구체적인 설명이 포함되도록 조건 이름을 바꿉니다.Rename the condition with a better description. 조건의 제목 표시줄에서 줄임표( ... ) 단추 > 이름 바꾸기를 선택합니다.On the condition's title bar, select the ellipses (...) button > Rename.

      조건 이름 바꾸기

    2. If email has attachments and key subject phrase 설명이 포함되도록 조건 이름을 바꿉니다.Rename your condition with this description: If email has attachments and key subject phrase

  3. 첨부 파일이 있는 이메일을 확인하는 조건을 만듭니다.Create a condition that checks for emails that have attachments.

    1. And 아래의 첫 번째 행에서 왼쪽 상자 내부를 클릭합니다.On the first row under And, click inside the left box. 표시되는 동적 콘텐츠 목록에서 첨부 파일 있음 속성을 선택합니다.From the dynamic content list that appears, select the Has Attachment property.

      조건 작성

    2. 중간 상자에서 이(가) 다음과 같은 경우 연산자를 유지합니다.In the middle box, keep the operator is equal to.

    3. 오른쪽 상자에서 트리거의 첨부 파일 있음 속성 값과 비교할 값으로 True를 입력합니다.In the right box, enter true as the value to compare with the Has Attachment property value from the trigger.

      조건 작성

      두 값이 같으면 이메일에 첨부 파일이 하나 이상 있는 것이며, 조건을 통과하고, 워크플로가 계속됩니다.If both values are equal, the email has at least one attachment, the condition passes, and the workflow continues.

    코드 편집기 창에서 볼 수 있는 기본 논리 앱 정의에서 이 조건은 다음 예제와 같습니다.In your underlying logic app definition, which you can view in the code editor window, this condition looks like this example:

    "Condition": {
       "actions": { <actions-to-run-when-condition-passes> },
       "expression": {
          "and": [ {
             "equals": [
                "@triggerBody()?['HasAttachment']",
                  "true"
             ]
          } ]
       },
       "runAfter": {},
       "type": "If"
    }
    
  4. 논리 앱을 저장합니다.Save your logic app. 디자이너 도구 모음에서 저장을 선택합니다.On the designer toolbar, select Save.

조건 테스트Test your condition

이제 조건이 올바르게 작동하는지 테스트합니다.Now, test whether the condition works correctly:

  1. 아직 논리 앱을 실행하고 있지 않으면 디자이너 도구 모음에서 실행을 선택합니다.If your logic app isn't running already, select Run on the designer toolbar.

    이 단계에서는 지정된 간격이 경과할 때까지 기다릴 필요 없이 논리 앱을 수동으로 시작합니다.This step manually starts your logic app without having to wait until your specified interval passes. 하지만 받은 편지함에 테스트 이메일이 도착할 때까지는 아무 일도 발생하지 않습니다.However, nothing happens until the test email arrives in your inbox.

  2. 다음 기준을 충족하는 이메일을 자신에게 보냅니다.Send yourself an email that meets this criteria:

    • 트리거의 제목 필터에서 지정한 텍스트(Business Analyst 2 #423501)가 이메일의 제목에 포함되어 있습니다.Your email's subject has the text that you specified in the trigger's Subject filter: Business Analyst 2 #423501

    • 이메일에 첨부 파일이 하나 있습니다.Your email has one attachment. 이제 빈 텍스트 파일을 하나 만들고 해당 파일을 이메일에 첨부합니다.For now, just create one empty text file and attach that file to your email.

    이메일이 도착하면 논리 앱에서는 첨부 파일 및 지정된 제목 텍스트를 확인합니다.When the email arrives, your logic app checks for attachments and the specified subject text. 조건을 통과하면 트리거가 실행되고 Logic Apps 엔진이 논리 앱 인스턴스를 만들고 워크플로를 시작합니다.If the condition passes, the trigger fires and causes the Logic Apps engine to create a logic app instance and start the workflow.

  3. 트리거가 실행되고 논리 앱이 성공적으로 실행되었는지 확인하려면 논리 앱 메뉴에서 개요를 선택합니다.To check that the trigger fired and the logic app ran successfully, on the logic app menu, select Overview.

    트리거 및 실행 기록 확인

    트리거가 성공적으로 실행되었지만 논리 앱이 트리거되지 않았거나 실행되지 않은 경우 논리 앱 문제 해결을 참조하세요.If your logic app didn't trigger or run despite a successful trigger, see Troubleshoot your logic app.

다음으로, true인 경우 분기에 대해 수행할 작업을 정의합니다.Next, define the actions to take for the If true branch. 첨부 파일과 함께 이메일을 저장하려면 이메일 본문에서 HTML을 제거한 후 이메일 및 첨부 파일용 스토리지 컨테이너에 BLOB을 만듭니다.To save the email along with any attachments, remove any HTML from the email body, then create blobs in the storage container for the email and attachments.

참고

이메일에 첨부 파일이 없는 경우에는 논리 앱이 false인 경우 분기에 대해 아무 것도 할 필요가 없습니다.Your logic app doesn't have to do anything for the If false branch when an email doesn't have attachments. 이 자습서를 마친 후 추가 연습으로 false인 경우 분기에 대해 수행할 적절한 작업을 추가할 수 있습니다.As a bonus exercise after you finish this tutorial, you can add any appropriate action that you want to take for the If false branch.

RemoveHTMLFunction 호출Call RemoveHTMLFunction

이 단계에서는 이전에 만든 Azure 함수를 논리 앱에 추가하고, 이메일 트리거의 이메일 본문 내용을 이 함수로 전달합니다.This step adds your previously created Azure function to your logic app and passes the email body content from email trigger to your function.

  1. 논리 앱 메뉴에서 논리 앱 디자이너를 선택합니다.On the logic app menu, select Logic App Designer. true인 경우 분기에서 작업 추가를 선택합니다.In the If true branch, select Add an action.

    "True인 경우" 내에서 작업 추가

  2. 검색 상자에서 "azure 함수"를 찾아 Azure 함수 선택 - Azure Functions 작업을 선택합니다.In the search box, find "azure functions", and select this action: Choose an Azure function - Azure Functions

    "Azure 함수 선택" 작업 선택

  3. 이전에 만든 함수 앱(이 예에서는 CleanTextFunctionApp)을 선택합니다.Select your previously created function app, which is CleanTextFunctionApp in this example:

    Azure 함수 앱 선택

  4. 이제 RemoveHTMLFunction 함수를 선택합니다.Now select your function: RemoveHTMLFunction

    Azure 함수 선택

  5. Call RemoveHTMLFunction to clean email body 설명을 사용하여 함수 셰이프 이름을 바꿉니다.Rename your function shape with this description: Call RemoveHTMLFunction to clean email body

  6. 이제 함수에서 처리할 입력을 지정합니다.Now specify the input for your function to process.

    1. 요청 본문 아래에서 후행 공백이 있는 다음 텍스트를 입력합니다.Under Request Body, enter this text with a trailing space:

      { "emailBody":

      다음 단계에서 이 입력을 처리하는 동안 입력이 JSON 형식으로 올바르게 지정될 때까지 잘못된 JSON에 대한 오류가 표시됩니다.While you work on this input in the next steps, an error about invalid JSON appears until your input is correctly formatted as JSON. 앞에서 이 함수를 테스트할 때 이 함수에 지정된 입력에서 JSON(JavaScript Object Notation)을 사용했습니다.When you previously tested this function, the input specified for this function used JavaScript Object Notation (JSON). 따라서 요청 본문에서도 동일한 형식을 사용해야 합니다.So, the request body must also use the same format.

      또한 커서가 요청 본문 상자 안에 있으면 이전 작업에서 사용할 수 있는 속성 값을 선택할 수 있도록 동적 콘텐츠 목록이 표시됩니다.Also, when your cursor is inside the Request body box, the dynamic content list appears so you can select property values available from previous actions.

    2. 동적 콘텐츠 목록의 새 이메일이 도착하는 경우 아래에서 본문 속성을 선택합니다.From the dynamic content list, under When a new email arrives, select the Body property. 이 속성 뒤에는 닫는 중괄호(})를 추가해야 합니다.After this property, remember to add the closing curly brace: }

      함수로 전달할 요청 본문 지정

    완료되면 함수에 대한 입력이 다음 예제와 같습니다.When you're done, the input to your function looks like this example:

    함수에 전달할 요청 본문을 완성했습니다.

  7. 논리 앱을 저장합니다.Save your logic app.

다음으로, 이메일 본문을 저장할 수 있도록 스토리지 컨테이너에 Blob을 만드는 작업을 추가합니다.Next, add an action that creates a blob in your storage container so you can save the email body.

이메일 본문용 BLOB 만들기Create blob for email body

  1. true인 경우 블록의 Azure 함수 아래에 작업 추가를 선택합니다.In the If true block and under your Azure function, select Add an action.

  2. 검색 상자에서 필터로 create blob을 입력하고 다음 작업을 선택합니다. Blob 만들기In the search box, enter create blob as your filter, and select this action: Create blob

    이메일 본문용 BLOB을 만드는 작업 추가

  3. 아래에 나와 있는 대로 이러한 설정을 사용하여 스토리지 계정에 대한 연결을 만듭니다.Create a connection to your storage account with these settings as shown and described here. 완료되면 만들기를 선택합니다.When you're done, select Create.

    스토리지 계정에 연결

    설정Setting Value DescriptionDescription
    연결 이름Connection Name AttachmentStorageConnectionAttachmentStorageConnection 연결에 대해 설명하는 이름A descriptive name for the connection
    Storage 계정Storage Account attachmentstorageacctattachmentstorageacct 앞에서 첨부 파일 저장용으로 만든 스토리지 계정의 이름The name for the storage account that you previously created for saving attachments
  4. 설명이 포함되도록BLOB 만들기Create blob for email body 작업 이름을 바꿉니다.Rename the Create blob action with this description: Create blob for email body

  5. Blob 만들기 작업에서 이 정보를 입력하고, Blob을 만들기 위해 아래에 나와 있는 대로 이러한 필드를 선택합니다.In the Create blob action, provide this information, and select these fields to create the blob as shown and described:

    이메일 본문에 대한 BLOB 정보 제공

    설정Setting Value 설명Description
    폴더 경로Folder path /attachments/attachments 앞에서 만든 컨테이너의 경로 및 이름입니다.The path and name for the container that you previously created. 이 예제에서는 폴더 아이콘을 클릭한 다음, "/attachments" 컨테이너를 선택합니다.For this example, click the folder icon, and then select the "/attachments" container.
    Blob 이름Blob name 보내는 사람 필드From field 이 예제에서는 보낸 사람의 이름을 Blob의 이름으로 사용합니다.For this example, use the sender's name as the blob's name. 이 상자 내부를 클릭하여 동적 콘텐츠 목록을 표시한 다음, 새 이메일이 도착하는 경우 작업 아래에서 보내는 사람 필드를 선택합니다.Click inside this box so that the dynamic content list appears, and then select the From field under the When a new email arrives action.
    BLOB 콘텐츠Blob content 콘텐츠 필드Content field 이 예제에서는 HTML이 없는 이메일 본문을 Blob 콘텐츠로 사용합니다.For this example, use the HTML-free email body as the blob content. 이 상자 내부를 클릭하여 동적 콘텐츠 목록을 표시한 다음, RemoveHTMLFunction을 호출하여 이메일 본문 정리 아래에서 본문을 선택합니다.Click inside this box so that the dynamic content list appears, and then select Body under the Call RemoveHTMLFunction to clean email body action.

    완료되면 작업은 다음 예제와 같습니다.When you're done, the action looks like this example:

    "Blob 만들기" 작업 완료

  6. 논리 앱을 저장합니다.Save your logic app.

첨부 파일 처리 확인Check attachment handling

이제 논리 앱이 사용자가 지정한 방식으로 이메일을 처리하는지 테스트합니다.Now test whether your logic app handles emails the way that you specified:

  1. 아직 논리 앱을 실행하고 있지 않으면 디자이너 도구 모음에서 실행을 선택합니다.If your logic app isn't running already, select Run on the designer toolbar.

  2. 다음 기준을 충족하는 이메일을 자신에게 보냅니다.Send yourself an email that meets this criteria:

    • 트리거의 제목 필터에서 지정한 텍스트(Business Analyst 2 #423501)가 이메일의 제목에 포함되어 있습니다.Your email's subject has the text that you specified in the trigger's Subject filter: Business Analyst 2 #423501

    • 이메일에 첨부 파일이 하나 이상 있습니다.Your email has at least one attachment. 이제 빈 텍스트 파일을 하나 만들고 해당 파일을 이메일에 첨부합니다.For now, just create one empty text file, and attach that file to your email.

    • 이메일 본문에 테스트 콘텐츠가 포함되어 있으며 예를 들면 다음과 같습니다. Testing my logic appYour email has some test content in the body, for example: Testing my logic app

    트리거가 성공적으로 실행되었지만 논리 앱이 트리거되지 않았거나 실행되지 않은 경우 논리 앱 문제 해결을 참조하세요.If your logic app didn't trigger or run despite a successful trigger, see Troubleshoot your logic app.

  3. 논리 앱이 이메일을 올바른 스토리지 컨테이너에 저장했는지 확인합니다.Check that your logic app saved the email to the correct storage container.

    1. Storage Explorer에서 로컬 및 첨부 > 스토리지 계정 > attachmentstorageacct(키) > Blob 컨테이너 > 첨부 파일을 확장합니다.In Storage Explorer, expand Local & Attached > Storage Accounts > attachmentstorageacct (Key) > Blob Containers > attachments.

    2. 이메일의 첨부 파일 컨테이너를 선택합니다.Check the attachments container for the email.

      아직 논리 앱에서 처리한 첨부 파일이 없기 때문에 지금은 컨테이너에 이메일만 표시됩니다.At this point, only the email appears in the container because the logic app doesn't process the attachments yet.

      저장된 이메일의 Storage Explorer 확인

    3. 작업을 마쳤으면 Storage Explorer에서 이메일을 삭제합니다.When you're done, delete the email in Storage Explorer.

  4. 필요에 따라false인 경우 분기(지금은 아무 작업도 수행하지 않음)를 테스트하려면 조건을 만족하지 않는 이메일을 보내면 됩니다.Optionally, to test the If false branch, which does nothing at this time, you can send an email that doesn't meet the criteria.

다음으로, 모든 이메일 첨부 파일을 처리할 루프를 추가합니다.Next, add a loop to process all the email attachments.

첨부 파일 처리Process attachments

이메일의 각 첨부 파일을 처리하려면 논리 앱의 워크플로에 For each 루프를 추가합니다.To process each attachment in the email, add a For each loop to your logic app's workflow.

  1. 이메일 본문용 Blob 만들기 셰이프 아래에서 작업 추가를 선택합니다.Under the Create blob for email body shape, select Add an action.

    "for each" 루프 추가

  2. 작업 선택 아래의 검색 상자에 for each를 필터로 입력하고, 다음 작업을 선택합니다. For eachUnder Choose an action, in the search box, enter for each as your filter, and select this action: For each

    "For each" 선택

  3. For each email attachment 설명이 포함되도록 루프 이름을 바꿉니다.Rename your loop with this description: For each email attachment

  4. 이제 루프에서 처리할 데이터를 지정합니다.Now specify the data for the loop to process. 이전 단계에서 출력 선택 상자 내부를 클릭하여 동적 콘텐츠 목록을 연 다음, 첨부 파일을 선택합니다.Click inside the Select an output from previous steps box so that the dynamic content list opens, and then select Attachments.

    "첨부 파일" 선택

    첨부 파일 필드는 이메일에 포함된 모든 첨부 파일이 있는 배열을 전달합니다.The Attachments field passes in an array that contains all the attachments included with an email. For each 루프는 배열을 통해 전달되는 항목마다 작업을 반복합니다.The For each loop repeats actions on each item that's passed in with the array.

  5. 논리 앱을 저장합니다.Save your logic app.

다음으로, 각 첨부 파일을 첨부 파일 스토리지 컨테이너에 BLOB으로 저장하는 작업을 추가합니다.Next, add the action that saves each attachment as a blob in your attachments storage container.

For each 첨부 파일용 Blob 만들기Create blob for each attachment

  1. 검색된 각 첨부 파일에서 수행할 작업을 지정할 수 있도록 각 이메일 첨부 파일 루프에서 작업 추가를 선택합니다.In the For each email attachment loop, select Add an action so you can specify the task to perform on each found attachment.

    루프에 작업 추가

  2. 검색 상자에 필터로 create blob을 입력한 다음, 다음 작업을 선택합니다. Blob 만들기In the search box, enter create blob as your filter, and then select this action: Create blob

    BLOB을 만드는 작업 추가

  3. 설명이 포함되도록BLOB 2 만들기Create blob for each email attachment 작업 이름을 바꿉니다.Rename the Create blob 2 action with this description: Create blob for each email attachment

  4. For each 이메일 첨부파일용 Blob 만들기 작업에서 이 정보를 제공하고, 아래에 나와 있는 대로 만들려는 각 Blob에 대한 속성을 선택합니다.In the Create blob for each email attachment action, provide this information, and select the properties for each blob you want to create as shown and described:

    Blob 정보 제공

    설정Setting Value 설명Description
    폴더 경로Folder path /attachments/attachments 앞에서 만든 컨테이너의 경로 및 이름입니다.The path and name for the container that you previously created. 이 예제에서는 폴더 아이콘을 클릭한 다음, "/attachments" 컨테이너를 선택합니다.For this example, click the folder icon, and then select the "/attachments" container.
    Blob 이름Blob name 이름 필드Name field 이 예제에서는 첨부 파일의 이름을 Blob의 이름으로 사용합니다.For this example, use the attachment's name as the blob's name. 이 상자 내부를 클릭하여 동적 콘텐츠 목록을 표시한 다음, 새 이메일이 도착하는 경우 작업 아래에서 이름 필드를 선택합니다.Click inside this box so that the dynamic content list appears, and then select the Name field under the When a new email arrives action.
    BLOB 콘텐츠Blob content 콘텐츠 필드Content field 이 예제에서는 콘텐츠 필드를 Blob 콘텐츠로 사용합니다.For this example, use the Content field as the blob content. 이 상자 내부를 클릭하여 동적 콘텐츠 목록을 표시한 다음, 새 이메일이 도착하는 경우 작업 아래에서 콘텐츠 필드를 선택합니다.Click inside this box so that the dynamic content list appears, and then select Content under the When a new email arrives action.

    완료되면 작업은 다음 예제와 같습니다.When you're done, the action looks like this example:

    "Blob 만들기" 작업 완료

  5. 논리 앱을 저장합니다.Save your logic app.

첨부 파일 처리 확인Check attachment handling

다음으로, 논리 앱이 사용자가 지정한 방식으로 첨부 파일을 처리하는지 테스트합니다.Next, test whether your logic app handles the attachments the way that you specified:

  1. 아직 논리 앱을 실행하고 있지 않으면 디자이너 도구 모음에서 실행을 선택합니다.If your logic app isn't running already, select Run on the designer toolbar.

  2. 다음 기준을 충족하는 이메일을 자신에게 보냅니다.Send yourself an email that meets this criteria:

    • 트리거의 제목 필터 속성에서 지정한 텍스트(Business Analyst 2 #423501)가 이메일 제목에 포함되어 있습니다.Your email's subject has the text that you specified in the trigger's Subject filter property: Business Analyst 2 #423501

    • 이메일에 첨부 파일이 두 개 이상 있습니다.Your email has at least two attachments. 이제 빈 텍스트 파일을 두 개 만들고 해당 파일을 이메일에 첨부합니다.For now, just create two empty text files and attach those files to your email.

    트리거가 성공적으로 실행되었지만 논리 앱이 트리거되지 않았거나 실행되지 않은 경우 논리 앱 문제 해결을 참조하세요.If your logic app didn't trigger or run despite a successful trigger, see Troubleshoot your logic app.

  3. 논리 앱이 이메일과 첨부 파일을 올바른 스토리지 컨테이너에 저장했는지 확인합니다.Check that your logic app saved the email and attachments to the correct storage container.

    1. Storage Explorer에서 로컬 및 첨부 > 스토리지 계정 > attachmentstorageacct(키) > Blob 컨테이너 > 첨부 파일을 확장합니다.In Storage Explorer, expand Local & Attached > Storage Accounts > attachmentstorageacct (Key) > Blob Containers > attachments.

    2. 이메일 및 첨부 파일용 첨부 파일 컨테이너를 확인합니다.Check the attachments container for both the email and the attachments.

      저장된 이메일 및 첨부 파일 확인

    3. 작업을 마쳤으면 Storage Explorer에서 이메일 및 첨부 파일을 삭제합니다.When you're done, delete the email and attachments in Storage Explorer.

다음으로, 논리 앱에서 첨부 파일을 검토하라는 이메일을 보낼 수 있도록 작업을 추가합니다.Next, add an action so that your logic app sends email to review the attachments.

이메일 알림 보내기Send email notifications

  1. true인 경우 분기의 For each 이메일 첨부 파일 루프 아래에서 작업 추가를 선택합니다.In the If true branch, under the For each email attachment loop, select Add an action.

    "for each" 루프에서 작업 추가

  2. 검색 상자에서 필터로 send email을 입력한 다음, 이메일 공급자에 대해 “이메일 보내기” 작업을 선택합니다.In the search box, enter send email as your filter, and then select the "send email" action for your email provider.

    작업 목록을 특정 서비스로 필터링하려면 먼저 커넥터를 선택할 수 있습니다.To filter the actions list to a specific service, you can select the connector first.

    이메일 공급자에 대해 "이메일 보내기" 작업 선택

    • Azure 회사 또는 학교 계정에서 Office 365 Outlook을 선택합니다.For Azure work or school accounts, select Office 365 Outlook.

    • Microsoft 개인 계정에서 Outlook.com을 선택합니다.For personal Microsoft accounts, select Outlook.com.

  3. 자격 증명을 입력하라는 메시지가 나타나면 Logic Apps가 이메일 계정에 대한 연결을 만들 수 있도록 이메일 계정에 로그인합니다.If you're asked for credentials, sign in to your email account so that Logic Apps creates a connection to your email account.

  4. Send email for review 설명이 포함되도록 이메일 보내기 작업 이름을 바꿉니다.Rename the Send an email action with this description: Send email for review

  5. 이 작업에 대한 정보를 입력하고, 아래에 나와 있는 대로 이메일에 포함할 필드를 선택합니다.Provide the information for this action and select the fields you want to include in the email as shown and described. 편집 상자에서 빈 줄을 추가하려면 Shift + Enter 키를 누릅니다.To add blank lines in an edit box, press Shift + Enter.

    이메일 알림 보내기

    동적 콘텐츠 목록에서 필요한 필드를 찾을 수 없는 경우 새 이메일이 도착하는 경우 옆에 있는 자세히 보기를 선택합니다.If you can't find an expected field in the dynamic content list, select See more next to When a new email arrives.

    설정Setting Value 메모Notes
    수행할 작업To <recipient-email-address><recipient-email-address> 자신의 이메일 주소를 사용하여 테스트할 수 있습니다.For testing purposes, you can use your own email address.
    SubjectSubject ASAP - Review applicant for position: 제목ASAP - Review applicant for position: Subject 포함하려는 이메일 제목입니다.The email subject that you want to include. 이 상자 내부를 클릭하고, 예제 텍스트를 입력한 다음, 동적 콘텐츠 목록의 새 이메일이 도착하는 경우 아래에서 제목 필드를 선택합니다.Click inside this box, enter the example text, and from the dynamic content list, select the Subject field under When a new email arrives.
    본문Body Please review new applicant:

    Applicant name: 보낸 사람Applicant name: From

    Application file location: 경로Application file location: Path

    Application email content: 본문Application email content: Body

    이메일의 본문 콘텐츠입니다.The email's body content. 이 상자 내부를 클릭하고, 예제 텍스트를 입력한 다음, 동적 콘텐츠 목록에서 다음 필드를 선택합니다.Click inside this box, enter the example text, and from the dynamic content list, select these fields:

    - 새 이메일 도착하는 경우 아래의 보내는 사람 필드- The From field under When a new email arrives
    - 이메일 본문용 BLOB 만들기 아래의 경로 필드- The Path field under Create blob for email body
    - RemoveHTMLFunction을 호출하여 이메일 본문 지우기 아래의 본문 필드- The Body field under Call RemoveHTMLFunction to clean email body

    참고

    첨부 파일이 포함된 배열인 콘텐츠 필드와 같은 배열이 있는 필드를 선택하면, 디자이너에서 해당 필드를 참조하는 작업 주위에 "For each" 루프를 자동으로 추가합니다.If you select a field that contains an array, such as the Content field, which is an array that contains attachments, the designer automatically adds a "For each" loop around the action that references that field. 그렇게 하면 논리 앱이 각 배열 항목에서 해당 작업을 수행할 수 있습니다.That way, your logic app can perform that action on each array item. 루프를 제거하려면 배열에 대한 필드를 제거하고, 참조하는 작업을 루프 외부로 이동하고, 루프의 제목 표시줄에서 줄임표( ... )를 선택한 후, 삭제를 선택합니다.To remove the loop, remove the field for the array, move the referencing action to outside the loop, select the ellipses (...) on the loop's title bar, and select Delete.

  6. 논리 앱을 저장합니다.Save your logic app.

이제 다음 예제와 같이 논리 앱을 테스트합니다.Now, test your logic app, which now looks like this example:

완료된 논리 앱

논리 앱 실행Run your logic app

  1. 다음 기준을 충족하는 이메일을 자신에게 보냅니다.Send yourself an email that meets this criteria:

    • 트리거의 제목 필터 속성에서 지정한 텍스트(Business Analyst 2 #423501)가 이메일 제목에 포함되어 있습니다.Your email's subject has the text that you specified in the trigger's Subject filter property: Business Analyst 2 #423501

    • 이메일에 첨부 파일이 하나 이상 있습니다.Your email has one or more attachments. 이전 단계에서 만든 빈 텍스트 파일을 다시 사용할 수 있습니다.You can reuse an empty text file from your previous test. 보다 현실적인 시나리오를 원한다면 이력서 파일을 첨부합니다.For a more realistic scenario, attach a resume file.

    • 이메일 본문에 다음 텍스트가 있으며, 이 텍스트를 복사하여 붙여넣을 수 있습니다.The email body has this text, which you can copy and paste:

      
      Name: Jamal Hartnett
      
      Street address: 12345 Anywhere Road
      
      City: Any Town
      
      State or Country: Any State
      
      Postal code: 00000
      
      Email address: jamhartnett@outlook.com
      
      Phone number: 000-000-0000
      
      Position: Business Analyst 2 #423501
      
      Technical skills: Dynamics CRM, MySQL, Microsoft SQL Server, JavaScript, Perl, Power BI, Tableau, Microsoft Office: Excel, Visio, Word, PowerPoint, SharePoint, and Outlook
      
      Professional skills: Data, process, workflow, statistics, risk analysis, modeling; technical writing, expert communicator and presenter, logical and analytical thinker, team builder, mediator, negotiator, self-starter, self-managing  
      
      Certifications: Six Sigma Green Belt, Lean Project Management
      
      Language skills: English, Mandarin, Spanish
      
      Education: Master of Business Administration
      
  2. 논리 앱을 실행합니다.Run your logic app. 성공적으로 실행되면 논리 앱에서 이 예제와 비슷한 이메일을 보냅니다.If successful, your logic app sends you an email that looks like this example:

    논리 앱에서 보낸 이메일 알림

    이메일을 받지 못한 경우 이메일의 정크 폴더를 확인합니다.If you don't get any emails, check your email's junk folder. 이메일 정크 필터가 이러한 종류의 메일을 리디렉션할 수 있습니다.Your email junk filter might redirect these kinds of mails. 그렇지 않으면 논리 앱이 올바르게 실행되는지 모르는 경우 논리 앱 문제 해결을 참조하세요.Otherwise, if you're unsure that your logic app ran correctly, see Troubleshoot your logic app.

축하드립니다. 여러 Azure 서비스에서 작업을 자동화하고 일부 사용자 지정 코드를 호출하는 논리 앱을 만들어서 실행하셨습니다.Congratulations, you've now created and run a logic app that automates tasks across different Azure services and calls some custom code.

리소스 정리Clean up resources

이 샘플이 더 이상 필요 없으면 논리 앱 및 관련 리소스가 포함된 리소스 그룹을 삭제합니다.When you no longer need this sample, delete the resource group that contains your logic app and related resources.

  1. 최상위 Azure 검색 상자에 resources groups를 입력하고, 리소스 그룹을 선택합니다.In the top-level Azure search box, enter resources groups, and select Resource groups.

    "리소스 그룹"을 찾아 선택합니다.

  2. 리소스 그룹 목록에서 이 자습서에 대한 리소스 그룹을 선택합니다.From the Resource groups list, select the resource group for this tutorial.

    자습서에 대한 리소스 그룹 찾기

  3. 개요 창에서 리소스 그룹 삭제를 선택합니다.On the Overview pane, select Delete resource group.

    논리 앱 리소스 그룹 삭제

  4. 확인 창이 표시되면 리소스 그룹 이름을 입력하고 삭제를 선택합니다.When the confirmation pane appears, enter the resource group name, and select Delete.

다음 단계Next steps

이 자습서에서는 Azure Storage 및 Azure Functions 같은 Azure 서비스를 통합하여 이메일 첨부 파일을 처리하고 저장하는 논리 앱을 만들었습니다.In this tutorial, you created a logic app that processes and stores email attachments by integrating Azure services, such as Azure Storage and Azure Functions. 지금부터는 논리 앱을 빌드하는 데 사용할 수 있는 다른 커넥터에 대해서 알아보세요.Now, learn more about other connectors that you can use to build logic apps.