Azure Logic Apps의 트리거 및 동작 유형에 대 한 스키마 참조 가이드Schema reference guide for trigger and action types in Azure Logic Apps

이 참조에서는 논리 앱의 기본 워크플로 정의에서 트리거와 작업을 식별 하는 데 사용 되는 일반적인 형식에 대해 설명 하며, 워크플로 정의 언어에 의해 설명 되 고 유효성이 검사 됩니다.This reference describes the general types used for identifying triggers and actions in your logic app's underlying workflow definition, which is described and validated by the Workflow Definition Language. 논리 앱에서 사용할 수 있는 특정 커넥터 트리거와 작업을 찾으려면 커넥터 개요에서 목록을 참조 하세요.To find specific connector triggers and actions that you can use in your logic apps, see the list under the Connectors overview.

트리거 개요Triggers overview

모든 워크플로에는 워크플로를 인스턴스화하고 시작 하는 호출을 정의 하는 트리거가 포함 되어 있습니다.Every workflow includes a trigger, which defines the calls that instantiate and start the workflow. 일반 트리거 범주는 다음과 같습니다.Here are the general trigger categories:

  • 폴링 트리거 - 정기적인 간격으로 서비스의 엔드포인트을 검사합니다.A polling trigger, which checks a service's endpoint at regular intervals

  • 푸시 트리거 - 엔드포인트에 대한 구독을 만들고 콜백 URL을 제공하여 지정된 이벤트가 발생하거나 데이터를 사용할 수 있을 때 엔드포인트이 트리거에 알릴 수 있도록 합니다.A push trigger, which creates a subscription to an endpoint and provides a callback URL so the endpoint can notify the trigger when the specified event happens or data is available. 그러면 트리거는 발생하기 전에 엔드포인트의 응답을 기다립니다.The trigger then waits for the endpoint's response before firing.

트리거에는 이러한 최상위 요소가 있습니다. 단, 일부는 선택 사항입니다.Triggers have these top-level elements, although some are optional:

"<trigger-name>": {
   "type": "<trigger-type>",
   "inputs": { "<trigger-inputs>" },
   "recurrence": { 
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "conditions": [ "<array-with-conditions>" ],
   "runtimeConfiguration": { "<runtime-config-options>" },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
},

필수Required

Value 형식Type 설명Description
<trigger-name><trigger-name> 문자열String 트리거의 이름입니다.The name for the trigger
<trigger-type><trigger-type> 문자열String "Http" 또는 "ApiConnection"과 같은 트리거 형식입니다.The trigger type such as "Http" or "ApiConnection"
<trigger-inputs><trigger-inputs> JSON 개체JSON Object 트리거의 동작을 정의하는 입력입니다.The inputs that define the trigger's behavior
<time-unit><time-unit> 문자열String 트리거가 실행되는 빈도를 설명하는 시간 단위로, “초”, “분”, “시간”, “일”, “주” 또는 “월”이 있습니다.The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<number-of-time-units><number-of-time-units> IntegerInteger 트리거가 다시 실행될 때까지 기다리는 시간 단위 수를 나타내는 빈도에 따라 트리거가 얼마나 자주 발생하는지를 지정하는 값입니다.A value that specifies how often the trigger fires based on the frequency, which is the number of time units to wait until the trigger fires again

다음은 최소 및 최대 간격입니다.Here are the minimum and maximum intervals:

- 월: 1-16개월- Month: 1-16 months
- 일: 1-500일- Day: 1-500 days
- 시간: 1-12,000시간- Hour: 1-12,000 hours
- 분: 1-72,000분- Minute: 1-72,000 minutes
- 초: 1-9,999,999초- Second: 1-9,999,999 seconds

예를 들어, 간격이 6이고 빈도가 “월”이면 되풀이 간격은 6개월마다입니다.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

선택 사항Optional

Value 형식Type 설명Description
<array-with-conditions><array-with-conditions> 배열Array 워크플로를 실행할 것인지 여부를 결정하는 하나 이상의 조건을 포함하는 배열입니다.An array that contains one or more conditions that determine whether to run the workflow. 트리거에만 사용 가능합니다.Available only for triggers.
<runtime-config-options><runtime-config-options> JSON 개체JSON Object runtimeConfiguration 속성을 설정하여 트리거 런타임 동작을 변경할 수 있습니다.You can change trigger runtime behavior by setting runtimeConfiguration properties. 자세한 내용은 런타임 구성 설정을 참조하세요.For more information, see Runtime configuration settings.
<splitOn-expression><splitOn-expression> 문자열String 배열을 반환하는 트리거의 경우, 처리를 위해 여러 워크플로 인스턴스로 배열 항목을 분할 또는 분리하는 식을 지정할 수 있습니다.For triggers that return an array, you can specify an expression that splits or debatches array items into multiple workflow instances for processing.
<operation-option><operation-option> 문자열String operationOptions 속성을 설정하여 기본 동작을 변경할 수 있습니다.You can change the default behavior by setting the operationOptions property. 자세한 내용은 작업 옵션을 참조하세요.For more information, see Operation options.

트리거 유형 목록Trigger types list

각 트리거 유형은 트리거의 동작을 정의하는 다른 인터페이스 및 입력을 갖습니다.Each trigger type has a different interface and inputs that define the trigger's behavior.

기본 제공 트리거Built-in triggers

트리거 유형Trigger type 설명Description
HTTPHTTP 엔드포인트을 검사하거나 폴링합니다.Checks or polls any endpoint. 이 엔드포인트은 “202” 비동기 패턴을 사용하거나 배열을 반환하여 특정 트리거 계약을 준수해야 합니다.This endpoint must conform to a specific trigger contract either by using a "202" asynchronous pattern or by returning an array.
HTTPWebhookHTTPWebhook 논리 앱에 대한 호출 가능 엔드포인트을 만들지만 지정된 URL을 호출하여 등록하거나 등록을 취소합니다.Creates a callable endpoint for your logic app but calls the specified URL to register or unregister.
RecurrenceRecurrence 정의된 일정에 따라 실행합니다.Fires based on a defined schedule. 이 트리거를 발생시키기 위한 미래의 날짜 및 시간을 설정할 수 있습니다.You can set a future date and time for firing this trigger. 빈도에 따라 워크플로를 실행할 시간 및 요일을 지정할 수도 있습니다.Based on the frequency, you can also specify times and days for running your workflow.
RequestRequest 논리 앱에 대한 호출 가능 엔드포인트을 만들며 “수동” 트리거로도 알려져 있습니다.Creates a callable endpoint for your logic app and is also known as a "manual" trigger. 예를 들어 HTTP 엔드포인트를 통해 워크플로 호출, 트리거 또는 중첩을 참조하세요.For example, see Call, trigger, or nest workflows with HTTP endpoints.

관리되는 API 트리거Managed API triggers

트리거 유형Trigger type 설명Description
ApiConnectionApiConnection Microsoft 관리 API를 사용하여 엔드포인트을 검사하거나 폴링합니다.Checks or polls an endpoint by using Microsoft-managed APIs.
ApiConnectionWebhookApiConnectionWebhook 구독 및 구독을 취소하는 Microsoft 관리 API를 호출하여 논리 앱에 대한 호출 가능 엔드포인트을 만듭니다.Creates a callable endpoint for your logic app by calling Microsoft-managed APIs to subscribe and unsubscribe.

트리거 - 자세한 참조Triggers - Detailed reference

APIConnection 트리거APIConnection trigger

이 트리거는 Microsoft 관리 API를 사용하여 엔드포인트을 검사하거나 폴링하므로 이 트리거의 매개 변수는 엔드포인트에 따라 다를 수 있습니다.This trigger checks or polls an endpoint by using Microsoft-managed APIs so the parameters for this trigger can differ based on the endpoint. 이 트리거 정의의 여러 섹션은 선택 사항입니다.Many sections in this trigger definition are optional. 트리거의 동작은 섹션은 포함 여부에 따라 달라집니다.The trigger's behavior depends on whether or not sections are included.

"<APIConnection_trigger_name>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },
      "method": "<method-type>",
      "path": "/<api-operation>",
      "retryPolicy": { "<retry-behavior>" },
      "queries": { "<query-parameters>" }
   },
   "recurrence": { 
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
}

필수Required

Value 형식Type 설명Description
<APIConnection_trigger_name><APIConnection_trigger_name> 문자열String 트리거의 이름입니다.The name for the trigger
<connection-name><connection-name> 문자열String 워크플로에서 사용하는 관리되는 API 연결의 이름입니다.The name for the connection to the managed API that the workflow uses
<method-type><method-type> 문자열String 관리되는 API와 통신하기 위한 HTTP 메서드: “GET”, “PUT”, “POST”, “PATCH”, “DELETE”The HTTP method for communicating with the managed API: "GET", "PUT", "POST", "PATCH", "DELETE"
<api-operation><api-operation> 문자열String 호출할 API 작업입니다.The API operation to call
<time-unit><time-unit> 문자열String 트리거가 실행되는 빈도를 설명하는 시간 단위로, “초”, “분”, “시간”, “일”, “주” 또는 “월”이 있습니다.The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<number-of-time-units><number-of-time-units> IntegerInteger 트리거가 다시 실행될 때까지 기다리는 시간 단위 수를 나타내는 빈도에 따라 트리거가 얼마나 자주 발생하는지를 지정하는 값입니다.A value that specifies how often the trigger fires based on the frequency, which is the number of time units to wait until the trigger fires again

다음은 최소 및 최대 간격입니다.Here are the minimum and maximum intervals:

- 월: 1-16개월- Month: 1-16 months
- 일: 1-500일- Day: 1-500 days
- 시간: 1-12,000시간- Hour: 1-12,000 hours
- 분: 1-72,000분- Minute: 1-72,000 minutes
- 초: 1-9,999,999초- Second: 1-9,999,999 seconds

예를 들어, 간격이 6이고 빈도가 “월”이면 되풀이 간격은 6개월마다입니다.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

선택 사항Optional

Value 형식Type 설명Description
<retry-behavior><retry-behavior> JSON 개체JSON Object 상태 코드 408, 429 및 5XX와 연결 예외가 있는 일시적 오류에 대한 재시도 동작을 사용자 지정합니다.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. 자세한 내용은 다시 시도 정책을 참조하세요.For more information, see Retry policies.
<query-parameters><query-parameters> JSON 개체JSON Object API 호출에 포함하려는 쿼리 매개 변수입니다.Any query parameters to include with the API call. 예를 들어 "queries": { "api-version": "2018-01-01" } 개체는 호출에 ?api-version=2018-01-01을 추가합니다.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.
<max-runs><max-runs> IntegerInteger 기본적으로 워크플로 인스턴스는 동시에 실행 되거나 기본 제한까지 동시에 실행 됩니다.By default, workflow instances run at the same time, or in parallel up to the default limit. 새로운 <count> 값을 설정하여 이 제한을 변경하려면 트리거 동시성 변경을 참조하세요.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger 워크플로에서 최대 인스턴스 수를 이미 실행 중인 경우 (runtimeConfiguration.concurrency.runs 속성에 따라 변경 될 수 있음) 새 실행은 기본 제한까지이 큐에 배치 됩니다.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. 기본 제한을 변경하려면 대기 실행 제한 변경을 참조하세요.To change the default limit, see Change waiting runs limit.
<splitOn-expression><splitOn-expression> 문자열String 배열을 반환하는 트리거의 경우 이 식은 사용할 배열을 참조하므로, "for each" 루프를 사용하는 대신, 각 배열 항목에 대해 워크플로 인스턴스를 만들고 실행할 수 있습니다.For triggers that return arrays, this expression references the array to use so that you can create and run a workflow instance for each array item, rather than use a "for each" loop.

예를 들어, 이 식은 트리거 본문 콘텐츠 내에서 반환되는 배열의 항목을 나타냅니다. @triggerbody()?['value']For example, this expression represents an item in the array returned within the trigger's body content: @triggerbody()?['value']

<operation-option><operation-option> 문자열String operationOptions 속성을 설정하여 기본 동작을 변경할 수 있습니다.You can change the default behavior by setting the operationOptions property. 자세한 내용은 작업 옵션을 참조하세요.For more information, see Operation options.

OutputsOutputs

요소Element 형식Type 설명Description
headersheaders JSON 개체JSON Object 응답의 헤더입니다.The headers from the response
bodybody JSON 개체JSON Object 응답의 본문입니다.The body from the response
상태 코드status code IntegerInteger 응답의 상태 코드The status code from the response

예제Example

이 트리거 정의는 Office 365 Outlook 계정의 받은 편지함 내에서 매일 이메일을 확인합니다.This trigger definition checks for email every day inside the inbox for an Office 365 Outlook account:

"When_a_new_email_arrives": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "get",
      "path": "/Mail/OnNewEmail",
      "queries": {
          "fetchOnlyWithAttachment": false,
          "folderPath": "Inbox",
          "importance": "Any",
          "includeAttachments": false
      }
   },
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

ApiConnectionWebhook 트리거ApiConnectionWebhook trigger

이 트리거는 Microsoft 관리 API를 사용하여 엔드포인트으로 구독 요청을 전송하고, 엔드포인트이 응답을 전송할 수 있는 콜백 URL을 제공하고, 엔드포인트이 응답할 때까지 기다립니다.This trigger sends a subscription request to an endpoint by using a Microsoft-managed API, provides a callback URL to where the endpoint can send a response, and waits for the endpoint to respond. 자세한 내용은 엔드포인트 구독을 참조하세요.For more information, see Endpoint subscriptions.

"<ApiConnectionWebhook_trigger_name>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "body": {
          "NotificationUrl": "@{listCallbackUrl()}"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },
      "retryPolicy": { "<retry-behavior>" },
      "queries": "<query-parameters>"
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-run-queue>
      }
   },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
}

필수Required

Value 형식Type 설명Description
<connection-name><connection-name> 문자열String 워크플로에서 사용하는 관리되는 API 연결의 이름입니다.The name for the connection to the managed API that the workflow uses
<body-content><body-content> JSON 개체JSON Object 관리되는 API에 페이로드로 전송될 메시지 콘텐츠입니다.Any message content to send as payload to the managed API

선택 사항Optional

Value 형식Type 설명Description
<retry-behavior><retry-behavior> JSON 개체JSON Object 상태 코드 408, 429 및 5XX와 연결 예외가 있는 일시적 오류에 대한 재시도 동작을 사용자 지정합니다.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. 자세한 내용은 다시 시도 정책을 참조하세요.For more information, see Retry policies.
<query-parameters><query-parameters> JSON 개체JSON Object API 호출에 포함하려는 쿼리 매개 변수입니다.Any query parameters to include with the API call

예를 들어 "queries": { "api-version": "2018-01-01" } 개체는 호출에 ?api-version=2018-01-01을 추가합니다.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<max-runs><max-runs> IntegerInteger 기본적으로 워크플로 인스턴스는 동시에 실행 되거나 기본 제한까지 동시에 실행 됩니다.By default, workflow instances run at the same time, or in parallel up to the default limit. 새로운 <count> 값을 설정하여 이 제한을 변경하려면 트리거 동시성 변경을 참조하세요.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger 워크플로에서 최대 인스턴스 수를 이미 실행 중인 경우 (runtimeConfiguration.concurrency.runs 속성에 따라 변경 될 수 있음) 새 실행은 기본 제한까지이 큐에 배치 됩니다.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. 기본 제한을 변경하려면 대기 실행 제한 변경을 참조하세요.To change the default limit, see Change waiting runs limit.
<splitOn-expression><splitOn-expression> 문자열String 배열을 반환하는 트리거의 경우 이 식은 사용할 배열을 참조하므로, "for each" 루프를 사용하는 대신, 각 배열 항목에 대해 워크플로 인스턴스를 만들고 실행할 수 있습니다.For triggers that return arrays, this expression references the array to use so that you can create and run a workflow instance for each array item, rather than use a "for each" loop.

예를 들어, 이 식은 트리거 본문 콘텐츠 내에서 반환되는 배열의 항목을 나타냅니다. @triggerbody()?['value']For example, this expression represents an item in the array returned within the trigger's body content: @triggerbody()?['value']

<operation-option><operation-option> 문자열String operationOptions 속성을 설정하여 기본 동작을 변경할 수 있습니다.You can change the default behavior by setting the operationOptions property. 자세한 내용은 작업 옵션을 참조하세요.For more information, see Operation options.

예제Example

이 트리거 정의는 Office 365 Outlook API를 구독하고, API 엔드포인트에 대한 콜백 URL을 제공하고, 새 이메일이 도착할 때 엔드포인트이 응답할 때까지 기다립니다.This trigger definition subscribes to the Office 365 Outlook API, provides a callback URL to the API endpoint, and waits for the endpoint to respond when a new email arrives.

"When_a_new_email_arrives_(webhook)": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "body": {
         "NotificationUrl": "@{listCallbackUrl()}" 
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "path": "/MailSubscription/$subscriptions",
      "queries": {
          "folderPath": "Inbox",
          "hasAttachment": "Any",
          "importance": "Any"
      }
   },
   "splitOn": "@triggerBody()?['value']"
}

HTTP 트리거HTTP trigger

이 트리거는 지정 된 되풀이 일정에 따라 지정 된 HTTP 또는 HTTPS 끝점에 요청을 보냅니다.This trigger sends a request to the specified HTTP or HTTPS endpoint based on the specified recurrence schedule. 그런 다음 트리거는 응답을 확인 하 여 워크플로가 실행 되는지 여부를 확인 합니다.The trigger then checks the response to determine whether the workflow runs.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "<method-type>",
      "uri": "<HTTP-or-HTTPS-endpoint-URL>",
      "headers": { "<header-content>" },
      "queries": "<query-parameters>",
      "body": "<body-content>",
      "authentication": { "<authentication-type-and-property-values>" },
      "retryPolicy": {
         "type": "<retry-behavior>"
      }
   },
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

필수Required

속성Property Value 형식Type 설명Description
method <method-type><method-type> 문자열String 보내는 요청을 보내는 데 사용할 방법: "GET", "PUT", "POST", "PATCH" 또는 "DELETE"The method to use for sending the outgoing request: "GET", "PUT", "POST", "PATCH", or "DELETE"
uri <HTTP-or-HTTPS-endpoint-URL><HTTP-or-HTTPS-endpoint-URL> 문자열String 보내는 요청을 전송 하려는 HTTP 또는 HTTPS 끝점 URL입니다.The HTTP or HTTPS endpoint URL where you want to send the outgoing request. 최대 문자열 크기: 2KBMaximum string size: 2 KB

Azure 서비스 또는 리소스의 경우이 URI 구문에는 액세스 하려는 리소스 ID와 리소스에 대 한 경로가 포함 됩니다.For an Azure service or resource, this URI syntax includes the resource ID and the path to the resource that you want to access.

frequency <time-unit><time-unit> 문자열String 트리거가 실행되는 빈도를 설명하는 시간 단위로, “초”, “분”, “시간”, “일”, “주” 또는 “월”이 있습니다.The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
interval <number-of-time-units><number-of-time-units> IntegerInteger 트리거가 다시 실행될 때까지 기다리는 시간 단위 수를 나타내는 빈도에 따라 트리거가 얼마나 자주 발생하는지를 지정하는 값입니다.A value that specifies how often the trigger fires based on the frequency, which is the number of time units to wait until the trigger fires again

다음은 최소 및 최대 간격입니다.Here are the minimum and maximum intervals:

- 월: 1-16개월- Month: 1-16 months
- 일: 1-500일- Day: 1-500 days
- 시간: 1-12,000시간- Hour: 1-12,000 hours
- 분: 1-72,000분- Minute: 1-72,000 minutes
- 초: 1-9,999,999초- Second: 1-9,999,999 seconds

예를 들어, 간격이 6이고 빈도가 “월”이면 되풀이 간격은 6개월마다입니다.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

선택 사항Optional

속성Property Value 형식Type 설명Description
headers <header-content><header-content> JSON 개체JSON Object 요청에 포함 해야 하는 모든 헤더Any headers that you need to include with the request

예를 들어 언어 및 형식을 설정하려면 다음과 같이 합니다.For example, to set the language and type:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

queries <query-parameters><query-parameters> JSON 개체JSON Object 요청에 사용 해야 하는 모든 쿼리 매개 변수Any query parameters that you need to use in the request

예를 들어, "queries": { "api-version": "2018-01-01" } 개체는 요청에 ?api-version=2018-01-01을 추가합니다.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the request.

body <body-content><body-content> JSON 개체JSON Object 요청과 함께 페이로드로 전송할 메시지 콘텐츠입니다.The message content to send as payload with the request
authentication <인증 유형-및 속성-값><authentication-type-and-property-values> JSON 개체JSON Object 요청에서 아웃 바운드 요청을 인증 하는 데 사용 하는 인증 모델입니다.The authentication model that the request uses for authenticating outbound requests. 자세한 내용은 아웃 바운드 호출에 인증 추가를 참조 하세요.For more information, see Add authentication to outbound calls. Scheduler 외에 authority 속성이 지원됩니다.Beyond Scheduler, the authority property is supported. 지정 되지 않은 경우 기본값은 https://management.azure.com/이지만 다른 값을 사용할 수 있습니다.When not specified, the default value is https://management.azure.com/, but you can use a different value.
retryPolicy > type <retry-behavior><retry-behavior> JSON 개체JSON Object 상태 코드 408, 429 및 5XX와 연결 예외가 있는 일시적 오류에 대한 재시도 동작을 사용자 지정합니다.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. 자세한 내용은 다시 시도 정책을 참조하세요.For more information, see Retry policies.
runs <max-runs><max-runs> IntegerInteger 기본적으로 워크플로 인스턴스는 동시에 실행 되거나 기본 제한까지 동시에 실행 됩니다.By default, workflow instances run at the same time, or in parallel up to the default limit. 새로운 <count> 값을 설정하여 이 제한을 변경하려면 트리거 동시성 변경을 참조하세요.To change this limit by setting a new <count> value, see Change trigger concurrency.
maximumWaitingRuns <max-runs-queue><max-runs-queue> IntegerInteger 워크플로에서 최대 인스턴스 수를 이미 실행 중인 경우 (runtimeConfiguration.concurrency.runs 속성에 따라 변경 될 수 있음) 새 실행은 기본 제한까지이 큐에 배치 됩니다.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. 기본 제한을 변경하려면 대기 실행 제한 변경을 참조하세요.To change the default limit, see Change waiting runs limit.
operationOptions <operation-option><operation-option> 문자열String operationOptions 속성을 설정하여 기본 동작을 변경할 수 있습니다.You can change the default behavior by setting the operationOptions property. 자세한 내용은 작업 옵션을 참조하세요.For more information, see Operation options.

OutputsOutputs

요소Element 형식Type 설명Description
headersheaders JSON 개체JSON Object 응답의 헤더입니다.The headers from the response
bodybody JSON 개체JSON Object 응답의 본문입니다.The body from the response
상태 코드status code IntegerInteger 응답의 상태 코드The status code from the response

들어오는 요청에 대한 요구 사항Requirements for incoming requests

논리 앱에서 잘 작동하려면 엔드포인트은 특정 트리거 패턴 또는 계약을 준수하고, 다음 속성을 인식해야 합니다.To work well with your logic app, the endpoint must conform to a specific trigger pattern or contract, and recognize these properties:

응답Response 필수Required 설명Description
상태 코드Status code Yes “200 확인” 상태 코드가 실행을 시작합니다.The "200 OK" status code starts a run. 다른 상태 코드는 실행을 시작하지 않습니다.Any other status code doesn't start a run.
Retry-after 헤더Retry-after header 아니요No 논리 앱이 끝점을 다시 폴링할 때까지 걸리는 시간 (초)입니다.The number of seconds until your logic app polls the endpoint again
위치 헤더Location header 아니요No 다음 폴링 간격에서 호출할 URL입니다.The URL to call at the next polling interval. 지정하지 않으면 원래 URL이 사용됩니다.If not specified, the original URL is used.

다른 요청에 대한 예제 동작Example behaviors for different requests

상태 코드Status code 다음 후 다시 시도Retry after 동작Behavior
200200 {없음}{none} 워크플로를 실행한 다음, 정의된 되풀이 이후에 데이터가 더 있는지를 다시 확인합니다.Run the workflow, then check again for more data after the defined recurrence.
200200 10초10 seconds 워크플로를 실행한 다음, 10초 후에 데이터가 더 있는지를 다시 확인합니다.Run the workflow, then check again for more data after 10 seconds.
202202 60초60 seconds 워크플로를 트리거하지 않습니다.Don't trigger the workflow. 정의된 되풀이 간격에 따라 1분 후에 다음 시도를 합니다.The next attempt happens in one minute, subject to the defined recurrence. 정의된 되풀이 간격이 1분 이내이면 retry-after 헤더가 우선적으로 적용됩니다.If the defined recurrence is less than one minute, the retry-after header takes precedence. 그렇지 않으면 정의된 되풀이 간격이 사용됩니다.Otherwise, the defined recurrence is used.
400400 {없음}{none} 잘못된 요청이며 워크플로를 실행하지 않습니다.Bad request, don't run the workflow. retryPolicy가 정의되지 않으면 기본 정책이 사용됩니다.If no retryPolicy is defined, then the default policy is used. 다시 시도 횟수에 도달하면 트리거는 정의된 되풀이 이후에 데이터가 더 있는지 다시 확인합니다.After the number of retries has been reached, the trigger checks again for data after the defined recurrence.
500500 {없음}{none} 서버 오류이며 워크플로를 실행하지 않습니다.Server error, don't run the workflow. retryPolicy가 정의되지 않으면 기본 정책이 사용됩니다.If no retryPolicy is defined, then the default policy is used. 다시 시도 횟수에 도달하면 트리거는 정의된 되풀이 이후에 데이터가 더 있는지 다시 확인합니다.After the number of retries has been reached, the trigger checks again for data after the defined recurrence.

HTTPWebhook 트리거HTTPWebhook trigger

이 트리거는 지정된 엔드포인트 URL을 호출하여 구독을 등록할 수 있는 엔드포인트을 만들어 논리 앱이 호출 가능해지도록 만듭니다.This trigger makes your logic app callable by creating an endpoint that can register a subscription by calling the specified endpoint URL. 워크플로에서 이 트리거를 만들 때 나가는 요청은 호출을 수행하여 구독을 등록합니다.When you create this trigger in your workflow, an outgoing request makes the call to register the subscription. 이러한 방식으로 트리거는 이벤트 수신을 시작할 수 있습니다.That way, the trigger can start listening for events. 작업에서 이 트리거가 유효해지지 않을 경우 나가는 요청은 자동으로 호출을 수행하여 구독을 취소합니다.When an operation makes this trigger invalid, an outgoing request automatically makes the call to cancel the subscription. 자세한 내용은 엔드포인트 구독을 참조하세요.For more information, see Endpoint subscriptions.

HTTPWebhook 트리거에 대해 비동기 제한을 지정할 수도 있습니다.You can also specify asynchronous limits on an HTTPWebhook trigger. 트리거 동작은 사용하거나 생략하는 섹션에 따라 달라집니다.The trigger's behavior depends on the sections that you use or omit.

"HTTP_Webhook": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "<method-type>",
         "uri": "<endpoint-subscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "retryPolicy": { "<retry-behavior>" }
         },
      },
      "unsubscribe": {
         "method": "<method-type>",
         "url": "<endpoint-unsubscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" }
      }
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

일부 값(예: <method-type>)은 "subscribe""unsubscribe" 개체 둘 다에 사용할 수 있습니다.Some values, such as <method-type>, are available for both the "subscribe" and "unsubscribe" objects.

필수Required

Value 형식Type 설명Description
<method-type><method-type> 문자열String 구독 요청에 사용되는 HTTP 메서드: “GET”, “PUT”, “POST”, “PATCH”, “DELETE”The HTTP method to use for the subscription request: "GET", "PUT", "POST", "PATCH", or "DELETE"
<endpoint-subscribe-URL><endpoint-subscribe-URL> 문자열String 구독 요청을 전송할 엔드포인트 URL입니다.The endpoint URL where to send the subscription request

선택 사항Optional

Value 형식Type 설명Description
<method-type><method-type> 문자열String 취소 요청에 사용하는 HTTP 메서드: “GET”, “PUT”, “POST”, “PATCH”, “DELETE”The HTTP method to use for the cancellation request: "GET", "PUT", "POST", "PATCH", or "DELETE"
<endpoint-unsubscribe-URL><endpoint-unsubscribe-URL> 문자열String 취소 요청을 보낼 엔드포인트 URL입니다.The endpoint URL where to send the cancellation request
<body-content><body-content> 문자열String 구독 또는 취소 요청에 전송할 메시지 콘텐츠입니다.Any message content to send in the subscription or cancellation request
<인증-형식><authentication-type> JSON 개체JSON Object 요청에서 아웃 바운드 요청을 인증 하는 데 사용 하는 인증 모델입니다.The authentication model that the request uses for authenticating outbound requests. 자세한 내용은 아웃 바운드 호출에 인증 추가를 참조 하세요.For more information, see Add authentication to outbound calls.
<retry-behavior><retry-behavior> JSON 개체JSON Object 상태 코드 408, 429 및 5XX와 연결 예외가 있는 일시적 오류에 대한 재시도 동작을 사용자 지정합니다.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. 자세한 내용은 다시 시도 정책을 참조하세요.For more information, see Retry policies.
<max-runs><max-runs> IntegerInteger 기본적으로 워크플로 인스턴스는 모두 동시에 실행 되거나 기본 제한까지 동시에 실행 됩니다.By default, workflow instances all run at the same time, or in parallel up to the default limit. 새로운 <count> 값을 설정하여 이 제한을 변경하려면 트리거 동시성 변경을 참조하세요.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger 워크플로에서 최대 인스턴스 수를 이미 실행 중인 경우 (runtimeConfiguration.concurrency.runs 속성에 따라 변경 될 수 있음) 새 실행은 기본 제한까지이 큐에 배치 됩니다.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. 기본 제한을 변경하려면 대기 실행 제한 변경을 참조하세요.To change the default limit, see Change waiting runs limit.
<operation-option><operation-option> 문자열String operationOptions 속성을 설정하여 기본 동작을 변경할 수 있습니다.You can change the default behavior by setting the operationOptions property. 자세한 내용은 작업 옵션을 참조하세요.For more information, see Operation options.

OutputsOutputs

요소Element 형식Type 설명Description
headersheaders JSON 개체JSON Object 응답의 헤더입니다.The headers from the response
bodybody JSON 개체JSON Object 응답의 본문입니다.The body from the response
상태 코드status code IntegerInteger 응답의 상태 코드The status code from the response

예제Example

이 트리거는 지정된 엔드포인트에 대한 구독을 만들고, 고유한 콜백 URL을 제공하고, 새로 게시된 기술 문서를 기다립니다.This trigger creates a subscription to the specified endpoint, provides a unique callback URL, and waits for newly published technology articles.

"HTTP_Webhook": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "POST",
         "uri": "https://pubsubhubbub.appspot.com/subscribe",
         "body": {
            "hub.callback": "@{listCallbackUrl()}",
            "hub.mode": "subscribe",
            "hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
         },
      },
      "unsubscribe": {
         "method": "POST",
         "url": "https://pubsubhubbub.appspot.com/subscribe",
         "body": {
            "hub.callback": "@{workflow().endpoint}@{listCallbackUrl()}",
            "hub.mode": "unsubscribe",
            "hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
         }
      }
   }
}

되풀이 트리거Recurrence trigger

이 트리거는 지정된 되풀이 일정에 따라 실행되고, 주기적으로 실행되는 워크플로를 만드는 편리한 방법을 제공합니다.This trigger runs based on the specified recurrence schedule and provides an easy way for creating a regularly running workflow.

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
      "startTime": "<start-date-time-with-format-YYYY-MM-DDThh:mm:ss>",
      "timeZone": "<time-zone>",
      "schedule": {
         // Applies only when frequency is Day or Week. Separate values with commas.
         "hours": [ <one-or-more-hour-marks> ], 
         // Applies only when frequency is Day or Week. Separate values with commas.
         "minutes": [ <one-or-more-minute-marks> ], 
         // Applies only when frequency is Week. Separate values with commas.
         "weekDays": [ "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday" ] 
      }
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

필수Required

Value 형식Type 설명Description
<time-unit><time-unit> 문자열String 트리거가 실행되는 빈도를 설명하는 시간 단위로, “초”, “분”, “시간”, “일”, “주” 또는 “월”이 있습니다.The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<number-of-time-units><number-of-time-units> IntegerInteger 트리거가 다시 실행될 때까지 기다리는 시간 단위 수를 나타내는 빈도에 따라 트리거가 얼마나 자주 발생하는지를 지정하는 값입니다.A value that specifies how often the trigger fires based on the frequency, which is the number of time units to wait until the trigger fires again

다음은 최소 및 최대 간격입니다.Here are the minimum and maximum intervals:

- 월: 1-16개월- Month: 1-16 months
- 일: 1-500일- Day: 1-500 days
- 시간: 1-12,000시간- Hour: 1-12,000 hours
- 분: 1-72,000분- Minute: 1-72,000 minutes
- 초: 1-9,999,999초- Second: 1-9,999,999 seconds

예를 들어, 간격이 6이고 빈도가 “월”이면 되풀이 간격은 6개월마다입니다.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

선택 사항Optional

Value 형식Type 설명Description
<start-date-time-with-format-YYYY-MM-DDThh:mm:ss><start-date-time-with-format-YYYY-MM-DDThh:mm:ss> 문자열String 다음 형식의 시작 날짜 및 시간:The start date and time in this format:

YYYY-MM-DDThh:mm:ss(표준 시간대를 지정하는 경우)YYYY-MM-DDThh:mm:ss if you specify a time zone

또는-or-

YYYY-MM-DDThh:mm:ssZ(표준 시간대를 지정하지 않는 경우)YYYY-MM-DDThh:mm:ssZ if you don't specify a time zone

따라서 예를 들어 2017년 9월 18일, 오후 2시를 원할 경우 “2017-09-18T14:00:00”을 지정하고 “태평양 표준시”와 같은 표준 시간대를 지정하거나 표준 시간대 없이 “2017-09-18T14:00:00Z”를 지정합니다.So for example, if you want September 18, 2017 at 2:00 PM, then specify "2017-09-18T14:00:00" and specify a time zone such as "Pacific Standard Time", or specify "2017-09-18T14:00:00Z" without a time zone.

참고: 이 시작 시간은 미래의 최대 49 년 이며 utc 오프셋없이 utc 날짜/시간 형식의 ISO 8601 날짜 시간 사양을 따라야 합니다.Note: This start time has a maximum of 49 years in the future and must follow the ISO 8601 date time specification in UTC date time format, but without a UTC offset. 표준 시간대를 지정하지 않으면 공백 없이 맨 끝에 문자 "Z"를 추가해야 합니다.If you don't specify a time zone, you must add the letter "Z" at the end without any spaces. 이 "Z"는 해당 항해 시간을 나타냅니다.This "Z" refers to the equivalent nautical time.

단순 일정의 경우 시작 시간이 첫 번째 발생이지만 복잡한 일정의 경우 트리거는 시작 시간보다 더 일찍 발생하지 않습니다.For simple schedules, the start time is the first occurrence, while for complex schedules, the trigger doesn't fire any sooner than the start time. 시작 날짜 및 시간에 대한 자세한 내용은 정기적으로 실행되는 작업 만들기 및 예약을 참조하세요.For more information about start dates and times, see Create and schedule regularly running tasks.

<time-zone><time-zone> 문자열String 이 트리거가 UTC 오프셋을 허용하지 않으므로 시작 시간을 지정할 때만 적용됩니다.Applies only when you specify a start time because this trigger doesn't accept UTC offset. 적용하려는 표준 시간대를 지정합니다.Specify the time zone that you want to apply.
<one-or-more-hour-marks><one-or-more-hour-marks> 정수 또는 정수 배열Integer or integer array frequency에 대해 "Day" 또는 "Week"를 지정하는 경우 0~23 사이의 정수 하나 이상을 쉼표로 구분해서 워크플로를 실행하려는 시간으로 지정할 수 있습니다.If you specify "Day" or "Week" for frequency, you can specify one or more integers from 0 to 23, separated by commas, as the hours of the day when you want to run the workflow.

예를 들어 “10”, “12” 및 “14”를 지정하면 10 AM, 12 PM 및 2 PM이 시간 표시로 제공됩니다.For example, if you specify "10", "12" and "14", you get 10 AM, 12 PM, and 2 PM as the hour marks.

<one-or-more-minute-marks><one-or-more-minute-marks> 정수 또는 정수 배열Integer or integer array frequency에 대해 "Day" 또는 "Week"를 지정하는 경우 0~59 사이의 정수 하나 이상을 쉼표로 구분해서 워크플로를 실행하려는 분으로 지정할 수 있습니다.If you specify "Day" or "Week" for frequency, you can specify one or more integers from 0 to 59, separated by commas, as the minutes of the hour when you want to run the workflow.

예를 들어 분 표시로 "30"을 지정하고, 앞에 나온 시간 예제를 사용하면 10:30 AM, 12:30 PM 및 2:30 PM이 표시됩니다.For example, you can specify "30" as the minute mark and using the previous example for hours of the day, you get 10:30 AM, 12:30 PM, and 2:30 PM.

weekDaysweekDays 문자열 또는 문자열 배열String or string array frequency에 대해 “Week”를 지정하는 경우 워크플로를 실행하려는 경우 하나 이상의 요일을 쉼표로 구분해서 지정할 수 있습니다. 예를 들면 "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"와 같이 지정합니다.If you specify "Week" for frequency, you can specify one or more days, separated by commas, when you want to run the workflow: "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", and "Sunday"
<max-runs><max-runs> IntegerInteger 기본적으로 워크플로 인스턴스는 모두 동시에 실행 되거나 기본 제한까지 동시에 실행 됩니다.By default, workflow instances all run at the same time, or in parallel up to the default limit. 새로운 <count> 값을 설정하여 이 제한을 변경하려면 트리거 동시성 변경을 참조하세요.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger 워크플로에서 최대 인스턴스 수를 이미 실행 중인 경우 (runtimeConfiguration.concurrency.runs 속성에 따라 변경 될 수 있음) 새 실행은 기본 제한까지이 큐에 배치 됩니다.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. 기본 제한을 변경하려면 대기 실행 제한 변경을 참조하세요.To change the default limit, see Change waiting runs limit.
<operation-option><operation-option> 문자열String operationOptions 속성을 설정하여 기본 동작을 변경할 수 있습니다.You can change the default behavior by setting the operationOptions property. 자세한 내용은 작업 옵션을 참조하세요.For more information, see Operation options.

예 1Example 1

이 기본 되풀이 트리거가 매일 실행됩니다.This basic recurrence trigger runs daily:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

예 2Example 2

트리거를 실행할 시작 날짜 및 시간을 설정할 수 있습니다.You can specify a start date and time for firing the trigger. 이 되풀이 트리거는 지정된 날짜에 시작한 다음, 매일 실행됩니다.This recurrence trigger starts on the specified date and then fires daily:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Day",
      "interval": 1,
      "startTime": "2017-09-18T00:00:00Z"
   }
}

예 3Example 3

이 되풀이 트리거는 2017년 9월 9일 오후 2시에 시작하고, 매주 월요일 오전 10시 30분, 오후 12시 30분, 오후 2시 30분에 실행됩니다(태평양 표준시).This recurrence trigger starts on September 9, 2017 at 2:00 PM, and fires weekly every Monday at 10:30 AM, 12:30 PM, and 2:30 PM Pacific Standard Time:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Week",
      "interval": 1,
      "schedule": {
         "hours": [ 10, 12, 14 ],
         "minutes": [ 30 ],
         "weekDays": [ "Monday" ]
      },
      "startTime": "2017-09-07T14:00:00",
      "timeZone": "Pacific Standard Time"
   }
}

이 트리거에 대한 자세한 정보 및 예제는 정기적으로 실행되는 작업 만들기 및 예약을 참조하세요.For more information plus examples for this trigger, see Create and schedule regularly running tasks.

요청 트리거Request trigger

이 트리거는 들어오는 요청을 수락할 수 있는 엔드포인트을 만들어서 논리 앱을 호출할 수 있게 합니다.This trigger makes your logic app callable by creating an endpoint that can accept incoming requests. 이 트리거의 경우 트리거가 들어오는 요청에서 수신하는 입력 또는 페이로드에 대해 설명하고 유효성을 검사하는 JSON 스키마를 제공합니다.For this trigger, provide a JSON schema that describes and validates the payload or inputs that the trigger receives from the incoming request. 또한 이 스키마는 워크플로의 이후 작업에서 트리거 속성을 보다 쉽게 참조할 수 있도록 합니다.The schema also makes trigger properties easier to reference from later actions in the workflow.

이 트리거를 호출하려면 listCallbackUrl워크플로 서비스 REST API에 설명된 API를 사용해야 합니다.To call this trigger, you must use the listCallbackUrl API, which is described in the Workflow Service REST API. HTTP 엔드포인트로 이 트리거를 사용하는 방법을 알아보려면 HTTP 엔드포인트를 사용하여 워크플로 호출, 트리거 또는 중첩을 참조하세요.To learn how to use this trigger as an HTTP endpoint, see Call, trigger, or nest workflows with HTTP endpoints.

"manual": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "<method-type>",
      "relativePath": "<relative-path-for-accepted-parameter>",
      "schema": {
         "type": "object",
         "properties": { 
            "<property-name>": {
               "type": "<property-type>"
            }
         },
         "required": [ "<required-properties>" ]
      }
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-run-queue>
      },
   },
   "operationOptions": "<operation-option>"
}

필수Required

Value 형식Type 설명Description
<property-name><property-name> 문자열String 페이로드를 설명하는 JSON 스키마의 속성 이름입니다.The name of a property in the JSON schema, which describes the payload
<property-type><property-type> 문자열String 속성의 형식입니다.The property's type

선택 사항Optional

Value 형식Type 설명Description
<method-type><method-type> 문자열String 들어오는 요청에서 논리 앱을 호출하는 데 사용해야 하는 메서드: “GET”, “PUT”, “POST”, “PATCH”, “DELETE”The method that incoming requests must use to call your logic app: "GET", "PUT", "POST", "PATCH", "DELETE"
<relative-path-for-accepted-parameter><relative-path-for-accepted-parameter> 문자열String 엔드포인트의 URL이 수락할 수 있는 매개 변수에 대한 상대 경로입니다.The relative path for the parameter that your endpoint's URL can accept
<required-properties><required-properties> 배열Array 값이 필요한 하나 이상의 속성One or more properties that require values
<max-runs><max-runs> IntegerInteger 기본적으로 워크플로 인스턴스는 모두 동시에 실행 되거나 기본 제한까지 동시에 실행 됩니다.By default, workflow instances all run at the same time, or in parallel up to the default limit. 새로운 <count> 값을 설정하여 이 제한을 변경하려면 트리거 동시성 변경을 참조하세요.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger 워크플로에서 최대 인스턴스 수를 이미 실행 중인 경우 (runtimeConfiguration.concurrency.runs 속성에 따라 변경 될 수 있음) 새 실행은 기본 제한까지이 큐에 배치 됩니다.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. 기본 제한을 변경하려면 대기 실행 제한 변경을 참조하세요.To change the default limit, see Change waiting runs limit.
<operation-option><operation-option> 문자열String operationOptions 속성을 설정하여 기본 동작을 변경할 수 있습니다.You can change the default behavior by setting the operationOptions property. 자세한 내용은 작업 옵션을 참조하세요.For more information, see Operation options.

예제Example

이 트리거는 들어오는 요청이 HTTP POST 메서드를 사용하여 트리거를 호출해야 하고, 들어오는 요청에서 입력의 유효성을 검사하는 스키마를 포함합니다.This trigger specifies that an incoming request must use the HTTP POST method to call the trigger and includes a schema that validates input from the incoming request:

"manual": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "POST",
      "schema": {
         "type": "object",
         "properties": {
            "customerName": {
               "type": "String"
            },
            "customerAddress": { 
               "type": "Object",
               "properties": {
                  "streetAddress": {
                     "type": "string"
                  },
                  "city": {
                     "type": "string"
                  }
               }
            }
         }
      }
   }
}

트리거 조건Trigger conditions

트리거의 경우(트리거에 한해) 워크플로의 실행 여부를 결정하는 조건에 대한 하나 이상의 식이 들어 있는 배열을 포함할 수 있습니다.For any trigger, and only triggers, you can include an array that contains one or more expressions for conditions that determine whether the workflow should run. 워크플로의 트리거에 conditions 속성을 추가 하려면 코드 뷰 편집기에서 논리 앱을 엽니다.To add the conditions property to a trigger in your workflow, open your logic app in the code view editor.

예를 들어, conditions 속성에서 트리거의 상태 코드를 참조하여 웹 사이트가 내부 서버 오류를 반환할 때만 트리거가 발생하도록 지정할 수 있습니다.For example, you can specify that a trigger fires only when a website returns an internal server error by referencing the trigger's status code in the conditions property:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Hour",
      "interval": 1
   },
   "conditions": [ {
      "expression": "@equals(triggers().code, 'InternalServerError')"
   } ]
}

기본적으로 트리거는 "200 정상" 응답을 받은 경우에만 트리거됩니다.By default, a trigger fires only after getting a "200 OK" response. 식에서 트리거의 상태 코드를 참조하는 경우 트리거의 기본 동작이 바뀝니다.When an expression references a trigger's status code, the trigger's default behavior is replaced. 따라서 "200" 및 "201"과 같은 둘 이상의 상태 코드에 대해 트리거가 발생하도록 하려면 다음 식을 조건으로 포함해야 합니다.So, if you want the trigger to fire for more than one status code, such as the "200" and "201" status code, you must include this expression as your condition:

@or(equals(triggers().code, 200),equals(triggers().code, 201))

여러 실행 트리거Trigger multiple runs

트리거에서 논리 앱이 처리할 배열을 반환하는 경우, "for each" 루프에서 각 배열 항목을 처리하는 데 너무 오래 걸리는 경우가 있습니다.If your trigger returns an array for your logic app to process, sometimes a "for each" loop might take too long to process each array item. 대신, 트리거에 SplitOn 속성을 사용하여 배열을 분리 처리(debatch) 합니다.Instead, you can use the SplitOn property in your trigger to debatch the array. 일괄 처리는 배열 항목을 분할 하 고 각 배열 항목에 대해 실행 되는 새 워크플로 인스턴스를 시작 합니다.Debatching splits up the array items and starts a new workflow instance that runs for each array item. 예를 들어 이 방법은 폴링 간격 사이에 여러 개의 새 항목을 반환할 수 있는 엔드포인트를 폴링하려는 경우에 유용합니다.This approach is useful, for example, when you want to poll an endpoint that might return multiple new items between polling intervals. SplitOn이 단일 논리 앱 실행에서 처리할 수 있는 배열 항목의 최대 개수는 제한 및 구성을 참조하세요.For the maximum number of array items that SplitOn can process in a single logic app run, see Limits and configuration.

참고

동기 응답 패턴에는 SplitOn을 사용할 수 없습니다.You can't use SplitOn with a synchronous response pattern. SplitOn을 사용하고 응답 작업을 포함하는 모든 워크플로는 비동기적으로 실행되고 즉시 202 ACCEPTED 응답을 보냅니다.Any workflow that uses SplitOn and includes a response action runs asynchronously and immediately sends a 202 ACCEPTED response.

트리거 동시성을 사용 하는 경우 SplitOn 한도가 크게 줄어듭니다.When trigger concurrency is enabled, the SplitOn limit is significantly reduced. 항목 수가이 한도를 초과 하면 SplitOn 기능을 사용할 수 없습니다.If the number of items exceeds this limit, the SplitOn capability is disabled.

트리거의 Swagger 파일에서 배열인 페이로드를 설명하고 있으면 SplitOn 속성이 자동으로 트리거에 추가됩니다.If your trigger's Swagger file describes a payload that is an array, the SplitOn property is automatically added to your trigger. 그렇지 않으면 분리 처리할 배열이 있는 응답 페이로드 내에 이 속성을 추가합니다.Otherwise, add this property inside the response payload that has the array you want to debatch.

예제Example

이 응답을 반환하는 API가 있다고 가정합니다.Suppose you have an API that returns this response:

{
   "Status": "Succeeded",
   "Rows": [ 
      { 
         "id": 938109380,
         "name": "customer-name-one"
      },
      {
         "id": 938109381,
         "name": "customer-name-two"
      }
   ]
}

논리 앱에는 Rows의 배열 콘텐츠만 필요하므로 다음 예제와 같은 트리거를 만들 수 있습니다.Your logic app only needs the content from the array in Rows, so you can create a trigger like this example:

"HTTP_Debatch": {
   "type": "Http",
    "inputs": {
        "uri": "https://mydomain.com/myAPI",
        "method": "GET"
    },
   "recurrence": {
      "frequency": "Second",
      "interval": 1
    },
    "splitOn": "@triggerBody()?.Rows"
}

참고

SplitOn 명령을 사용하는 경우 배열 외부에 있는 속성을 가져올 수 없습니다.If you use the SplitOn command, you can't get the properties that are outside the array. 따라서 이 예제에서는 API에서 반환된 응답에서 status 속성을 가져올 수 없습니다.So for this example, you can't get the status property in the response returned from the API.

Rows 속성이 없는 경우 오류를 방지하기 위해 이 예제에서는 ? 연산자를 사용하고 있습니다.To avoid a failure if the Rows property doesn't exist, this example uses the ? operator.

이제 워크플로 정의에서 @triggerBody().name을 사용하여 첫 번째 실행에서 name, 두 번째 실행에서 "customer-name-one"에 해당하는 "customer-name-two" 값을 가져올 수 있습니다.Your workflow definition can now use @triggerBody().name to get the name values, which are "customer-name-one" from the first run and "customer-name-two" from the second run. 따라서 트리거 출력의 예제는 다음과 같습니다.So, your trigger outputs look like these examples:

{
   "body": {
      "id": 938109380,
      "name": "customer-name-one"
   }
}
{
   "body": {
      "id": 938109381,
      "name": "customer-name-two"
   }
}

작업 개요Actions overview

Azure Logic Apps는 각각이 작업의 고유한 동작을 정의하는 다른 입력을 받는 다양한 작업 형식을 제공합니다.Azure Logic Apps provides various action types - each with different inputs that define an action's unique behavior.

작업에는 이러한 최상위 요소가 있습니다. 단, 일부는 선택 사항입니다.Actions have these high-level elements, though some are optional:

"<action-name>": {
   "type": "<action-type>",
   "inputs": { 
      "<input-name>": { "<input-value>" },
      "retryPolicy": "<retry-behavior>" 
   },
   "runAfter": { "<previous-trigger-or-action-status>" },
   "runtimeConfiguration": { "<runtime-config-options>" },
   "operationOptions": "<operation-option>"
},

필수Required

Value 형식Type 설명Description
<action-name><action-name> 문자열String 작업의 이름입니다.The name for the action
<action-type><action-type> 문자열String 작업 유형, 예: “Http” 또는 “ApiConnection”The action type, for example, "Http" or "ApiConnection"
<input-name><input-name> 문자열String 작업의 동작을 정의하는 입력의 이름입니다.The name for an input that defines the action's behavior
<input-value><input-value> 다양Various 입력 값(예: 문자열, 정수, JSON 개체)입니다.The input value, which can be a string, integer, JSON object, and so on
<previous-trigger-or-action-status><previous-trigger-or-action-status> JSON 개체JSON Object 이 현재 작업이 실행되기 위해 먼저 실행되어야 하는 트리거 또는 작업에 대한 이름 및 결과 상태입니다.The name and resulting status for the trigger or action that must run immediately before this current action can run

선택 사항Optional

Value 형식Type 설명Description
<retry-behavior><retry-behavior> JSON 개체JSON Object 상태 코드 408, 429 및 5XX와 연결 예외가 있는 일시적 오류에 대한 재시도 동작을 사용자 지정합니다.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. 자세한 내용은 다시 시도 정책을 참조하세요.For more information, see Retry policies.
<runtime-config-options><runtime-config-options> JSON 개체JSON Object 일부 작업의 경우 runtimeConfiguration 속성을 설정하여 런타임에 작업 동작을 변경할 수 있습니다.For some actions, you can change the action's behavior at run time by setting runtimeConfiguration properties. 자세한 내용은 런타임 구성 설정을 참조하세요.For more information, see Runtime configuration settings.
<operation-option><operation-option> 문자열String 일부 작업의 경우 operationOptions 속성을 설정하여 기본 동작을 변경할 수 있습니다.For some actions, you can change the default behavior by setting the operationOptions property. 자세한 내용은 작업 옵션을 참조하세요.For more information, see Operation options.

작업 유형 목록Action types list

다음은 일반적으로 사용되는 작업 유형입니다.Here are some commonly used action types:

기본 제공 작업Built-in actions

작업 유형Action type 설명Description
작성Compose 입력에서 단일 출력을 만듭니다. 다양한 형식을 가질 수 있습니다.Creates a single output from inputs, which can have various types.
JavaScript 코드 실행Execute JavaScript Code 특정 조건에 맞는 JavaScript 코드 조각을 실행 합니다.Run JavaScript code snippets that fit within specific criteria. 코드 요구 사항 및 자세한 내용은 인라인 코드를 사용 하 여 코드 조각 추가 및 실행을 참조 하세요.For code requirements and more information, see Add and run code snippets with inline code.
FunctionFunction Azure 함수를 호출합니다.Calls an Azure Function.
HTTPHTTP HTTP 엔드포인트을 호출합니다.Calls an HTTP endpoint.
조인Join 배열의 모든 항목에서 문자열을 만들고, 지정한 구분 기호를 사용하여 해당 항목을 구분합니다.Creates a string from all the items in an array and separates those items with a specified delimiter character.
JSON 구문 분석Parse JSON JSON 콘텐츠의 속성에서 친숙한 토큰을 만듭니다.Creates user-friendly tokens from properties in JSON content. 논리 앱에 토큰을 포함하여 해당 속성을 참조할 수 있습니다.You can then reference those properties by including the tokens in your logic app.
QueryQuery 조건 또는 필터를 기준으로 다른 배열에 있는 항목에서 배열을 만듭니다.Creates an array from items in another array based on a condition or filter.
ResponseResponse 들어오는 호출 또는 요청에 대한 응답을 만듭니다.Creates a response to an incoming call or request.
선택Select 지정된 맵을 기준으로 다른 배열의 항목을 변형하여 JSON 개체를 포함하는 배열을 만듭니다.Creates an array with JSON objects by transforming items from another array based on the specified map.
TableTable 배열에서 CSV 또는 HTML 테이블을 만듭니다.Creates a CSV or HTML table from an array.
TerminateTerminate 현재 실행 중인 워크플로를 중지합니다.Stops an actively running workflow.
WaitWait 지정된 기간 동안 또는 지정된 날짜 및 시간까지 워크플로를 일시중지합니다.Pauses your workflow for a specified duration or until the specified date and time.
WorkflowWorkflow 다른 워크플로 내에 워크플로를 중첩합니다.Nests a workflow inside another workflow.

관리되는 API 작업Managed API actions

작업 유형Action type 설명Description
ApiConnectionApiConnection Microsoft 관리 API를 사용하여 HTTP 엔드포인트을 호출합니다.Calls an HTTP endpoint by using a Microsoft-managed API.
ApiConnectionWebhookApiConnectionWebhook HTTP 웹후크처럼 작동하지만 Microsoft 관리 API를 사용합니다.Works like HTTP Webhook but uses a Microsoft-managed API.

워크플로 제어 작업Control workflow actions

이러한 작업은 워크플로 실행을 제어하고 다른 작업을 포함하도록 도와줍니다.These actions help you control workflow execution and include other actions. 워크플로 제어 작업 외부에서, 해당 워크플로 제어 작업 내부의 작업을 직접 참조할 수 있습니다.From outside a control workflow action, you can directly reference actions inside that control workflow action. 예를 들어, Http 작업이 범위 내에 있는 경우 워크플로의 어디에서든지 @body('Http') 식을 참조할 수 있습니다.For example, if you have an Http action inside a scope, you can reference the @body('Http') expression from anywhere in the workflow. 그러나 워크플로 제어 작업 내에서 존재하는 작업은 동일한 워크플로 제작어 업 구조 내에 있는 다른 작업 "이후에만 실행"될 수 있습니다.However, actions that exist inside a control workflow action can only "run after" other actions that are in the same control workflow structure.

작업 유형Action type 설명Description
ForEachForEach 배열에 있는 모든 항목에 대해 동일한 작업을 반복해서 실행합니다.Run the same actions in a loop for every item in an array.
IfIf 지정된 조건이 true인지 또는 false인지에 따라 작업을 실행합니다.Run actions based on whether the specified condition is true or false.
ScopeScope 작업 집합의 그룹 상태를 기준으로 작업을 실행합니다.Run actions based on the group status from a set of actions.
SwitchSwitch 식, 개체 또는 토큰의 값이 각 사례에 지정된 값과 일치할 때 사례로 구성된 작업을 실행합니다.Run actions organized into cases when values from expressions, objects, or tokens match the values specified by each case.
UntilUntil 지정된 조건이 충족될 때까지 작업을 반복해서 실행합니다.Run actions in a loop until the specified condition is true.

작업 - 자세한 참조Actions - Detailed reference

APIConnection 작업APIConnection action

이 작업은 Microsoft 관리 API에 HTTP 요청을 전송하며, API 및 매개 변수에 대한 정보와 유효한 연결에 대한 참조가 필요합니다.This action sends an HTTP request to a Microsoft-managed API and requires information about the API and parameters plus a reference to a valid connection.

"<action-name>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<api-name>']['connectionId']"
         },
         "<other-action-specific-input-properties>"        
      },
      "method": "<method-type>",
      "path": "/<api-operation>",
      "retryPolicy": "<retry-behavior>",
      "queries": { "<query-parameters>" },
      "<other-action-specific-properties>"
    },
    "runAfter": {}
}

필수Required

Value 형식Type 설명Description
<action-name><action-name> 문자열String 커넥터에서 제공하는 작업의 이름입니다.The name of the action provided by the connector
<api-name><api-name> 문자열String 연결에 사용되는 Microsoft 관리 API의 이름입니다.The name of the Microsoft-managed API that is used for the connection
<method-type><method-type> 문자열String API 호출을 위한 HTTP 메서드: "GET", "PUT", "POST", "PATCH" 또는 "DELETE"The HTTP method for calling the API: "GET", "PUT", "POST", "PATCH", or "DELETE"
<api-operation><api-operation> 문자열String 호출할 API 작업입니다.The API operation to call

선택 사항Optional

Value 형식Type 설명Description
<other-action-specific-input-properties><other-action-specific-input-properties> JSON 개체JSON Object 이 특정 작업에 적용되는 다른 입력 속성입니다.Any other input properties that apply to this specific action
<retry-behavior><retry-behavior> JSON 개체JSON Object 상태 코드 408, 429 및 5XX와 연결 예외가 있는 일시적 오류에 대한 재시도 동작을 사용자 지정합니다.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. 자세한 내용은 다시 시도 정책을 참조하세요.For more information, see Retry policies.
<query-parameters><query-parameters> JSON 개체JSON Object API 호출에 포함하려는 쿼리 매개 변수입니다.Any query parameters to include with the API call.

예를 들어 "queries": { "api-version": "2018-01-01" } 개체는 호출에 ?api-version=2018-01-01을 추가합니다.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<other-action-specific-properties><other-action-specific-properties> JSON 개체JSON Object 이 특정 작업에 적용되는 다른 속성입니다.Any other properties that apply to this specific action

예제Example

이 정의는 Microsoft 관리 API에 해당하는 Office 365 Outlook 커넥터에 대한 Send an email 작업을 설명합니다.This definition describes the Send an email action for Office 365 Outlook connector, which is a Microsoft-managed API:

"Send_an_email": {
   "type": "ApiConnection",
   "inputs": {
      "body": {
         "Body": "Thank you for your membership!",
         "Subject": "Hello and welcome!",
         "To": "Sophie.Owen@contoso.com"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "POST",
      "path": "/Mail"
    },
    "runAfter": {}
}

APIConnectionWebhook 작업APIConnectionWebhook action

이 작업은 Microsoft 관리 API를 사용하여 HTTP를 통해 엔드포인트으로 구독 요청을 전송하고, 엔드포인트이 응답을 전송할 수 있는 콜백 URL을 제공하고, 엔드포인트이 응답할 때까지 기다립니다.This action sends a subscription request over HTTP to an endpoint by using a Microsoft-managed API, provides a callback URL to where the endpoint can send a response, and waits for the endpoint to respond. 자세한 내용은 엔드포인트 구독을 참조하세요.For more information, see Endpoint subscriptions.

"<action-name>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "subscribe": {
         "method": "<method-type>",
         "uri": "<api-subscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "retryPolicy": "<retry-behavior>",
         "queries": { "<query-parameters>" },
         "<other-action-specific-input-properties>"
      },
      "unsubscribe": {
         "method": "<method-type>",
         "uri": "<api-unsubscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "<other-action-specific-properties>"
      },
   },
   "runAfter": {}
}

일부 값(예: <method-type>)은 "subscribe""unsubscribe" 개체 둘 다에 사용할 수 있습니다.Some values, such as <method-type>, are available for both the "subscribe" and "unsubscribe" objects.

필수Required

Value 형식Type 설명Description
<action-name><action-name> 문자열String 커넥터에서 제공하는 작업의 이름입니다.The name of the action provided by the connector
<method-type><method-type> 문자열String 엔드포인트을 구독하거나 엔드포인트에서 구독 취소하는 데 사용하는 HTTP 메서드: "GET", "PUT", "POST", "PATCH" 또는 "DELETE"The HTTP method to use for subscribing or unsubscribing from an endpoint: "GET", "PUT", "POST", "PATCH", or "DELETE"
<api-subscribe-URL><api-subscribe-URL> 문자열String API를 구독하는 데 사용할 URI입니다.The URI to use for subscribing to the API

선택 사항Optional

Value 형식Type 설명Description
<api-unsubscribe-URL><api-unsubscribe-URL> 문자열String API에서 구독 취소하는 데 사용할 URI입니다.The URI to use for unsubscribing from the API
<header-content><header-content> JSON 개체JSON Object 요청에 전송할 헤더입니다.Any headers to send in the request

예를 들어 요청에 언어 및 형식을 설정하려면 다음과 같이 합니다.For example, to set the language and type on a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

<body-content><body-content> JSON 개체JSON Object 요청에 전송할 메시지 콘텐츠입니다.Any message content to send in the request
<인증-형식><authentication-type> JSON 개체JSON Object 요청에서 아웃 바운드 요청을 인증 하는 데 사용 하는 인증 모델입니다.The authentication model that the request uses for authenticating outbound requests. 자세한 내용은 아웃 바운드 호출에 인증 추가를 참조 하세요.For more information, see Add authentication to outbound calls.
<retry-behavior><retry-behavior> JSON 개체JSON Object 상태 코드 408, 429 및 5XX와 연결 예외가 있는 일시적 오류에 대한 재시도 동작을 사용자 지정합니다.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. 자세한 내용은 다시 시도 정책을 참조하세요.For more information, see Retry policies.
<query-parameters><query-parameters> JSON 개체JSON Object API 호출에 포함하려는 쿼리 매개 변수입니다.Any query parameters to include with the API call

예를 들어 "queries": { "api-version": "2018-01-01" } 개체는 호출에 ?api-version=2018-01-01을 추가합니다.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<other-action-specific-input-properties><other-action-specific-input-properties> JSON 개체JSON Object 이 특정 작업에 적용되는 다른 입력 속성입니다.Any other input properties that apply to this specific action
<other-action-specific-properties><other-action-specific-properties> JSON 개체JSON Object 이 특정 작업에 적용되는 다른 속성입니다.Any other properties that apply to this specific action

HTTP 비동기 제한과 동일한 방식으로 ApiConnectionWebhook 작업에 대한 제한을 지정할 수도 있습니다.You can also specify limits on an ApiConnectionWebhook action in the same way as HTTP asynchronous limits.

작성 작업Compose action

이 작업은 식을 포함하는 여러 입력에서 단일 출력을 만듭니다.This action creates a single output from multiple inputs, including expressions. 출력 및 입력 둘 다 배열, JSON 개체, XML 및 이진 파일 등 Azure Logic Apps에서 기본적으로 지원하는 어떤 형식도 될 수 있습니다.Both the output and inputs can have any type that Azure Logic Apps natively supports, such as arrays, JSON objects, XML, and binary. 그런 후, 다른 작업에서 해당 작업의 출력을 사용할 수 있습니다.You can then use the action's output in other actions.

"Compose": {
   "type": "Compose",
   "inputs": "<inputs-to-compose>",
   "runAfter": {}
},

필수Required

Value 형식Type 설명Description
<inputs-to-compose><inputs-to-compose> 모두Any 단일 출력을 만들기 위한 입력입니다.The inputs for creating a single output

예 1Example 1

이 작업 정의는 abcdefg를 후행 공백과 값 1234에 병합합니다.This action definition merges abcdefg with a trailing space and the value 1234:

"Compose": {
   "type": "Compose",
   "inputs": "abcdefg 1234",
   "runAfter": {}
},

이 작업이 만드는 출력은 다음과 같습니다.Here is the output that this action creates:

abcdefg 1234

예 2Example 2

이 작업 정의는 abcdefg를 포함하는 문자열 변수와 1234를 포함하는 정수 변수를 병합합니다.This action definition merges a string variable that contains abcdefg and an integer variable that contains 1234:

"Compose": {
   "type": "Compose",
   "inputs": "@{variables('myString')}@{variables('myInteger')}",
   "runAfter": {}
},

이 작업이 만드는 출력은 다음과 같습니다.Here is the output that this action creates:

"abcdefg1234"

JavaScript 코드 실행 작업Execute JavaScript Code action

이 작업은 JavaScript 코드 조각을 실행 하 고 이후 작업에서 참조할 수 있는 Result 토큰을 통해 결과를 반환 합니다.This action runs a JavaScript code snippet and returns the results through a Result token that later actions can reference.

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "<JavaScript-code-snippet>",
      "explicitDependencies": {
         "actions": [ <previous-actions> ],
         "includeTrigger": true
      }
   },
   "runAfter": {}
}

필수Required

Value 형식Type 설명Description
<JavaScript 코드 조각><JavaScript-code-snippet> 다름Varies 실행 하려는 JavaScript 코드입니다.The JavaScript code that you want to run. 코드 요구 사항 및 자세한 내용은 인라인 코드를 사용 하 여 코드 조각 추가 및 실행을 참조 하세요.For code requirements and more information, see Add and run code snippets with inline code.

code 특성에서 코드 조각은 읽기 전용 workflowContext 개체를 입력으로 사용할 수 있습니다.In the code attribute, your code snippet can use the read-only workflowContext object as input. 이 개체에는 워크플로의 트리거와 이전 작업의 결과에 대 한 코드 액세스를 제공 하는 하위 속성이 있습니다.This object has subproperties that give your code access to the results from the trigger and previous actions in your workflow. workflowContext 개체에 대 한 자세한 내용은 코드의 참조 트리거 및 작업 결과를 참조 하세요.For more information about the workflowContext object, see Reference trigger and action results in your code.

일부 경우에 필요 합니다.Required in some cases

explicitDependencies 특성은 트리거, 이전 작업 또는 둘 다의 결과를 코드 조각에 대 한 종속성으로 명시적으로 포함 하도록 지정 합니다.The explicitDependencies attribute specifies that you want to explicitly include results from the trigger, previous actions, or both as dependencies for your code snippet. 이러한 종속성을 추가 하는 방법에 대 한 자세한 내용은 인라인 코드에 대 한 매개 변수 추가를 참조 하세요.For more information about adding these dependencies, see Add parameters for inline code.

includeTrigger 특성의 경우 true 또는 false 값을 지정할 수 있습니다.For the includeTrigger attribute, you can specify true or false values.

Value 형식Type 설명Description
<이전 작업><previous-actions> 문자열 배열String array 지정 된 작업 이름이 있는 배열입니다.An array with your specified action names. 작업 이름에 밑줄 ()을 사용 하 고 공백 ("")은 사용 하지 않는 워크플로 정의에 표시 되는 작업 이름을 사용 합니다.Use the action names that appear in your workflow definition where action names use underscores (), not spaces (" ").

예 1Example 1

이 작업은 논리 앱의 이름을 가져오는 코드를 실행 하 고 "Hello 세계에서 <논리-앱-이름 >" 텍스트를 결과로 반환 합니다.This action runs code that gets your logic app's name and returns the text "Hello world from <logic-app-name>" as the result. 이 예제에서 코드는 읽기 전용 workflowContext 개체를 통해 workflowContext.workflow.name 속성에 액세스 하 여 워크플로 이름을 참조 합니다.In this example, the code references the workflow's name by accessing the workflowContext.workflow.name property through the read-only workflowContext object. workflowContext 개체를 사용 하는 방법에 대 한 자세한 내용은 코드의 참조 트리거 및 작업 결과를 참조 하세요.For more information about using the workflowContext object, see Reference trigger and action results in your code.

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "var text = \"Hello world from \" + workflowContext.workflow.name;\r\n\r\nreturn text;"
   },
   "runAfter": {}
}

예 2Example 2

이 작업을 수행 하면 Office 365 Outlook 계정에 새 전자 메일이 도착할 때 트리거되는 논리 앱에서 코드가 실행 됩니다.This action runs code in a logic app that triggers when a new email arrives in an Office 365 Outlook account. 또한 논리 앱은 승인 요청과 함께 수신 된 전자 메일의 콘텐츠를 전달 하는 승인 전자 메일 보내기 작업을 사용 합니다.The logic app also uses a send approval email action that forwards the content from the received email along with a request for approval.

이 코드는 트리거의 Body 속성에서 전자 메일 주소를 추출 하 고 승인 동작의 SelectedOption 속성 값과 함께 주소를 반환 합니다.The code extracts the email addresses from the trigger's Body property and returns the addresses along with the SelectedOption property value from the approval action. 작업은 explicitDependencies > actions 특성에서 종속성으로 승인 전자 메일 보내기 작업을 명시적으로 포함 합니다.The action explicitly includes the send approval email action as a dependency in the explicitDependencies > actions attribute.

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "var re = /(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\r\n\r\nvar email = workflowContext.trigger.outputs.body.Body;\r\n\r\nvar reply = workflowContext.actions.Send_approval_email_.outputs.body.SelectedOption;\r\n\r\nreturn email.match(re) + \" - \" + reply;\r\n;",
      "explicitDependencies": {
         "actions": [
            "Send_approval_email_"
         ]
      }
   },
   "runAfter": {}
}

Function 작업Function action

이 작업은 이전에 만든 Azure 함수를 호출합니다.This action calls a previously created Azure function.

"<Azure-function-name>": {
   "type": "Function",
   "inputs": {
     "function": {
        "id": "<Azure-function-ID>"
      },
      "method": "<method-type>",
      "headers": { "<header-content>" },
      "body": { "<body-content>" },
      "queries": { "<query-parameters>" } 
   },
   "runAfter": {}
}

필수Required

Value 형식Type 설명Description
<Azure-function-ID><Azure-function-ID> 문자열String 호출하려는 Azure 함수의 리소스 ID입니다.The resource ID for the Azure function you want to call. 이 값의 형식은 다음과 같습니다.Here is the format for this value:

"/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Web/sites/<Azure-function-app-name>/functions/<Azure-function-name>""/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Web/sites/<Azure-function-app-name>/functions/<Azure-function-name>"

<method-type><method-type> 문자열String 함수 호출에 사용되는 HTTP 메서드: "GET", "PUT", "POST", "PATCH" 또는 "DELETE"The HTTP method to use for calling the function: "GET", "PUT", "POST", "PATCH", or "DELETE"

지정하지 않으면 기본값은 "POST" 메서드입니다.If not specified, the default is the "POST" method.

선택 사항Optional

Value 형식Type 설명Description
<header-content><header-content> JSON 개체JSON Object 호출과 함께 보낼 헤더입니다.Any headers to send with the call

예를 들어 요청에 언어 및 형식을 설정하려면 다음과 같이 합니다.For example, to set the language and type on a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

<body-content><body-content> JSON 개체JSON Object 요청에 전송할 메시지 콘텐츠입니다.Any message content to send in the request
<query-parameters><query-parameters> JSON 개체JSON Object API 호출에 포함하려는 쿼리 매개 변수입니다.Any query parameters to include with the API call

예를 들어 "queries": { "api-version": "2018-01-01" } 개체는 호출에 ?api-version=2018-01-01을 추가합니다.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<other-action-specific-input-properties><other-action-specific-input-properties> JSON 개체JSON Object 이 특정 작업에 적용되는 다른 입력 속성입니다.Any other input properties that apply to this specific action
<other-action-specific-properties><other-action-specific-properties> JSON 개체JSON Object 이 특정 작업에 적용되는 다른 속성입니다.Any other properties that apply to this specific action

논리 앱을 저장하면 Azure Logic Apps 엔진에서 참조된 함수에 대해 다음과 같은 검사를 수행합니다.When you save your logic app, the Logic Apps engine performs these checks on the referenced function:

  • 워크플로는 함수에 액세스할 수 있어야 합니다.Your workflow must have access to the function.

  • 워크플로는 표준 HTTP 트리거 또는 일반 JSON 웹후크 트리거만 사용할 수 있습니다.Your workflow can use only a standard HTTP trigger or generic JSON webhook trigger.

    Logic Apps 엔진은 런타임에 사용되는 트리거 URL을 가져오고 캐시합니다.The Logic Apps engine gets and caches the trigger's URL, which is used at runtime. 그렇지만 작업에서 캐시된 URL이 무효화되면 런타임에 Function 작업이 실패합니다.However, if any operation invalidates the cached URL, the Function action fails at runtime. 이 문제를 해결하려면 논리 앱이 트리거 URL을 다시 가져오고 캐시할 수 있도록 논리 앱을 다시 저장합니다.To fix this issue, save the logic app again so that the logic app gets and caches the trigger URL again.

  • 함수에는 경로가 정의될 수 없습니다.The function can't have any route defined.

  • "함수" 및 "익명" 권한 부여 수준만 허용됩니다.Only "function" and "anonymous" authorization levels are allowed.

예제Example

이 작업 정의는 이전에 만든 "GetProductID" 함수를 호출합니다.This action definition calls the previously created "GetProductID" function:

"GetProductID": {
   "type": "Function",
   "inputs": {
     "function": {
        "id": "/subscriptions/<XXXXXXXXXXXXXXXXXXXX>/resourceGroups/myLogicAppResourceGroup/providers/Microsoft.Web/sites/InventoryChecker/functions/GetProductID"
      },
      "method": "POST",
      "headers": { 
          "x-ms-date": "@utcnow()"
       },
      "body": { 
          "Product_ID": "@variables('ProductID')"
      }
   },
   "runAfter": {}
}

HTTP 동작HTTP action

이 작업은 지정 된 HTTP 또는 HTTPS 끝점에 요청을 보내고 응답을 확인 하 여 워크플로가 실행 되는지 여부를 확인 합니다.This action sends a request to the specified HTTP or HTTPS endpoint and checks the response to determine whether the workflow runs.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "<method-type>",
      "uri": "<HTTP-or-HTTPS-endpoint-URL>",
      "headers": { "<header-content>" },
      "queries": { "<query-parameters>" },
      "body": "<body-content>",
      "authentication": { "<authentication-type-and-property-values>" },
      "retryPolicy": {
         "type": "<retry-behavior>"
      },
   },
   "runAfter": {}
}

필수Required

속성Property Value 형식Type 설명Description
method <method-type><method-type> 문자열String 보내는 요청을 보내는 데 사용할 방법: "GET", "PUT", "POST", "PATCH" 또는 "DELETE"The method to use for sending the outgoing request: "GET", "PUT", "POST", "PATCH", or "DELETE"
uri <HTTP-or-HTTPS-endpoint-URL><HTTP-or-HTTPS-endpoint-URL> 문자열String 보내는 요청을 전송 하려는 HTTP 또는 HTTPS 끝점 URL입니다.The HTTP or HTTPS endpoint URL where you want to send the outgoing request. 최대 문자열 크기: 2KBMaximum string size: 2 KB

Azure 서비스 또는 리소스의 경우이 URI 구문에는 액세스 하려는 리소스 ID와 리소스에 대 한 경로가 포함 됩니다.For an Azure service or resource, this URI syntax includes the resource ID and the path to the resource that you want to access.

선택 사항Optional

속성Property Value 형식Type 설명Description
headers <header-content><header-content> JSON 개체JSON Object 요청에 포함 해야 하는 모든 헤더Any headers that you need to include with the request

예를 들어 언어 및 형식을 설정하려면 다음과 같이 합니다.For example, to set the language and type:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

queries <query-parameters><query-parameters> JSON 개체JSON Object 요청에 사용 해야 하는 모든 쿼리 매개 변수Any query parameters that you need to use in the request

예를 들어 "queries": { "api-version": "2018-01-01" } 개체는 호출에 ?api-version=2018-01-01을 추가합니다.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

body <body-content><body-content> JSON 개체JSON Object 요청과 함께 페이로드로 전송할 메시지 콘텐츠입니다.The message content to send as payload with the request
authentication <인증 유형-및 속성-값><authentication-type-and-property-values> JSON 개체JSON Object 요청에서 아웃 바운드 요청을 인증 하는 데 사용 하는 인증 모델입니다.The authentication model that the request uses for authenticating outbound requests. 자세한 내용은 아웃 바운드 호출에 인증 추가를 참조 하세요.For more information, see Add authentication to outbound calls. Scheduler 외에 authority 속성이 지원됩니다.Beyond Scheduler, the authority property is supported. 지정 되지 않은 경우 기본값은 https://management.azure.com/이지만 다른 값을 사용할 수 있습니다.When not specified, the default value is https://management.azure.com/, but you can use a different value.
retryPolicy > type <retry-behavior><retry-behavior> JSON 개체JSON Object 상태 코드 408, 429 및 5XX와 연결 예외가 있는 일시적 오류에 대한 재시도 동작을 사용자 지정합니다.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. 자세한 내용은 다시 시도 정책을 참조하세요.For more information, see Retry policies.
<other-action-specific-input-properties><other-action-specific-input-properties> <입력-속성><input-property> JSON 개체JSON Object 이 특정 작업에 적용되는 다른 입력 속성입니다.Any other input properties that apply to this specific action
<other-action-specific-properties><other-action-specific-properties> <속성-값><property-value> JSON 개체JSON Object 이 특정 작업에 적용되는 다른 속성입니다.Any other properties that apply to this specific action

예제Example

이 작업 정의는 지정된 엔드포인트에 요청을 보내 최신 뉴스를 가져옵니다.This action definition gets the latest news by sending a request to the specified endpoint:

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "GET",
      "uri": "https://mynews.example.com/latest"
   }
}

조인 작업Join action

이 작업은 배열의 모든 항목에서 문자열을 만들고, 지정한 구분 기호를 사용하여 해당 항목을 구분합니다.This action creates a string from all the items in an array and separates those items with the specified delimiter character.

"Join": {
   "type": "Join",
   "inputs": {
      "from": <array>,
      "joinWith": "<delimiter>"
   },
   "runAfter": {}
}

필수Required

Value 형식Type 설명Description
<array><array> 배열Array 원본 항목을 제공하는 배열 또는 식입니다.The array or expression that provides the source items. 식을 지정할 때는 큰따옴표로 식을 묶습니다.If you specify an expression, enclose that expression with double quotes.
<delimiter><delimiter> 단일 문자 문자열Single character string 문자열의 각 항목을 구분하는 문자입니다.The character that separates each item in the string

예제Example

이 정수 배열이 포함된 이전에 만든 "myIntegerArray" 변수가 있다고 가정합니다.Suppose you have a previously created "myIntegerArray" variable that contains this integer array:

[1,2,3,4]

이 작업 정의는 식에서 variables() 함수를 사용하여 변수에서 값을 가져오고 해당 값을 쉼표로 구분하여 문자열 "1,2,3,4"를 만듭니다.This action definition gets the values from the variable by using the variables() function in an expression and creates this string with those values, which are separated by a comma: "1,2,3,4"

"Join": {
   "type": "Join",
   "inputs": {
      "from": "@variables('myIntegerArray')",
      "joinWith": ","
   },
   "runAfter": {}
}

JSON 구문 분석 작업Parse JSON action

이 작업은 JSON 콘텐츠의 속성에서 사용자에게 친숙한 필드 또는 토큰을 만듭니다.This action creates user-friendly fields or tokens from the properties in JSON content. 그러면 토큰을 대신 사용하여 논리 앱에서 해당 속성에 액세스할 수 있습니다.You can then access those properties in your logic app by using the tokens instead. 예를 들어, Azure Service Bus 및 Azure Cosmos DB와 같은 서비스에서 JSON 출력을 사용하려는 경우 해당 출력에서 데이터를 보다 쉽게 참조할 수 있도록 논리 앱에 이 작업을 포함할 수 있습니다.For example, when you want to use JSON output from services such as Azure Service Bus and Azure Cosmos DB, you can include this action in your logic app so that you can more easily reference the data in that output.

"Parse_JSON": {
   "type": "ParseJson",
   "inputs": {
      "content": "<JSON-source>",
         "schema": { "<JSON-schema>" }
      },
      "runAfter": {}
},

필수Required

Value 형식Type 설명Description
<JSON-source><JSON-source> JSON 개체JSON Object 구문 분석할 JSON 콘텐츠입니다.The JSON content you want to parse
<JSON-schema><JSON-schema> JSON 개체JSON Object 기본 작업이 원본 JSON 콘텐츠를 구문 분석하는 데 사용하는 기본 JSON 콘텐츠를 설명하는 JSON 스키마입니다.The JSON schema that describes the underlying the JSON content, which the action uses for parsing the source JSON content.

: Logic Apps 디자이너에서 스키마를 제공하거나 작업에서 스키마를 생성할 수 있도록 샘플 페이로드를 제공할 수 있습니다.Tip: In Logic Apps Designer, you can either provide the schema or provide a sample payload so that the action can generate the schema.

예제Example

이 작업 정의는 워크플로에서 사용할 수 있는 다음 JSON 구문 분석 작업을 수행 하는 작업 에서만 이러한 토큰을 만듭니다.This action definition creates these tokens that you can use in your workflow but only in actions that run following the Parse JSON action:

FirstName, LastName, EmailFirstName, LastName, and Email

"Parse_JSON": {
   "type": "ParseJson",
   "inputs": {
      "content": {
         "Member": {
            "Email": "Sophie.Owen@contoso.com",
            "FirstName": "Sophie",
            "LastName": "Owen"
         }
      },
      "schema": {
         "type": "object",
         "properties": {
            "Member": {
               "type": "object",
               "properties": {
                  "Email": {
                     "type": "string"
                  },
                  "FirstName": {
                     "type": "string"
                  },
                  "LastName": {
                     "type": "string"
                  }
               }
            }
         }
      }
   },
   "runAfter": { }
},

이 예제에서 "content" 속성은 작업이 구문 분석할 JSON 콘텐츠를 지정합니다.In this example, the "content" property specifies the JSON content for the action to parse. 이 JSON 콘텐츠를 스키마를 생성하기 위한 샘플 페이로드로 제공할 수도 있습니다.You can also provide this JSON content as the sample payload for generating the schema.

"content": {
   "Member": { 
      "FirstName": "Sophie",
      "LastName": "Owen",
      "Email": "Sophie.Owen@contoso.com"
   }
},

"schema" 속성은 JSON 콘텐츠를 설명하는 데 사용되는 JSON 스키마를 지정합니다.The "schema" property specifies the JSON schema used for describing the JSON content:

"schema": {
   "type": "object",
   "properties": {
      "Member": {
         "type": "object",
         "properties": {
            "FirstName": {
               "type": "string"
            },
            "LastName": {
               "type": "string"
            },
            "Email": {
               "type": "string"
            }
         }
      }
   }
}

쿼리 작업Query action

이 작업에서는 지정된 조건 또는 필터를 기준으로 다른 배열에 있는 항목에서 배열을 만듭니다.This action creates an array from items in another array based on a specified condition or filter.

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": <array>,
      "where": "<condition-or-filter>"
   },
   "runAfter": {}
}

필수Required

Value 형식Type 설명Description
<array><array> 배열Array 원본 항목을 제공하는 배열 또는 식입니다.The array or expression that provides the source items. 식을 지정할 때는 큰따옴표로 식을 묶습니다.If you specify an expression, enclose that expression with double quotes.
<condition-or-filter><condition-or-filter> 문자열String 원본 배열에서 항목을 필터링하는 데 사용되는 조건입니다.The condition used for filtering items in the source array

참고: 조건을 충족하는 값이 없는 경우 작업은 빈 배열을 만듭니다.Note: If no values satisfy the condition, then the action creates an empty array.

예제Example

이 작업 정의는 지정된 값(2)보다 더 큰 값을 갖는 배열을 만듭니다.This action definition creates an array that has values greater than the specified value, which is two:

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": [ 1, 3, 0, 5, 4, 2 ],
      "where": "@greater(item(), 2)"
   }
}

응답 작업Response action

이 작업은 HTTP 요청에 대한 응답의 페이로드를 만듭니다.This action creates the payload for the response to an HTTP request.

"Response" {
    "type": "Response",
    "kind": "http",
    "inputs": {
        "statusCode": 200,
        "headers": { <response-headers> },
        "body": { <response-body> }
    },
    "runAfter": {}
},

필수Required

Value 형식Type 설명Description
<response-status-code><response-status-code> IntegerInteger 들어오는 요청으로 전송되는 HTTP 상태 코드입니다.The HTTP status code that is sent to the incoming request. 기본 코드는 "200 정상"이지만 3xxx를 제외하고 2xx, 4xx 또는 5xx로시작 되는 어떤 유효한 상태 코드도 될 수 있습니다.The default code is "200 OK", but the code can be any valid status code that starts with 2xx, 4xx, or 5xx, but not with 3xxx.

선택 사항Optional

Value 형식Type 설명Description
<response-headers><response-headers> JSON 개체JSON Object 응답에 포함할 하나 이상의 헤더입니다.One or more headers to include with the response
<response-body><response-body> 다양Various 이전 작업의 문자열, JSON 개체 또는 이진 콘텐츠일 수 있는 응답 본문입니다.The response body, which can be a string, JSON object, or even binary content from a previous action

예제Example

이 작업 정의는 지정된 상태 코드, 메시지 본문 및 메시지 헤더를 사용하여 HTTP 요청에 대한 응답을 만듭니다.This action definition creates a response to an HTTP request with the specified status code, message body, and message headers:

"Response": {
   "type": "Response",
   "inputs": {
      "statusCode": 200,
      "body": {
         "ProductID": 0,
         "Description": "Organic Apples"
      },
      "headers": {
         "x-ms-date": "@utcnow()",
         "content-type": "application/json"
      }
   },
   "runAfter": {}
}

제한 사항Restrictions

다른 작업과 달리, Response 작업에는 다음과 같은 특수한 제한이 있습니다.Unlike other actions, the Response action has special restrictions:

  • 워크플로는 HTTP 요청 트리거로 시작될 때만 Response 작업을 사용할 수 있습니다. 즉, 워크플로가 HTTP 요청에 의해 트리거되어야 합니다.Your workflow can use the Response action only when the workflow starts with an HTTP request trigger, meaning your workflow must be triggered by an HTTP request.

  • 워크플로는 순차 루프 및 병렬 분기를 포함하여 Foreach 루프, Until 루프 내부를 제외하고 어디에서든지 Response 작업을 사용할 수 있습니다.Your workflow can use the Response action anywhere except inside Foreach loops, Until loops, including sequential loops, and parallel branches.

  • 원래 HTTP 요청은 Response 작업에서 요청된 모든 작업이 HTTP 요청 시간 제한 내에서 완료될 때만 워크플로의 응답을 가져옵니다.The original HTTP request gets your workflow's response only when all actions required by the Response action are finished within the HTTP request timeout limit.

    그러나 워크플로가 다른 논리 앱을 중첩된 워크플로로 호출할 경우, 중첩된 워크플로가 완료되기 전에 얼마나 오랜 시간이 경과되는지에 관계없이 부모 워크플로는 중첩된 워크플로가 완료될 때까지 기다립니다.However, if your workflow calls another logic app as a nested workflow, the parent workflow waits until the nested workflow finishes, no matter how much time passes before the nested workflow finishes.

  • 워크플로가 Response 작업 및 동기 응답 패턴을 사용할 경우 splitOn 명령이 여러 실행을 만들기 때문에 워크플로는 트리거 정의에서 이 명령을 사용할 수 없습니다.When your workflow uses the Response action and a synchronous response pattern, the workflow can't also use the splitOn command in the trigger definition because that command creates multiple runs. PUT 메서드가 사용될 경우 이러한 경우인지 확인하고, 해당 경우에는 "잘못된 요청" 응답을 반환합니다.Check for this case when the PUT method is used, and if true, return a "bad request" response.

    그렇지 않고, 워크플로에서 splitOn 명령 및 Response 작업을 사용할 경우 워크플로는 비동기식으로 실행되며 즉시 "202 수락됨" 응답을 반환합니다.Otherwise, if your workflow uses the splitOn command and a Response action, the workflow runs asynchronously and immediately returns a "202 ACCEPTED" response.

  • 워크플로 실행이 Response 작업에 도달하지만 들어오는 요청이 이미 응답을 수신한 경우 Response 작업은 충돌로 인해 "실패"로 표시됩니다.When your workflow's execution reaches the Response action, but the incoming request has already received a response, the Response action is marked as "Failed" due to the conflict. 따라서 논리 앱 실행도 “실패” 상태로 표시됩니다.And as a result, your logic app run is also marked with "Failed" status.

작업 선택Select action

이 작업은 지정된 맵을 기준으로 다른 배열의 항목을 변형하여 JSON 개체를 포함하는 배열을 만듭니다.This action creates an array with JSON objects by transforming items from another array based on the specified map. 출력 배열 및 원본 배열은 항상 동일한 항목 수를 갖습니다.The output array and source array always have the same number of items. 출력 배열의 개체 수를 변경할 수 없지만 해당 개체에서 속성 및 값을 추가하거나 제거할 수 있습니다.Although you can't change the number of objects in the output array, you can add or remove properties and their values across those objects. select 속성은 원본 배열에서 항목을 변환하기 위한 맵을 정의하는 하나 이상의 키-값 쌍을 지정합니다.The select property specifies at least one key-value pair that define the map for transforming items in the source array. 키-값 쌍은 출력 배열에 있는 모든 개체에서 속성 및 해당 값을 나타냅니다.A key-value pair represents a property and its value across all the objects in the output array.

"Select": {
   "type": "Select",
   "inputs": {
      "from": <array>,
      "select": { 
          "<key-name>": "<expression>",
          "<key-name>": "<expression>"        
      }
   },
   "runAfter": {}
},

필수Required

Value 형식Type 설명Description
<array><array> 배열Array 원본 항목을 제공하는 배열 또는 식입니다.The array or expression that provides the source items. 식을 큰따옴표로 묶어야 합니다.Make sure you enclose an expression with double quotes.

참고: 원본 배열이 비어 있는 경우 작업은 빈 배열을 만듭니다.Note: If the source array is empty, the action creates an empty array.

<key-name><key-name> 문자열String <expression> 의 결과에 할당되는 속성 이름입니다.The property name assigned to the result from <expression>

출력 배열의 모든 개체에 새 속성을 추가하려면 해당 속성의 <key-name>과 해당 속성 값의 <expression>을 제공합니다.To add a new property across all objects in the output array, provide a <key-name> for that property and an <expression> for the property value.

배열의 모든 개체에서 속성을 제거하려면 해당 속성의 <key-name>을 생략합니다.To remove a property from all objects in the array, omit the <key-name> for that property.

<expression><expression> 문자열String 원본 배열에서 항목을 변환하고 결과를 <key-name>에 할당하는 식입니다.The expression that transforms the item in the source array and assigns the result to <key-name>

Select 작업은 배열을 출력으로 만들기 때문에 이 출력을 사용하려는 모든 작업은 배열을 수락해야 하고, 그렇지 않은 경우 사용자가 소비자 작업이 수락하는 형식으로 배열을 변환해야 합니다.The Select action creates an array as output, so any action that wants to use this output must either accept an array, or you must convert the array into the type that the consumer action accepts. 예를 들어, 출력 배열을 문자열로 변환하려면 해당 배열을 Compose 작업으로 전달한 후 Compose 작업의 출력을 다른 작업에서 참조할 수 있습니다.For example, to convert the output array to a string, you can pass that array to the Compose action, and then reference the output from the Compose action in your other actions.

예제Example

이 작업 정의는 정수 배열에서 JSON 개체 배열을 만듭니다.This action definition creates a JSON object array from an integer array. 이 작업은 원본 배열을 반복하고, @item() 식을 사용하여 각 정수 값을 가져오고, 각 값을 각 JSON 개체의 "number" 속성에 할당합니다.The action iterates through the source array, gets each integer value by using the @item() expression, and assigns each value to the "number" property in each JSON object:

"Select": {
   "type": "Select",
   "inputs": {
      "from": [ 1, 2, 3 ],
      "select": { 
         "number": "@item()" 
      }
   },
   "runAfter": {}
},

이 작업이 만드는 배열은 다음과 같습니다.Here is the array that this action creates:

[ { "number": 1 }, { "number": 2 }, { "number": 3 } ]

다른 작업에서 이 배열 출력을 사용하려면 이 출력을 Compose 작업으로 전달합니다.To use this array output in other actions, pass this output into a Compose action:

"Compose": {
   "type": "Compose",
   "inputs": "@body('Select')",
   "runAfter": {
      "Select": [ "Succeeded" ]
   }
},

그러면 Compose 작업의 출력을 다른 작업(예: Office 365 Outlook - Send an email 작업)에서 사용할 수 있습니다.You can then use the output from the Compose action in your other actions, for example, the Office 365 Outlook - Send an email action:

"Send_an_email": {
   "type": "ApiConnection",
   "inputs": {
      "body": {
         "Body": "@{outputs('Compose')}",
         "Subject": "Output array from Select and Compose actions",
         "To": "<your-email@domain>"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "post",
      "path": "/Mail"
   },
   "runAfter": {
      "Compose": [ "Succeeded" ]
   }
},

테이블 작업Table action

이 작업은 배열에서 CSV 또는 HTML 테이블을 만듭니다.This action creates a CSV or HTML table from an array. JSON 개체가 있는 배열의 경우, 이 작업은 개체의 속성 이름에서 열 머리글을 자동으로 만듭니다.For arrays with JSON objects, this action automatically creates the column headers from the objects' property names. 기타 데이터 형식을 갖는 배열의 경우 열 머리글과 값을 지정해야 합니다.For arrays with other data types, you must specify the column headers and values. 예를 들어, 이 배열에는 이 작업이 열 머리글 이름에 사용할 수 있는 "ID" 및 "Product_Name" 속성이 포함되어 있습니다.For example, this array includes the "ID" and "Product_Name" properties that this action can use for the column header names:

[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]

"Create_<CSV | HTML>_table": {
   "type": "Table",
   "inputs": {
      "format": "<CSV | HTML>",
      "from": <array>,
      "columns": [ 
         {
            "header": "<column-name>",
            "value": "<column-value>"
         },
         {
            "header": "<column-name>",
            "value": "<column-value>"
         } 
      ]
   },
   "runAfter": {}
}

필수Required

Value 형식Type 설명Description
CSV 또는 HTML <><CSV or HTML> 문자열String 만들려는 테이블의 형식입니다.The format for the table you want to create
<array><array> 배열Array 테이블의 원본 항목을 제공하는 배열 또는 식입니다.The array or expression that provides the source items for the table

참고: 원본 배열이 비어 있는 경우 작업은 빈 테이블을 만듭니다.Note: If the source array is empty, the action creates an empty table.

선택 사항Optional

열 머리글 및 값을 지정하거나 사용자 지정하려면 columns 배열을 사용합니다.To specify or customize column headers and values, use the columns array. header-value 쌍이 같은 머리글 이름을 갖는 경우 해당 값은 해당 머리글 이름 아래의 동일한 열에 표시됩니다.When header-value pairs have the same header name, their values appear in the same column under that header name. 그렇지 않은 경우, 각 고유 머리글은 고유한 열을 정의합니다.Otherwise, each unique header defines a unique column.

Value 형식Type 설명Description
<column-name><column-name> 문자열String 열의 머리글 이름입니다.The header name for a column
<column-value><column-value> 모두Any 해당 열의 값입니다.The value in that column

예 1Example 1

현재 이 배열이 포함된 이전에 만든 "myItemArray" 변수가 있다고 가정합니다.Suppose you have a previously created "myItemArray" variable that currently contains this array:

[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]

이 작업 정의는 "myItemArray" 변수에서 CSV 테이블을 만듭니다.This action definition creates a CSV table from the "myItemArray" variable. from 속성에 사용되는 식은 variables() 함수를 사용하여 "myItemArray"에서 배열을 가져옵니다.The expression used by the from property gets the array from "myItemArray" by using the variables() function:

"Create_CSV_table": {
   "type": "Table",
   "inputs": {
      "format": "CSV",
      "from": "@variables('myItemArray')"
   },
   "runAfter": {}
}

이 작업이 만드는 CSV 테이블은 다음과 같습니다.Here is the CSV table that this action creates:

ID,Product_Name 
0,Apples 
1,Oranges 

예 2Example 2

이 작업 정의는 "myItemArray" 변수에서 HTML 테이블을 만듭니다.This action definition creates an HTML table from the "myItemArray" variable. from 속성에 사용되는 식은 variables() 함수를 사용하여 "myItemArray"에서 배열을 가져옵니다.The expression used by the from property gets the array from "myItemArray" by using the variables() function:

"Create_HTML_table": {
   "type": "Table",
   "inputs": {
      "format": "HTML",
      "from": "@variables('myItemArray')"
   },
   "runAfter": {}
}

이 작업이 만드는 HTML 테이블은 다음과 같습니다.Here is the HTML table that this action creates:

IDIDProduct_NameProduct_Name
00ApplesApples
11OrangesOranges

예 3Example 3

이 작업 정의는 "myItemArray" 변수에서 HTML 테이블을 만듭니다.This action definition creates an HTML table from the "myItemArray" variable. 그러나 이 예제에서는 기본 열 머리글 이름을 "Stock_ID" 및 "Description"으로 재정의하고, "Description" 열의 값에 "Organic"이라는 단어를 추가합니다.However, this example overrides the default column header names with "Stock_ID" and "Description", and adds the word "Organic" to the values in the "Description" column.

"Create_HTML_table": {
   "type": "Table",
   "inputs": {
      "format": "HTML",
      "from": "@variables('myItemArray')",
      "columns": [ 
         {
            "header": "Stock_ID",
            "value": "@item().ID"
         },
         {
            "header": "Description",
            "value": "@concat('Organic ', item().Product_Name)"
         }
      ]
    },
   "runAfter": {}
},

이 작업이 만드는 HTML 테이블은 다음과 같습니다.Here is the HTML table that this action creates:

Stock_IDStock_ID설명Description
00Organic ApplesOrganic Apples
11Organic OrangesOrganic Oranges

종료 작업Terminate action

이 작업은 워크플로 인스턴스에 대 한 실행을 중지 하 고 진행 중인 모든 작업을 취소 하 고 나머지 작업을 건너뛰고 지정 된 상태를 반환 합니다.This action stops the run for a workflow instance, cancels any actions in progress, skips any remaining actions, and returns the specified status. 예를 들어, 논리 앱이 오류 상태에서 완전히 종료되어야 할 경우 Terminate 작업을 사용할 수 있습니다.For example, you can use the Terminate action when your logic app must exit completely from an error state. 이 작업이 이미 완료된 작업에 영향을 주지 않으며 순차 루프를 포함하여 ForeachUntil 루프 내에 포함될 수 없습니다.This action doesn't affect already completed actions and can't appear inside Foreach and Until loops, including sequential loops.

"Terminate": {
   "type": "Terminate",
   "inputs": {
       "runStatus": "<status>",
       "runError": {
            "code": "<error-code-or-name>",
            "message": "<error-message>"
       }
   },
   "runAfter": {}
}

필수Required

Value 형식Type 설명Description
<status><status> 문자열String 실행에 대해 반환할 상태: "Failed", "Cancelled" 또는 "Succeded"The status to return for the run: "Failed", "Cancelled", or "Succeeded"

선택 사항Optional

"runStatus" 개체의 속성은 "runStatus" 속성이 "Failed" 상태로 설정될 때만 적용됩니다.The properties for the "runStatus" object apply only when the "runStatus" property is set to "Failed" status.

Value 형식Type 설명Description
<error-code-or-name><error-code-or-name> 문자열String 오류에 대한 코드 또는 이름입니다.The code or name for the error
<error-message><error-message> 문자열String 오류 및 앱 사용자가 수행할 수 있는 작업을 설명하는 메시지 또는 텍스트입니다.The message or text that describes the error and any actions the app user can take

예제Example

이 작업 정의는 워크플로 실행을 중지하고, 실행 상태를 "Failed"로 설정하고, 상태, 오류 코드 및 오류 메시지를 반환합니다.This action definition stops a workflow run, sets the run status to "Failed", and returns the status, an error code, and an error message:

"Terminate": {
    "type": "Terminate",
    "inputs": {
        "runStatus": "Failed",
        "runError": {
            "code": "Unexpected response",
            "message": "The service received an unexpected response. Please try again."
        }
   },
   "runAfter": {}
}

대기 작업Wait action

이 작업은 지정된 간격 동안 또는 지정된 시간이 도달할 때까지 워크플로 실행을 일시 중지합니다.This action pauses workflow execution for the specified interval or until the specified time, but not both.

지정된 간격Specified interval

"Delay": {
   "type": "Wait",
   "inputs": {
      "interval": {
         "count": <number-of-units>,
         "unit": "<interval>"
      }
   },
   "runAfter": {}
},

지정된 시간Specified time

"Delay_until": {
   "type": "Wait",
   "inputs": {
      "until": {
         "timestamp": "<date-time-stamp>"
      }
   },
   "runAfter": {}
},

필수Required

Value 형식Type 설명Description
<number-of-units><number-of-units> IntegerInteger Delay 작업에 대해 대기할 단위 수입니다.For the Delay action, the number of units to wait
<interval><interval> 문자열String Delay 작업에 대해 대기할 간격: "Second", "Minute", "Hour", "Day", "Week", "Month"For the Delay action, the interval to wait: "Second", "Minute", "Hour", "Day", "Week", "Month"
<date-time-stamp><date-time-stamp> 문자열String Delay Until 작업에 대해 실행을 다시 시작할 날짜 및 시간입니다.For the Delay Until action, the date and time to resume execution. 이 값은 UTC 날짜/시간 형식을 사용해야 합니다.This value must use the UTC date time format.

예 1Example 1

이 작업 정의는 15분 동안 워크플로를 일시 중지합니다.This action definition pauses the workflow for 15 minutes:

"Delay": {
   "type": "Wait",
   "inputs": {
      "interval": {
         "count": 15,
         "unit": "Minute"
      }
   },
   "runAfter": {}
},

예 2Example 2

이 작업 정의는 지정된 시간까지 워크플로를 일시 중지합니다.This action definition pauses the workflow until the specified time:

"Delay_until": {
   "type": "Wait",
   "inputs": {
      "until": {
         "timestamp": "2017-10-01T00:00:00Z"
      }
   },
   "runAfter": {}
},

워크플로 작업Workflow action

이 작업은 이전에 만든 다른 논리 앱을 호출합니다. 즉, 다른 논리 앱 워크플로를 포함하고 다시 시작할 수 있습니다.This action calls another previously created logic app, which means you can include and reuse other logic app workflows. 또한 자식 논리 앱이 응답을 반환할 경우, 중첩된 논리 앱을 따르는 작업에서도 자식 또는 중첩된 논리 앱의 출력을 사용할 수 있습니다.You can also use the outputs from the child or nested logic app in actions that follow the nested logic app, provided that the child logic app returns a response.

Logic Apps 엔진은 호출하려는 트리거에 대한 액세스 권한을 확인하므로 해당 트리거에 액세스할 수 있어야 합니다.The Logic Apps engine checks access to the trigger you want to call, so make sure you can access that trigger. 또한 중첩된 논리 앱은 다음 조건을 충족해야 합니다.Also, the nested logic app must meet these criteria:

  • Request 또는 HTTP 트리거와 같은 트리거는 중첩된 논리 앱을 호출 가능하게 만듭니다.A trigger makes the nested logic app callable, such as a Request or HTTP trigger

  • 부모 논리 앱과 동일한 Azure 구독The same Azure subscription as your parent logic app

  • 부모 논리 앱에서 중첩된 논리 앱의 출력을 사용하려면 중첩된 논리 앱에 Response 작업이 있어야 합니다.To use the outputs from the nested logic app in your parent logic app, the nested logic app must have a Response action

"<nested-logic-app-name>": {
   "type": "Workflow",
   "inputs": {
      "body": { "<body-content" },
      "headers": { "<header-content>" },
      "host": {
         "triggerName": "<trigger-name>",
         "workflow": {
            "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Logic/<nested-logic-app-name>"
         }
      }
   },
   "runAfter": {}
}

필수Required

Value 형식Type 설명Description
<nested-logic-app-name><nested-logic-app-name> 문자열String 호출하려는 논리 앱의 이름입니다.The name for the logic app you want to call
<trigger-name><trigger-name> 문자열String 호출하려는 중첩된 논리 앱의 트리거 이름입니다.The name for the trigger in the nested logic app you want to call
<Azure-subscription-ID><Azure-subscription-ID> 문자열String 중첩된 논리 앱의 Azure 구독 ID입니다.The Azure subscription ID for the nested logic app
<Azure-resource-group><Azure-resource-group> 문자열String 중첩된 논리 앱의 Azure 리소스 그룹 이름입니다.The Azure resource group name for the nested logic app
<nested-logic-app-name><nested-logic-app-name> 문자열String 호출하려는 논리 앱의 이름입니다.The name for the logic app you want to call

선택 사항Optional

Value 형식Type 설명Description
<header-content><header-content> JSON 개체JSON Object 호출과 함께 보낼 헤더입니다.Any headers to send with the call
<body-content><body-content> JSON 개체JSON Object 호출과 함께 전송할 메시지 콘텐츠입니다.Any message content to send with the call

OutputsOutputs

이 작업의 출력은 중첩된 논리 앱의 Response 작업에 따라 다릅니다.This action's outputs vary based on the nested logic app's Response action. 중첩된 논리 앱에 Response 작업이 없으면 출력은 비어 있습니다.If the nested logic app doesn't include a Response action, the outputs are empty.

예제Example

"Start_search" 작업이 성공적으로 완료되면 이 워크플로 작업 정의는 지정된 입력을 전달하는 "Get_product_information"이라는 다른 논리 앱을 호출합니다.After the "Start_search" action finishes successfully, this workflow action definition calls another logic app named "Get_product_information", which passes in the specified inputs:

"actions": {
   "Start_search": { <action-definition> },
   "Get_product_information": {
      "type": "Workflow",
      "inputs": {
         "body": {
            "ProductID": "24601",
         },
         "host": {
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/InventoryManager-RG/providers/Microsoft.Logic/Get_product_information",
            "triggerName": "Find_product"
         },
         "headers": {
            "content-type": "application/json"
         }
      },
      "runAfter": { 
         "Start_search": [ "Succeeded" ]
      }
   }
},

워크플로 제어 작업 세부 정보Control workflow action details

Foreach 작업Foreach action

이 루프 작업은 배열을 반복하고 각 배열 항목에 대해 작업을 수행합니다.This looping action iterates through an array and performs actions on each array item. 기본적으로 "for each" 루프는 최대 수의 루프까지 병렬로 실행됩니다.By default, the "for each" loop runs in parallel up to a maximum number of loops. 이 최대에 대해서는 제한 및 구성을 참조 하세요. "For each" 루프를 만드는 방법에 대해 알아봅니다.For this maximum, see Limits and config. Learn how to create "for each" loops.

"For_each": {
   "type": "Foreach",
   "actions": { 
      "<action-1>": { "<action-definition-1>" },
      "<action-2>": { "<action-definition-2>" }
   },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": <count>
      }
    },
    "operationOptions": "<operation-option>"
}

필수Required

Value 형식Type 설명Description
<action-1...n><action-1...n> 문자열String 각 배열 항목에 대해 실행되는 작업의 이름입니다.The names of the actions that run on each array item
<action-definition-1...n><action-definition-1...n> JSON 개체JSON Object 실행되는 작업에 대한 정의입니다.The definitions of the actions that run
<for-each-expression><for-each-expression> 문자열String 지정된 배열의 각 항목을 참조하는 식입니다.The expression that references each item in the specified array

선택 사항Optional

Value 형식Type 설명Description
<count><count> IntegerInteger 기본적으로 "for each" 루프 반복은 동시에 또는 병렬로 기본 제한까지 실행됩니다.By default, the "for each" loop iterations run at the same time, or in parallel up to the default limit. 새로운 <count> 값을 설정하여 이 제한을 변경하려면 "for each" 동시성 변경을 참조하세요.To change this limit by setting a new <count> value, see Change "for each" loop concurrency.
<operation-option><operation-option> 문자열String "for each" 루프를 병렬 방식이 아닌 순차적으로 실행하려면 <operation-option>을 Sequential로 설정하거나 <count>를 1로 설정합니다. 둘 중 하나만 설정해야 합니다.To run a "for each" loop sequentially, rather than in parallel, set either <operation-option> to Sequential or <count> to 1, but not both. 자세한 내용은 "for each" 루프를 순차적으로 실행을 참조하세요.For more information, see Run "for each" loops sequentially.

예제Example

이 "for each" 루프는 들어오는 이메일의 첨부 파일을 포함하여 배열의 각 항목에 대해 이메일을 전송합니다.This "for each" loop sends an email for each item in the array, which contains attachments from an incoming email. 루프는 첨부 파일을 포함하는 이메일을 첨부 파일을 검토하는 사람에게 전송합니다.The loop sends an email, including the attachment, to a person who reviews the attachment.

"For_each": {
   "type": "Foreach",
   "actions": {
      "Send_an_email": {
         "type": "ApiConnection",
         "inputs": {
            "body": {
               "Body": "@base64ToString(items('For_each')?['Content'])",
               "Subject": "Review attachment",
               "To": "Sophie.Owen@contoso.com"
                },
            "host": {
               "connection": {
                  "id": "@parameters('$connections')['office365']['connectionId']"
               }
            },
            "method": "post",
            "path": "/Mail"
         },
         "runAfter": {}
      }
   },
   "foreach": "@triggerBody()?['Attachments']",
   "runAfter": {}
}

트리거에서 출력으로 전달되는 배열만 지정하려면 이 식은 트리거 본문에서 <array-name> 배열을 가져옵니다.To specify only an array that is passed as output from the trigger, this expression gets the <array-name> array from the trigger body. 배열이 없는 경우 오류를 방지하기 위해 이 식은 ? 연산자를 사용합니다.To avoid a failure if the array doesn't exist, the expression uses the ? operator:

@triggerBody()?['<array-name>']

If 작업If action

조건문에 해당하는 이 작업은 조건을 나타내는 식을 평가하고, 조건이 true인지 또는 false인지에 따라 다른 분기를 실행합니다.This action, which is a conditional statement, evaluates an expression that represents a condition and runs a different branch based on whether the condition is true or false. 조건이 true이면 해당 조건은 “Succeeded” 상태로 표시됩니다.If the condition is true, the condition is marked with "Succeeded" status. 조건문을 만드는 방법을 알아보세요.Learn how to create conditional statements.

"Condition": {
   "type": "If",
   "expression": { "<condition>" },
   "actions": {
      "<action-1>": { "<action-definition>" }
   },
   "else": {
      "actions": {
        "<action-2>": { "<action-definition" }
      }
   },
   "runAfter": {}
}
Value 형식Type 설명Description
<condition><condition> JSON 개체JSON Object 평가할 조건으로, 식이 될 수 있습니다.The condition, which can be an expression, to evaluate
<action-1><action-1> JSON 개체JSON Object <condition>이 true로 평가될 때 실행할 작업입니다.The action to run when <condition> evaluates to true
<action-definition><action-definition> JSON 개체JSON Object 작업에 대한 정의입니다.The definition for the action
<action-2><action-2> JSON 개체JSON Object <condition>이 false로 평가될 때 실행할 작업입니다.The action to run when <condition> evaluates to false

actions 또는 else 개체의 작업은 다음 상태를 가져옵니다.The actions in the actions or else objects get these statuses:

  • "성공" - 성공적으로 실행되는 경우"Succeeded" when they run and succeed
  • "실패" - 실행되었지만 실패하는 경우"Failed" when they run and fail
  • "건너뜀" - 해당 분기가 실행되지 않는 경우"Skipped" when the respective branch doesn't run

예제Example

이 조건은 정수 변수가 0보다 큰 값을 가질 경우 워크플로가 웹 사이트를 확인하도록 지정합니다.This condition specifies that when the integer variable has a value greater than zero, the workflow checks a website. 변수가 0 이하인 경우 워크플로는 다른 웹 사이트를 확인합니다.If the variable is zero or less, the workflow checks a different website.

"Condition": {
   "type": "If",
   "expression": {
      "and": [ {
         "greater": [ "@variables('myIntegerVariable')", 0 ] 
      } ]
   },
   "actions": { 
      "HTTP - Check this website": {
         "type": "Http",
         "inputs": {
         "method": "GET",
            "uri": "http://this-url"
         },
         "runAfter": {}
      }
   },
   "else": {
      "actions": {
         "HTTP - Check this other website": {
            "type": "Http",
            "inputs": {
               "method": "GET",
               "uri": "http://this-other-url"
            },
            "runAfter": {}
         }
      }
   },
   "runAfter": {}
}

조건이 식을 사용하는 방법How conditions use expressions

조건에서 식을 사용하는 방법을 보여 주는 몇 가지 예제는 다음과 같습니다.Here are some examples that show how you can use expressions in conditions:

JSONJSON 결과Result
"expression": "@parameters('<hasSpecialAction>')""expression": "@parameters('<hasSpecialAction>')" 부울 식의 경우에만, 이 조건은 true로 평가되는 모든 값을 통과합니다.For Boolean expressions only, the condition passes for any value that evaluates to true.

다른 형식을 부울로 변환하려면 empty() 또는 equals() 함수를 사용합니다.To convert other types to Boolean, use these functions: empty() or equals().

"expression": "@greater(actions('<action>').output.value, parameters('<threshold>'))""expression": "@greater(actions('<action>').output.value, parameters('<threshold>'))" 비교 함수의 경우, 이 작업은 <action>의 출력이 <threshold> 값보다 클 경우에만 실행됩니다.For comparison functions, the action runs only when the output from <action> is more than the <threshold> value.
"expression": "@or(greater(actions('<action>').output.value, parameters('<threshold>')), less(actions('<same-action>').output.value, 100))""expression": "@or(greater(actions('<action>').output.value, parameters('<threshold>')), less(actions('<same-action>').output.value, 100))" 논리 함수 및 중첩된 부울 식을 만드는 경우, 이 작업은 <action>의 출력이 <threshold> 값보다 크거나 100보다 작을 때 실행됩니다.For logic functions and creating nested Boolean expressions, the action runs when the output from <action> is more than the <threshold> value or under 100.
"expression": "@equals(length(actions('<action>').outputs.errors), 0))""expression": "@equals(length(actions('<action>').outputs.errors), 0))" 배열에 항목이 있는지 여부를 확인하기 위해 배열 함수를 사용할 수 있습니다.You can use array functions for checking whether the array has any items. 이 작업은 errors 배열이 비어 있을 때 실행됩니다.The action runs when the errors array is empty.

범위 작업Scope action

이 작업은 범위에 속한 작업의 실행이 완료되면 해당 상태를 가져오는 범위로 작업을 논리적으로 그룹화합니다.This action logically groups actions into scopes, which get their own status after the actions in that scope finish running. 그런 후에는 범위의 상태를 사용하여 다른 작업의 실행 여부를 확인할 수 있습니다.You can then use the scope's status to determine whether other actions run. 범위 만드는 방법을 알아보세요.Learn how to create scopes.

"Scope": {
   "type": "Scope",
   "actions": {
      "<inner-action-1>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      },
      "<inner-action-2>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      }
   }
}

필수Required

Value 형식Type 설명Description
<inner-action-1...n><inner-action-1...n> JSON 개체JSON Object 범위 내에서 실행되는 하나 이상의 작업입니다.One or more actions that run inside the scope
<action-inputs><action-inputs> JSON 개체JSON Object 각 작업에 대한 입력입니다.The inputs for each action

Switch 작업Switch action

switch 문이라고도 하는 이 작업은 다른 작업을 사례로 구성하고 각 사례에 값을 할당합니다. 단, 기본 사례(있는 경우)는 예외입니다.This action, also known as a switch statement, organizes other actions into cases, and assigns a value to each case, except for the default case if one exists. 워크플로가 실행될 경우 Switch 작업은 식, 개체 또는 토큰의 값을 각 사례에 대해 지정된 값과 비교합니다.When your workflow runs, the Switch action compares the value from an expression, object, or token against the values specified for each case. Switch 작업이 일치하는 사례를 찾으면 워크플로는 해당 사례에 대해서만 작업을 실행합니다.If the Switch action finds a matching case, your workflow runs only the actions for that case. Switch 작업이 실행될 때마다 일치하는 사례만 존재하거나 일치하는 사례가 존재하지 않는 것입니다.Each time the Switch action runs, either only one matching case exists or no matches exist. 일치하는 사례가 존재하는 경우 Switch 작업은 기본 작업을 실행합니다.If no matches exist, the Switch action runs the default actions. switch 문을 만드는 방법을 알아보세요.Learn how to create switch statements.

"Switch": {
   "type": "Switch",
   "expression": "<expression-object-or-token>",
   "cases": {
      "Case": {
         "actions": {
           "<action-name>": { "<action-definition>" }
         },
         "case": "<matching-value>"
      },
      "Case_2": {
         "actions": {
           "<action-name>": { "<action-definition>" }
         },
         "case": "<matching-value>"
      }
   },
   "default": {
      "actions": {
         "<default-action-name>": { "<default-action-definition>" }
      }
   },
   "runAfter": {}
}

필수Required

Value 형식Type 설명Description
<expression-object-or-token><expression-object-or-token> 다름Varies 평가할 식, JSON 개체 또는 토큰입니다.The expression, JSON object, or token to evaluate
<action-name><action-name> 문자열String 일치하는 사례에 대해 실행할 작업의 이름입니다.The name of the action to run for the matching case
<action-definition><action-definition> JSON 개체JSON Object 일치하는 사례에 대해 실행할 작업에 대한 정의입니다.The definition for the action to run for the matching case
<matching-value><matching-value> 다름Varies 평가된 결과와 비교할 값입니다.The value to compare with the evaluated result

선택 사항Optional

Value 형식Type 설명Description
<default-action-name><default-action-name> 문자열String 일치하는 사례가 없는 경우에 실행할 기본 작업의 이름입니다.The name of the default action to run when no matching case exists
<default-action-definition><default-action-definition> JSON 개체JSON Object 일치하는 사례가 없는 경우에 실행할 작업에 대한 정의입니다.The definition for the action to run when no matching case exists

예제Example

이 작업 정의는 승인 요청 이메일에 응답하는 사용자가 "승인" 옵션을 선택했는지 또는 "거부" 옵션을 선택했는지를 평가합니다.This action definition evaluates whether the person responding to the approval request email selected the "Approve" option or the "Reject" option. 이 선택에 따라, Switch 작업은 일치하는 사례에 대해 작업을 실행합니다. 즉, 각 사례에 다른 내용을 사용하여 응답자에게 다른 이메일을 전송합니다.Based on this choice, the Switch action runs the actions for the matching case, which is to send another email to the responder but with different wording in each case.

"Switch": {
   "type": "Switch",
   "expression": "@body('Send_approval_email')?['SelectedOption']",
   "cases": {
      "Case": {
         "actions": {
            "Send_an_email": { 
               "type": "ApiConnection",
               "inputs": {
                  "Body": "Thank you for your approval.",
                  "Subject": "Response received", 
                  "To": "Sophie.Owen@contoso.com"
               },
               "host": {
                  "connection": {
                     "name": "@parameters('$connections')['office365']['connectionId']"
                  }
               },
               "method": "post",
               "path": "/Mail"
            },
            "runAfter": {}
         },
         "case": "Approve"
      },
      "Case_2": {
         "actions": {
            "Send_an_email_2": { 
               "type": "ApiConnection",
               "inputs": {
                  "Body": "Thank you for your response.",
                  "Subject": "Response received", 
                  "To": "Sophie.Owen@contoso.com"
               },
               "host": {
                  "connection": {
                     "name": "@parameters('$connections')['office365']['connectionId']"
                  }
               },
               "method": "post",
               "path": "/Mail"
            },
            "runAfter": {}     
         },
         "case": "Reject"
      }
   },
   "default": {
      "actions": { 
         "Send_an_email_3": { 
            "type": "ApiConnection",
            "inputs": {
               "Body": "Please respond with either 'Approve' or 'Reject'.",
               "Subject": "Please respond", 
               "To": "Sophie.Owen@contoso.com"
            },
            "host": {
               "connection": {
                  "name": "@parameters('$connections')['office365']['connectionId']"
               }
            },
            "method": "post",
            "path": "/Mail"
         },
         "runAfter": {} 
      }
   },
   "runAfter": {
      "Send_approval_email": [ 
         "Succeeded"
      ]
   }
}

Until 작업Until action

이 루프 작업은 지정된 조건이 충족될 때까지 실행되는 작업을 포함합니다.This loop action contains actions that run until the specified condition is true. 이 루프는 다른 모든 작업이 실행된 후에 마지막 단계로서 해당 조건을 확인합니다.The loop checks the condition as the last step after all other actions have run. "actions" 개체에 둘 이상의 작업을 포함할 수 있으며 작업은 하나 이상의 제한을 정의해야 합니다.You can include more than one action in the "actions" object, and the action must define at least one limit. "until" 루프를 만드는 방법을 알아보세요.Learn how to create "until" loops.

 "Until": {
   "type": "Until",
   "actions": {
      "<action-name>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      },
      "<action-name>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      }
   },
   "expression": "<condition>",
   "limit": {
      "count": <loop-count>,
      "timeout": "<loop-timeout>"
   },
   "runAfter": {}
}
Value 형식Type 설명Description
<action-name><action-name> 문자열String 루프 내에서 실행하려는 작업의 이름입니다.The name for the action you want to run inside the loop
<action-type><action-type> 문자열String 실행하려는 작업 유형입니다.The action type you want to run
<action-inputs><action-inputs> 다양Various 실행할 작업에 대한 입력입니다.The inputs for the action to run
<condition><condition> 문자열String 루프의 모든 작업이 실행 완료된 후에 평가할 조건 또는 식입니다.The condition or expression to evaluate after all the actions in the loop finish running
<loop-count><loop-count> IntegerInteger 작업이 실행할 수 있는 가장 많은 루프 수에 대한 제한입니다.The limit on the most number of loops that the action can run. 기본 count 값은 60입니다.The default count value is 60.
<loop-timeout><loop-timeout> 문자열String 루프가 실행될 수 있는 가장 긴 시간의 제한입니다.The limit on the longest time that the loop can run. 기본 timeout 값은 필요한 PT1HISO 8601 형식에 해당하는 입니다.The default timeout value is PT1H, which is the required ISO 8601 format.

예제Example

이 루프 작업 정의는 다음 조건 중 하나가 충족될 때까지 지정된 URL에 HTTP 요청을 보냅니다.This loop action definition sends an HTTP request to the specified URL until one of these conditions is met:

  • 요청은 "200 정상" 상태 코드의 응답을 받습니다.The request gets a response with the "200 OK" status code.
  • 루프는 60번 실행됩니다.The loop has run 60 times.
  • 루프는 1시간 동안 실행됩니다.The loop has run for one hour.
 "Run_until_loop_succeeds_or_expires": {
    "type": "Until",
    "actions": {
        "HTTP": {
            "type": "Http",
            "inputs": {
                "method": "GET",
                "uri": "http://myurl"
            },
            "runAfter": {}
        }
    },
    "expression": "@equals(outputs('HTTP')['statusCode'], 200)",
    "limit": {
        "count": 60,
        "timeout": "PT1H"
    },
    "runAfter": {}
}

웹후크 및 구독Webhooks and subscriptions

웹후크 기반 트리거 및 작업은 엔드포인트을 주기적으로 검사하지 않지만, 대신 해당 엔드포인트의 특정 이벤트 또는 데이터를 기다립니다.Webhook-based triggers and actions don't regularly check endpoints, but wait for specific events or data at those endpoints instead. 이러한 트리거 및 작업은 엔드포인트이 응답을 보낼 수 있는 콜백 URL을 제공하여 엔드포인트을 구독합니다.These triggers and actions subscribe to the endpoints by providing a callback URL where the endpoint can send responses.

subscribe 호출은 예를 들어 자격 증명이 갱신되거나 트리거 또는 작업의 입력 매개 변수가 변경될 때와 같이 워크플로가 어떤 식으로든 변경될 때 발생합니다.The subscribe call happens when the workflow changes in any way, for example, when credentials are renewed, or when the input parameters change for a trigger or action. 이 호출은 표준 HTTP 작업과 동일한 매개 변수를 사용합니다.This call uses the same parameters as standard HTTP actions.

다음 예제와 같이 작업으로 인해 트리거 또는 작업이 유효해지지 않을 때 unsubscribe 호출이 자동으로 발생합니다.The unsubscribe call automatically happens when an operation makes the trigger or action invalid, for example:

  • 트리거 삭제 또는 비활성화Deleting or disabling the trigger.
  • 워크플로 삭제 또는 비활성화Deleting or disabling the workflow.
  • 구독 삭제 또는 비활성화Deleting or disabling the subscription.

이러한 호출을 지원하려면 @listCallbackUrl() 식은 트리거 또는 작업에 대한 고유한 “콜백 URL”을 반환합니다.To support these calls, the @listCallbackUrl() expression returns a unique "callback URL" for the trigger or action. 이 URL은 서비스의 REST API를 사용하는 엔드포인트에 대한 고유 식별자를 나타냅니다.This URL represents a unique identifier for the endpoints that use the service's REST API. 이 함수에 대한 매개 변수는 웹후크 트리거 또는 작업과 같습니다.The parameters for this function are the same as the webhook trigger or action.

비동기 지속 시간 변경Change asynchronous duration

트리거 및 작업에 대해 limit.timeout 속성을 추가하여 비동기 패턴의 지속 시간을 특정 시간 간격으로 제한할 수 있습니다.For both triggers and actions, you can limit the duration for the asynchronous pattern to a specific time interval by adding the limit.timeout property. 이러한 방식으로, 간격이 경과할 때 작업이 완료되지 않은 경우 상태는 Cancelled 코드와 함께 ActionTimedOut로 표시됩니다.That way, if the action hasn't finished when the interval lapses, the action's status is marked as Cancelled with the ActionTimedOut code. timeout 속성은 ISO 8601 형식을 사용합니다.The timeout property uses ISO 8601 format.

"<trigger-or-action-name>": {
   "type": "Workflow | Webhook | Http | ApiConnectionWebhook | ApiConnection",
   "inputs": {},
   "limit": {
      "timeout": "PT10S"
   },
   "runAfter": {}
}

런타임 구성 설정Runtime configuration settings

트리거 및 작업에 대한 기본 런타임 동작을 트리거 또는 작업 정의의 runtimeConfiguration 속성을 사용하여 변경할 수 있습니다.You can change the default runtime behavior for triggers and actions with these runtimeConfiguration properties in the trigger or action definition.

속성Property 형식Type 설명Description 트리거 또는 작업Trigger or action
runtimeConfiguration.concurrency.runs IntegerInteger 동시에 실행 되거나 동시에 실행 될 수 있는 워크플로 인스턴스 수에 대 한 기본 제한을 변경 합니다.Change the default limit on the number of workflow instances that can run at the same time, or in parallel. 이 값은 백 엔드 시스템에서 수신하는 요청 수를 제한하는 데 도움이 됩니다.This value can help limit the number of requests that backend systems receive.

runs 속성을 1로 설정하면 operationOptions 속성을 SingleInstance로 설정할 때와 같은 결과가 나타납니다.Setting the runs property to 1 works the same way as setting the operationOptions property to SingleInstance. 두 속성 중 하나만 설정할 수 있습니다.You can set either property, but not both.

기본 제한을 변경하려면 트리거 동시성 변경 또는 순차적으로 인스턴스 트리거를 참조하세요.To change the default limit, see Change trigger concurrency or Trigger instances sequentially.

모든 트리거All triggers
runtimeConfiguration.concurrency.maximumWaitingRuns IntegerInteger 워크플로가 최대 동시 인스턴스를 이미 실행 중인 경우 실행을 대기할 수 있는 워크플로 인스턴스 수에 대 한 기본 제한을 변경 합니다.Change the default limit on the number of workflow instances that can wait to run when your workflow is already running the maximum concurrent instances. concurrency.runs 속성에서 동시성 제한을 변경할 수 있습니다.You can change the concurrency limit in the concurrency.runs property.

기본 제한을 변경하려면 대기 실행 제한 변경을 참조하세요.To change the default limit, see Change waiting runs limit.

모든 트리거All triggers
runtimeConfiguration.concurrency.repetitions IntegerInteger 동시에 또는 병렬로 실행할 수 있는 "for each" 루프 반복 수에 대한 기본 제한을 변경합니다.Change the default limit on the number of "for each" loop iterations that can run at the same time, or in parallel.

repetitions 속성을 1로 설정하면 operationOptions 속성을 SingleInstance로 설정할 때와 같은 결과가 나타납니다.Setting the repetitions property to 1 works the same way as setting the operationOptions property to SingleInstance. 두 속성 중 하나만 설정할 수 있습니다.You can set either property, but not both.

기본 제한을 변경하려면 "for each" 동시성 변경 또는 순차적으로 "for each" 루프 실행을 참조하세요.To change the default limit, see Change "for each" concurrency or Run "for each" loops sequentially.

작업:Action:

ForeachForeach

runtimeConfiguration.paginationPolicy.minimumItemCount IntegerInteger 을 지원 하 고 페이지 매김이 설정 된 특정 작업의 경우이 값은 검색할 최소 결과 수를 지정 합니다.For specific actions that support and have pagination turned on, this value specifies the minimum number of results to retrieve.

페이지 매김 기능을 설정 하려면 페이지 매김을 사용 하 여 대량 데이터, 항목 또는 결과 가져오기 를 참조 하세요.To turn on pagination, see Get bulk data, items, or results by using pagination

작업: 다양Action: Varied
runtimeConfiguration.secureData.properties 배열Array 이러한 설정은 많은 트리거와 작업에서 논리 앱의 실행 기록에서 입력, 출력 또는 둘 다를 숨깁니다.On many triggers and actions, these settings hide inputs, outputs, or both from the logic app's run history.

이 데이터를 보호 하려면 실행 기록에서 입력 및 출력 숨기기를 참조 하세요.To secure this data, see Hide inputs and outputs from run history.

대부분의 트리거 및 작업Most triggers and actions
runtimeConfiguration.staticResult JSON 개체JSON Object 을 지원 하 고 정적 결과 설정이 설정 된 작업의 경우 staticResult 개체에는 다음과 같은 특성이 있습니다.For actions that support and have the static result setting turned on, the staticResult object has these attributes:

현재 작업의 정적 결과 정의 이름을 참조 하는 name- 논리 앱 워크플로의 definition 특성에서 staticResults 특성 안에 표시 됩니다.- name, which references the current action's static result definition name, which appears inside the staticResults attribute in your logic app workflow's definition attribute. 자세한 내용은 워크플로 정의 언어에 대 한 정적 결과-스키마 참조를 참조 하세요.For more information, see Static results - Schema reference for Workflow Definition Language.

현재 동작에 대해 정적 결과가 Enabled 되는지 여부를 지정 하는 staticResultOptions을 - 합니다.- staticResultOptions, which specifies whether static results are Enabled or not for the current action.

정적 결과를 켜려면 정적 결과를 설정 하 여 모의 데이터를 사용 하 여 논리 앱 테스트 를 참조 하세요.To turn on static results, see Test logic apps with mock data by setting up static results

작업: 다양Action: Varied

작업 옵션Operation options

트리거 및 작업에 대한 기본 동작을 트리거 또는 작업 정의의 operationOptions 속성을 사용하여 변경할 수 있습니다.You can change the default behavior for triggers and actions with the operationOptions property in trigger or action definition.

작업 옵션Operation option 형식Type 설명Description 트리거 또는 작업Trigger or action
DisableAsyncPattern 문자열String 비동기가 아닌 동기적으로 HTTP 기반 작업을 실행합니다.Run HTTP-based actions synchronously, rather than asynchronously.

이 옵션을 설정하려면 동기적으로 작업 실행을 참조하세요.To set this option, see Run actions synchronously.

작업:Actions:

ApiConnection,ApiConnection,
HTTP,HTTP,
응답Response

OptimizedForHighThroughput 문자열String 5분당 작업 실행 수에 대한 기본 제한최대 제한으로 변경합니다.Change the default limit on the number of action executions per 5 minutes to the maximum limit.

이 옵션을 설정하려면 높은 처리량 모드에서 실행을 참조하세요.To set this option, see Run in high throughput mode.

모든 작업All actions
Sequential 문자열String "for each" 루프 반복을 모두 동시에 병렬로 실행하지 않고 한 번에 하나씩 실행합니다.Run "for each" loop iterations one at a time, rather than all at the same time in parallel.

이 옵션은 runtimeConfiguration.concurrency.repetitions 속성을 1로 설정할 때와 동일하게 작동합니다.This option works the same way as setting the runtimeConfiguration.concurrency.repetitions property to 1. 두 속성 중 하나만 설정할 수 있습니다.You can set either property, but not both.

이 옵션을 설정하려면 "for each" 루프를 순차적으로 실행을 참조하세요.To set this option, see Run "for each" loops sequentially.

작업:Action:

ForeachForeach

SingleInstance 문자열String 각 논리 앱 인스턴스에 대한 트리거를 순차적으로 실행하고, 다음 논리 앱 인스턴스를 트리거하기 전에 이전에 활성 상태이던 실행이 완료될 때까지 기다립니다.Run the trigger for each logic app instance sequentially and wait for the previously active run to finish before triggering the next logic app instance.

이 옵션은 runtimeConfiguration.concurrency.runs 속성을 1로 설정할 때와 동일하게 작동합니다.This option works the same way as setting the runtimeConfiguration.concurrency.runs property to 1. 두 속성 중 하나만 설정할 수 있습니다.You can set either property, but not both.

이 옵션을 설정하려면 인스턴스를 순차적으로 트리거를 참조하세요.To set this option, see Trigger instances sequentially.

모든 트리거All triggers

트리거 동시성 변경경Change trigger concurrency

기본적으로 논리 앱 인스턴스는 기본 제한까지 동시에 또는 동시에 실행 됩니다.By default, logic app instances run at the same time (concurrently or in parallel) up to the default limit. 따라서 각 트리거 인스턴스는 이전 워크플로 인스턴스의 실행이 완료 되기 전에 발생 합니다.So, each trigger instance fires before the preceding workflow instance finishes running. 이 제한은 백 엔드 시스템에서 수신하는 요청 수를 제한하는 데 도움이 됩니다.This limit helps control the number of requests that backend systems receive.

디자이너를 통해 동시성 설정을 변경하면 기본 트리거 정의에서 runtimeConfiguration.concurrency.runs 속성이 추가 또는 업데이트되고, 그 반대의 경우도 마찬가지이므로 기본 제한을 변경하려면 코드 보기 편집기 또는 Logic Apps 디자이너를 사용할 수 있습니다.To change the default limit, you can use either the code view editor or Logic Apps Designer because changing the concurrency setting through the designer adds or updates the runtimeConfiguration.concurrency.runs property in the underlying trigger definition and vice versa. 이 속성은 병렬로 실행할 수 있는 워크플로 인스턴스의 최대 수를 제어 합니다.This property controls the maximum number of workflow instances that can run in parallel. 동시성 제어를 사용 하도록 설정 하려는 경우에 대 한 몇 가지 고려 사항은 다음과 같습니다.Here are some considerations for when you want to enable the concurrency control:

  • 동시성을 사용 하는 경우 배열해제를 위해 SplitOn 한도가 심각 줄어듭니다.When concurrency is enabled, the SplitOn limit is signficantly reduced for debatching arrays. 항목 수가이 한도를 초과 하면 SplitOn 기능을 사용할 수 없습니다.If the number of items exceeds this limit, the SplitOn capability is disabled.

  • 동시성이 활성화 된 동안 장기 실행 논리 앱 인스턴스는 새 논리 앱 인스턴스가 대기 상태로 전환 될 수 있습니다.While concurrency is enabled, a long-running logic app instance might cause new logic app instances to enter a waiting state. 이 상태는 Azure Logic Apps 새 인스턴스를 만들지 못하게 하 고 동시 실행 수가 지정 된 최대 동시 실행 수 보다 작은 경우에도 발생 합니다.This state prevents Azure Logic Apps from creating new instances and happens even when the number of concurrent runs is less than the specified maximum number of concurrent runs.

    • 이 상태를 중단 하려면 아직 실행중인 가장 이른 인스턴스를 취소 합니다.To interrupt this state, cancel the earliest instances that are still running.

      1. 논리 앱의 메뉴에서 개요를 선택 합니다.On your logic app's menu, select Overview.

      2. 실행 기록 섹션에서 아직 실행 중인 가장 이른 인스턴스를 선택 합니다. 예를 들면 다음과 같습니다.In the Runs history section, select the earliest instance that is still running, for example:

        가장 이른 실행 인스턴스 선택

        아직 실행 중인 인스턴스만 보려면 모두 목록을 열고 실행 중을 선택 합니다.To view only instances that are still running, open the All list, and select Running.

      3. 논리 앱 실행에서 실행 취소를 선택 합니다.Under Logic app run, select Cancel run.

        가장 오래 실행 되는 인스턴스 찾기

    • 이러한 가능성을 해결 하려면 이러한 실행을 보유할 수 있는 작업에 시간 제한을 추가 합니다.To work around this possibility, add a timeout to any action that might hold up these runs. 코드 편집기에서 작업 하는 경우 비동기 기간 변경을 참조 하세요.If you're working in the code editor, see Change asynchronous duration. 그렇지 않고 디자이너를 사용 하는 경우 다음 단계를 수행 합니다.Otherwise, if you're using the designer, follow these steps:

      1. 논리 앱에서 시간 제한을 추가 하려는 작업의 오른쪽 위 모서리에서 줄임표 ( ... ) 단추를 선택한 다음 설정을 선택 합니다.In your logic app, on the action where you want to add a timeout, in the upper-right corner, select the ellipses (...) button, and then select Settings.

        작업 설정 열기

      2. 제한시간 아래에서 ISO 8601 형식으로 제한 시간을 지정 합니다.Under Timeout, specify the timeout duration in ISO 8601 format.

        제한 시간 지정

  • 논리 앱을 순차적으로 실행 하려면 코드 보기 편집기나 디자이너를 사용 하 여 1 트리거의 동시성을 설정 하면 됩니다.If you want to run your logic app sequentially, you can set the trigger's concurrency to 1 either by using the code view editor or the designer. 그러나 코드 뷰 편집기에서 트리거의 operationOptions 속성을 SingleInstance로 설정 하지 않습니다.However, don't also set the trigger's operationOptions property to SingleInstance in the code view editor. 그렇지 않으면 유효성 검사 오류가 표시됩니다.Otherwise, you get a validation error. 자세한 내용은 인스턴스를 순차적으로 트리거를 참조하세요.For more information, see Trigger instances sequentially.

코드 보기에서 편집Edit in code view

기본 트리거 정의에서 runtimeConfiguration.concurrency.runs1 사이의 값을 갖는 50 속성을 추가하거나 속성을 이 값으로 업데이트합니다.In the underlying trigger definition, add or update the runtimeConfiguration.concurrency.runs property to a value between 1 and 50 inclusively.

동시 실행 수를 10 인스턴스로 제한하는 예제는 다음과 같습니다.Here is an example that limits concurrent runs to 10 instances:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 10
      }
   }
}

Logic Apps 디자이너에서 편집Edit in Logic Apps Designer

  1. 트리거의 오른쪽 위 모서리에서 줄임표 단추 (...)를 선택한 다음, 설정을 선택합니다.In the trigger's upper-right corner, choose the ellipses (...) button, and then choose Settings.

  2. 동시성 제어 아래에서 제한켜기로 설정합니다.Under Concurrency Control, set Limit to On.

  3. 병렬도 슬라이더를 원하는 값으로 끕니다.Drag the Degree of Parallelism slider to the value you want. 논리 앱을 순차적으로 실행하려면 슬라이더 값을 1로 끕니다.To run your logic app sequentially, drag the slider value to 1.

"for each" 동시성 변경Change "for each" concurrency

기본적으로 "for each" 루프 반복은 동시에 또는 병렬로 기본 제한까지 실행됩니다.By default, "for each" loop iterations run at the same time, or in parallel, up to the default limit. 디자이너를 통해 동시성 설정을 변경하면 기본 "for each" 작업 정의에서 runtimeConfiguration.concurrency.repetitions 속성이 추가 또는 업데이트되고, 그 반대의 경우도 마찬가지이므로 기본 제한을 변경하려면 코드 보기 편집기 또는 Logic Apps 디자이너를 사용할 수 있습니다.To change the default limit, you can use either the code view editor or Logic Apps Designer because changing the concurrency setting through the designer adds or updates the runtimeConfiguration.concurrency.repetitions property in the underlying "for each" action definition and vice versa. 이 속성은 병렬로 실행할 수 있는 최대 반복 수를 제어합니다.This property controls the maximum number of iterations that can run in parallel.

참고

디자이너 또는 코드 보기 편집기를 사용하여 "for each" 작업이 순차적으로 실행되도록 설정할 경우 코드 보기 편집기에서 작업의 operationOptions 속성을 Sequential로 설정하지 마세요.If you set the "for each" action to run sequentially either by using the designer or the code view editor, don't set the action's operationOptions property to Sequential in the code view editor. 그렇지 않으면 유효성 검사 오류가 표시됩니다.Otherwise, you get a validation error. 자세한 내용은 "for each" 루프를 순차적으로 실행을 참조하세요.For more information, see Run "for each" loops sequentially.

코드 보기에서 편집Edit in code view

기본 "for each" 정의에서 runtimeConfiguration.concurrency.repetitions1 사이의 값을 갖는 50 속성을 추가하거나 속성을 이 값으로 업데이트합니다.In the underlying "for each" definition, add or update the runtimeConfiguration.concurrency.repetitions property to a value between 1 and 50 inclusively.

동시 실행 수를 10번 반복으로 제한하는 예제는 다음과 같습니다.Here is an example that limits concurrent runs to 10 iterations:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 10
      }
   }
}

Logic Apps 디자이너에서 편집Edit in Logic Apps Designer

  1. For each 작업의 오른쪽 위 모서리에서 줄임표(...) 단추를 선택하고 설정을 선택합니다.In the For each action, from the upper-right corner, choose the ellipses (...) button, and then choose Settings.

  2. 동시성 제어 아래에서 동시성 제어켜기로 설정합니다.Under Concurrency Control, set Concurrency Control to On.

  3. 병렬도 슬라이더를 원하는 값으로 끕니다.Drag the Degree of Parallelism slider to the value you want. 논리 앱을 순차적으로 실행하려면 슬라이더 값을 1로 끕니다.To run your logic app sequentially, drag the slider value to 1.

실행 대기 제한 변경Change waiting runs limit

기본적으로 논리 앱 워크플로 인스턴스는 모두 동시에 실행 되거나 기본 제한까지 동시에 실행 됩니다.By default, logic app workflow instances all run at the same time, concurrently, or in parallel up to the default limit. 각 트리거 인스턴스는 이전에 활성화 된 워크플로 인스턴스의 실행이 완료 되기 전에 발생 합니다.Each trigger instance fires before the previously active workflow instance finishes running. 이 기본 제한을 변경할수 있지만, 워크플로 인스턴스 수가 새 동시성 한도에 도달 하는 경우 다른 모든 새 인스턴스는 실행 대기 해야 합니다.Although you can change this default limit, when the number of workflow instances reaches the new concurrency limit, any other new instances must wait to run.

대기할 수 있는 실행 수에도 기본 제한 있습니다. 이 제한은 변경 가능합니다.The number of runs that can wait also has a default limit, which you can change. 그러나 논리 앱이 대기 중인 실행 한도에 도달하면 Logic Apps 엔진은 새 실행을 더 이상 허용하지 않습니다.However, after your logic app reaches the limit on waiting runs, the Logic Apps engine no longer accepts new runs. 요청 및 웹후크 트리거는 429 오류를 반환하며, 되풀이 트리거는 폴링 시도를 건너뛰기 시작합니다.Request and webhook triggers return 429 errors, and recurring triggers start skipping polling attempts.

대기 중인 실행에 대한 기본 제한을 변경하려면 기본 트리거 정의에서 값이 runtimeConfiguration.concurency.maximumWaitingRuns~0 사이인 100 속성을 추가합니다.To change the default limit on waiting runs, in the underlying trigger definition, add the runtimeConfiguration.concurency.maximumWaitingRuns property with a value between 0 and 100.

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "maximumWaitingRuns": 50
      }
   }
}

인스턴스를 순차적으로 트리거Trigger instances sequentially

이전 인스턴스의 실행이 완료 된 후에만 각 논리 앱 워크플로 인스턴스를 실행 하려면 트리거를 순차적으로 실행 하도록 설정 합니다.To run each logic app workflow instance only after the previous instance finishes running, set the trigger to run sequentially. 또한 디자이너를 통해 동시성 설정을 변경하면 기본 트리거 정의에서 runtimeConfiguration.concurrency.runs 속성이 추가 또는 업데이트되고, 그 반대의 경우도 마찬가지이므로 코드 보기 편집기 또는 Logic Apps 디자이너를 사용할 수 있습니다.You can use either the code view editor or Logic Apps Designer because changing the concurrency setting through designer also adds or updates the runtimeConfiguration.concurrency.runs property in the underlying trigger definition and vice versa.

참고

디자이너 또는 코드 보기 편집기를 사용하여 순차적으로 실행되도록 트리거를 설정할 경우 코드 보기 편집기에서 트리거의 operationOptions 속성을 Sequential로 설정하지 마세요.When you set a trigger to run sequentially either by using the designer or the code view editor, don't set the trigger's operationOptions property to Sequential in the code view editor. 그렇지 않으면 유효성 검사 오류가 표시됩니다.Otherwise, you get a validation error.

코드 보기에서 편집Edit in code view

트리거 정의에서 다음 속성 중 하나만 설정합니다.In the trigger definition, set either of these properties, but not both.

runtimeConfiguration.concurrency.runs 속성을 1로 설정합니다.Set the runtimeConfiguration.concurrency.runs property to 1:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 1
      }
   }
}

-또는--or-

operationOptions 속성을 SingleInstance로 설정합니다.Set the operationOptions property to SingleInstance:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "operationOptions": "SingleInstance"
}

Logic Apps 디자이너에서 편집Edit in Logic Apps Designer

  1. 트리거의 오른쪽 위 모서리에서 줄임표 단추 (...)를 선택한 다음, 설정을 선택합니다.In the trigger's upper-right corner, choose the ellipses (...) button, and then choose Settings.

  2. 동시성 제어 아래에서 제한켜기로 설정합니다.Under Concurrency Control, set Limit to On.

  3. 병렬도 슬라이더를 숫자 1로 끕니다.Drag the Degree of Parallelism slider to the number 1.

"for each" 루프를 순차적으로 실행Run "for each" loops sequentially

"for each" 루프 반복을 이전 반복 실행이 끝난 후에만 실행하려면 "for each" 작업이 순차적으로 실행되도록 설정합니다.To run a "for each" loop iteration only after the previous iteration finishes running, set the "for each" action to run sequentially. 또한 디자이너를 통해 작업의 동시성을 변경하면 기본 작업 정의에서 runtimeConfiguration.concurrency.repetitions 속성이 추가 또는 업데이트되고, 그 반대의 경우도 마찬가지이므로 코드 보기 편집기 또는 Logic Apps 디자이너를 사용할 수 있습니다.You can use either the code view editor or Logic Apps Designer because changing the action's concurrency through designer also adds or updates the runtimeConfiguration.concurrency.repetitions property in the underlying action definition and vice versa.

참고

디자이너 또는 코드 보기 편집기를 사용하여 "for each" 작업이 순차적으로 실행되도록 설정할 경우 코드 보기 편집기에서 작업의 operationOptions 속성을 Sequential로 설정하지 마세요.When you set a "for each" action to run sequentially either by using the designer or code view editor, don't set the action's operationOptions property to Sequential in the code view editor. 그렇지 않으면 유효성 검사 오류가 표시됩니다.Otherwise, you get a validation error.

코드 보기에서 편집Edit in code view

작업 정의에서 다음 속성 중 하나만 설정합니다.In the action definition, set either of these properties, but not both.

runtimeConfiguration.concurrency.repetitions 속성을 1로 설정합니다.Set the runtimeConfiguration.concurrency.repetitions property to 1:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 1
      }
   }
}

-또는--or-

operationOptions 속성을 Sequential로 설정합니다.Set the operationOptions property to Sequential:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "operationOptions": "Sequential"
}

Logic Apps 디자이너에서 편집Edit in Logic Apps Designer

  1. For each 작업의 오른쪽 위 모서리에서 줄임표 단추 (...)를 선택한 다음, 설정을 선택합니다.In the For each action's upper-right corner, choose the ellipses (...) button, and then choose Settings.

  2. 동시성 제어 아래에서 동시성 제어켜기로 설정합니다.Under Concurrency Control, set Concurrency Control to On.

  3. 병렬도 슬라이더를 숫자 1로 끕니다.Drag the Degree of Parallelism slider to the number 1.

작업을 동기적으로 실행Run actions synchronously

기본적으로 모든 HTTP 기반 작업은 표준 비동기 작업 패턴을 따릅니다.By default, all HTTP-based actions follow the standard asynchronous operation pattern. 이 패턴은 HTTP 기반 작업이 지정된 엔드포인트으로 요청을 보낼 때 원격 서버가 "202 수락됨" 응답을 다시 보내도록 지정합니다.This pattern specifies that when an HTTP-based action sends a request to the specified endpoint, the remote server sends back a "202 ACCEPTED" response. 이 응답은 서버가 처리 요청을 수락했음을 의미합니다.This reply means the server accepted the request for processing. Logic Apps 엔진은 처리가 중지될 때까지 응답(202 이외의 응답)의 위치 헤더가 지정하는 URL을 계속 확인합니다.The Logic Apps engine keeps checking the URL specified by the response's location header until processing stops, which is any non-202 response.

그러나 요청에는 제한 시간이 있으므로 장기 실행 작업의 경우 작업의 입력 아래에서 operationOptions 속성을 추가하고 DisableAsyncPattern으로 설정하여 비동기 동작을 사용하지 않도록 설정할 수 있습니다.However, requests have a timeout limit, so for long-running actions, you can disable the asynchronous behavior by adding and setting the operationOptions property to DisableAsyncPattern under the action's inputs.

"<some-long-running-action>": {
   "type": "Http",
   "inputs": { "<action-inputs>" },
   "operationOptions": "DisableAsyncPattern",
   "runAfter": {}
}

높은 처리량 모드에서 실행Run in high throughput mode

단일 논리 앱 정의의 경우 5 분 마다 실행 되는 작업 수에는 기본 제한이있습니다.For a single logic app definition, the number of actions that execute every 5 minutes has a default limit. 이 제한을 가능한 최대로 높이려면 operationOptions 속성을 OptimizedForHighThroughput으로 설정합니다.To raise this limit to the maximum possible, set the operationOptions property to OptimizedForHighThroughput. 이렇게 설정하면 논리 앱이 "높은 처리량" 모드가 됩니다.This setting puts your logic app into "high throughput" mode.

참고

높은 처리량 모드는 미리 보기로 제공됩니다.High throughput mode is in preview. 또는 필요에 따라 둘 이상의 논리 앱에 워크로드를 분산할 수도 있습니다.You can also distribute a workload across more than one logic app as necessary.

"<action-name>": {
   "type": "<action-type>",
   "inputs": { "<action-inputs>" },
   "operationOptions": "OptimizedForHighThroughput",
   "runAfter": {}
}

트리거 및 작업 인증Authenticate triggers and actions

HTTP 및 HTTPS 끝점은 서로 다른 종류의 인증을 지원 합니다.HTTP and HTTPS endpoints support different kinds of authentication. 이러한 끝점에 액세스 하는 아웃 바운드 호출 또는 요청을 만드는 데 사용 하는 트리거 또는 작업에 따라 다양 한 인증 유형 범위에서 선택할 수 있습니다.Based on the trigger or action that you use to make outbound calls or requests to access these endpoints, you can select from different ranges of authentication types. 자세한 내용은 아웃 바운드 호출에 인증 추가를 참조 하세요.For more information, see Add authentication to outbound calls.

다음 단계Next steps