Справочник Schema для типов триггеров и действий в приложениях логики AzureSchema 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. Чтобы найти конкретные триггеры и действия разъема, которые можно использовать в логических приложениях, смотрите список под обзором Connectors.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> СтрокаString Имя триггераThe name for the trigger
<триггерный тип><trigger-type> СтрокаString Тип триггера, например Http или ApiConnectionThe trigger type such as "Http" or "ApiConnection"
<триггерные вводы><trigger-inputs> Объект JSONJSON Object Входные данные, определяющие режим работы триггераThe inputs that define the trigger's behavior
<единица времени><time-unit> СтрокаString Единица времени, которая описывает, как часто срабатывает триггер: "секунда", "минута", "час", "день", "неделя" или "месяц"The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<количество единиц времени><number-of-time-units> Целое числоInteger Значение, указывающее, как часто триггер срабатывает на основе частоты, т.е. количество единиц времени, которое необходимо выждать, прежде чем триггер сработает снова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, а значение частоты — Month, то повтор будет происходить каждые 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> ArrayArray Массив, содержащий одно или несколько условий, определяющих, следует ли запускать рабочий процесс.An array that contains one or more conditions that determine whether to run the workflow. Доступно только для триггеров.Available only for triggers.
<варианты выполнения-конфигурации><runtime-config-options> Объект JSONJSON Object Можно изменить поведение триггера во время выполнения, задав свойства runtimeConfiguration.You can change trigger runtime behavior by setting runtimeConfiguration properties. Дополнительные сведения см. в разделе Настройки конфигурации среды выполнения.For more information, see Runtime configuration settings.
<сплитон-выражение><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> Строка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.
ПовторенияRecurrence Активируется на основе определенного расписания.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.
ЗапросRequest Создает вызываемую конечную точку для приложения логики, также называется "ручным" триггером.Creates a callable endpoint for your logic app and is also known as a "manual" trigger. Например, ознакомьтесь со статьей Вызовы, срабатывания триггеров и создание вложенных рабочих процессов в приложениях логики.For example, see Call, trigger, or nest workflows with HTTP endpoints.

Управляемые триггеры APIManaged API triggers

Тип триггераTrigger type ОписаниеDescription
ApiConnectionApiConnection Проверяет или опрашивает конечную точку с помощью управляемых Майкрософт интерфейсов API.Checks or polls an endpoint by using Microsoft-managed APIs.
ApiConnectionWebhookApiConnectionWebhook Создает вызываемую конечную точку для приложения логики, вызывая управляемые Майкрософт интерфейсы API, для подписки или отмены подписки.Creates a callable endpoint for your logic app by calling Microsoft-managed APIs to subscribe and unsubscribe.

Триггеры. Подробная справочная информацияTriggers - Detailed reference

Триггер APIConnectionAPIConnection trigger

Этот триггер проверяет или опрашивает конечную точку с помощью управляемых Майкрософт интерфейсов 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> СтрокаString Имя подключения к управляемому API, который используется рабочим процессомThe name for the connection to the managed API that the workflow uses
<тип метода><method-type> СтрокаString Метод HTTP для обмена данными с управляемым API: GET, PUT, POST, PATCH или DELETEThe HTTP method for communicating with the managed API: "GET", "PUT", "POST", "PATCH", "DELETE"
<апи-операции><api-operation> СтрокаString Операция API для вызоваThe API operation to call
<единица времени><time-unit> СтрокаString Единица времени, которая описывает, как часто срабатывает триггер: "секунда", "минута", "час", "день", "неделя" или "месяц"The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<количество единиц времени><number-of-time-units> Целое числоInteger Значение, указывающее, как часто триггер срабатывает на основе частоты, т.е. количество единиц времени, которое необходимо выждать, прежде чем триггер сработает снова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, а значение частоты — Month, то повтор будет происходить каждые 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> Объект JSONJSON 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> Объект JSONJSON 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> Целое числоInteger По умолчанию экземпляры рабочего процесса работают в одно и то же время (одновременно или параллельно) до предела по умолчанию.By default, workflow instances run at the same time (concurrently 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-очередь><max-runs-queue> Целое числоInteger Когда рабочий процесс уже работает с максимальным числом экземпляров, которые можно изменить в зависимости от 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> СтрокаString Для триггеров, возвращающих массивы, это выражение ссылается на массив, который необходимо использовать, чтобы вы могли создать и запустить экземпляр рабочего процесса для каждого элемента массива, а не использовали цикл Foreach.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> СтрокаString Поведение по умолчанию можно изменить, задав свойство operationOptions.You can change the default behavior by setting the operationOptions property. Дополнительные сведения см. в разделе Варианты операций.For more information, see Operation options.

ВыходыOutputs

ЭлементElement ТипType ОписаниеDescription
Заголовкиheaders Объект JSONJSON Object Заголовки из ответаThe headers from the response
текстbody Объект JSONJSON Object Текст из ответаThe body from the response
Код состоянияstatus code Целое числоInteger Код состояния из ответа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
   }
}

Триггер ApiConnectionWebhookApiConnectionWebhook trigger

Этот триггер отправляет запрос подписке в конечную точку с помощью управляемых Майкрософт интерфейсов 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> СтрокаString Имя подключения к управляемому API, который используется рабочим процессомThe name for the connection to the managed API that the workflow uses
<содержание тела><body-content> Объект JSONJSON Object Любое содержимое сообщения для отправки на управляемый API в качестве полезных данныхAny message content to send as payload to the managed API

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<повторная попытка-поведение><retry-behavior> Объект JSONJSON 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> Объект JSONJSON Object Все параметры запроса для включения в вызов APIAny 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> Целое числоInteger По умолчанию экземпляры рабочего процесса работают в одно и то же время (одновременно или параллельно) до предела по умолчанию.By default, workflow instances run at the same time (concurrently 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-очередь><max-runs-queue> Целое числоInteger Когда рабочий процесс уже работает с максимальным числом экземпляров, которые можно изменить в зависимости от 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> СтрокаString Для триггеров, возвращающих массивы, это выражение ссылается на массив, который необходимо использовать, чтобы вы могли создать и запустить экземпляр рабочего процесса для каждого элемента массива, а не использовали цикл Foreach.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> СтрокаString Поведение по умолчанию можно изменить, задав свойство operationOptions.You can change the default behavior by setting the operationOptions property. Дополнительные сведения см. в разделе Варианты операций.For more information, see Operation options.

ПримерExample

Это определение триггера подписывается на API Office 365 Outlook, предоставляет URL-адрес обратного вызова на конечную точку API и ожидает ответа конечной точки при получении нового электронного письма.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']"
}

Триггер HTTPHTTP 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> СтрокаString Метод использования для отправки исходящего запроса: "GET", "PUT", "POST", "PATCH" или "DELETE"The method to use for sending the outgoing request: "GET", "PUT", "POST", "PATCH", or "DELETE"
uri <HTTP-или-HTTPS-конечная точка-URL><HTTP-or-HTTPS-endpoint-URL> СтрокаString URL-адрес HTTP или HTTPS, где требуется отправить исходящий запрос.The HTTP or HTTPS endpoint URL where you want to send the outgoing request. Максимальный размер строки: 2 КБ.Maximum string size: 2 KB

Для службы или ресурса Azure этот синтаксис URI включает идентификатор ресурсов и путь к ресурсу, к которому вы хотите получить доступ.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> СтрокаString Единица времени, которая описывает, как часто срабатывает триггер: "секунда", "минута", "час", "день", "неделя" или "месяц"The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
interval <количество единиц времени><number-of-time-units> Целое числоInteger Значение, указывающее, как часто триггер срабатывает на основе частоты, т.е. количество единиц времени, которое необходимо выждать, прежде чем триггер сработает снова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, а значение частоты — Month, то повтор будет происходить каждые 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> Объект JSONJSON 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> Объект JSONJSON 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> Объект JSONJSON Object Содержимое сообщения для отправки в качестве полезных данных с запросомThe message content to send as payload with the request
authentication <значения аутентификации типа и свойства><authentication-type-and-property-values> Объект JSONJSON Object Модель проверки подлинности, которую использует запрос для проверки подлинности исходящих запросов.The authentication model that the request uses for authenticating outbound requests. Для получения дополнительной информации см. Добавить аутентификацию к исходящим вызовам.For more information, see Add authentication to outbound calls. Помимо планировщика поддерживается свойство 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> Объект JSONJSON 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> Целое числоInteger По умолчанию экземпляры рабочего процесса работают в одно и то же время (одновременно или параллельно) до предела по умолчанию.By default, workflow instances run at the same time (concurrently 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-очередь><max-runs-queue> Целое числоInteger Когда рабочий процесс уже работает с максимальным числом экземпляров, которые можно изменить в зависимости от 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> СтрокаString Поведение по умолчанию можно изменить, задав свойство operationOptions.You can change the default behavior by setting the operationOptions property. Дополнительные сведения см. в разделе Варианты операций.For more information, see Operation options.

ВыходыOutputs

ЭлементElement ТипType ОписаниеDescription
Заголовкиheaders Объект JSONJSON Object Заголовки из ответаThe headers from the response
текстbody Объект JSONJSON Object Текст из ответаThe body from the response
Код состоянияstatus code Целое числоInteger Код состояния из ответа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 OK" инициирует запуск.The "200 OK" status code starts a run. Другие коды состояния — нет.Any other status code doesn't start a run.
Заголовок retry-afterRetry-after header нетNo Количество секунд до тех пор, пока приложение логики снова не опроверчит конечную точкуThe number of seconds until your logic app polls the endpoint again
Заголовок LocationLocation 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. Следующая попытка происходит через одну минуту с учетом определенного повторения.The next attempt happens in one minute, subject to the defined recurrence. Если определенное повторение составляет менее минуты, то приоритет имеет заголовок 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.

Триггер httpWebhookHTTPWebhook 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> СтрокаString Метод HTTP, используемый для запроса подписки: "GET", "PUT", "POST", "PATCH" или "DELETE"The HTTP method to use for the subscription request: "GET", "PUT", "POST", "PATCH", or "DELETE"
<конечная точка-подписка-URL><endpoint-subscribe-URL> СтрокаString URL-адрес конечной точки для отправки запроса на подпискуThe endpoint URL where to send the subscription request

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<тип метода><method-type> СтрокаString Метод HTTP, используемый для запроса отмены: GET, PUT, POST, PATCH или DELETEThe HTTP method to use for the cancellation request: "GET", "PUT", "POST", "PATCH", or "DELETE"
<конечная точка-отписаться-URL><endpoint-unsubscribe-URL> СтрокаString URL-адрес конечной точки для отправки запроса на отменуThe endpoint URL where to send the cancellation request
<содержание тела><body-content> СтрокаString Любое содержимое сообщения для отправки в запросе на подписку или отменуAny message content to send in the subscription or cancellation request
<тип аутентификации><authentication-type> Объект JSONJSON Object Модель проверки подлинности, которую использует запрос для проверки подлинности исходящих запросов.The authentication model that the request uses for authenticating outbound requests. Для получения дополнительной информации см. Добавить аутентификацию к исходящим вызовам.For more information, see Add authentication to outbound calls.
<повторная попытка-поведение><retry-behavior> Объект JSONJSON 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> Целое числоInteger По умолчанию экземпляры рабочего процесса работают одновременно (одновременно или параллельно) до предела по умолчанию.By default, workflow instances all run at the same time (concurrently 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-очередь><max-runs-queue> Целое числоInteger Когда рабочий процесс уже работает с максимальным числом экземпляров, которые можно изменить в зависимости от 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> СтрокаString Поведение по умолчанию можно изменить, задав свойство operationOptions.You can change the default behavior by setting the operationOptions property. Дополнительные сведения см. в разделе Варианты операций.For more information, see Operation options.

ВыходыOutputs

ЭлементElement ТипType ОписаниеDescription
Заголовкиheaders Объект JSONJSON Object Заголовки из ответаThe headers from the response
текстbody Объект JSONJSON Object Текст из ответаThe body from the response
Код состоянияstatus code Целое числоInteger Код состояния из ответа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> СтрокаString Единица времени, которая описывает, как часто срабатывает триггер: "секунда", "минута", "час", "день", "неделя" или "месяц"The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<количество единиц времени><number-of-time-units> Целое числоInteger Значение, указывающее, как часто триггер срабатывает на основе частоты, т.е. количество единиц времени, которое необходимо выждать, прежде чем триггер сработает снова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, а значение частоты — Month, то повтор будет происходить каждые 6 месяцев.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<дата старта-время-с-формат-YYYY-MM-DDThh:mm:ss><start-date-time-with-format-YYYY-MM-DDThh:mm:ss> СтрокаString Дата и время начала в таком формате:The start date and time in this format:

ГГГГ-ММ-ДДTчч:мм:сс, если указан часовой пояс,YYYY-MM-DDThh:mm:ss if you specify a time zone

-или--or-

ГГГГ-ММ-ДДTчч:мм:ссZ, если часовой пояс не указан.YYYY-MM-DDThh:mm:ssZ if you don't specify a time zone

Например, если требуется указать 18 сентября 2017 г. в 14:00, то используйте 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 лет в будущем и должны следовать спецификации времени даты ISO 8601 в формате даты UTC,но без смещения UTC.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> Строка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> Целое число или массив целых чисел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:00, 12:00 и 14:00.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> Целое число или массив целых чисел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, 12:30 и 14:30.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> Целое числоInteger По умолчанию экземпляры рабочего процесса работают одновременно (одновременно или параллельно) до предела по умолчанию.By default, workflow instances all run at the same time (concurrently 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-очередь><max-runs-queue> Целое числоInteger Когда рабочий процесс уже работает с максимальным числом экземпляров, которые можно изменить в зависимости от 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> Строка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

Этот триггер повторения был запущен 9 сентября 2017 года в 14:00 и запускался каждый понедельник в 10:30, 12:30 и 14: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"
   }
}

Дополнительные сведения, а также примеры это триггера см. в статье Создание и планирование регулярно выполняющихся задач при помощи Azure Logic Apps.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.

Чтобы вызвать этот триггер, необходимо использовать API listCallbackUrl, описанный в REST API службы рабочих процессов.To call this trigger, you must use the listCallbackUrl API, which is described in the Workflow Service REST API. Чтобы узнать, как использовать этот триггер в качестве конечной точки 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> СтрокаString Имя свойства в схеме JSON, которое описывает полезные данныеThe name of a property in the JSON schema, which describes the payload
<типа собственности><property-type> СтрокаString Тип свойстваThe property's type

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<тип метода><method-type> СтрокаString Метод, который входящие запросы должны использовать для вызова приложения логики: GET, PUT, POST, PATCH или DELETEThe method that incoming requests must use to call your logic app: "GET", "PUT", "POST", "PATCH", "DELETE"
<относительный путь-для-принятого параметра><relative-path-for-accepted-parameter> СтрокаString Относительный путь для параметра, который принимает URL-адрес конечной точкиThe relative path for the parameter that your endpoint's URL can accept
<требуемые свойства><required-properties> ArrayArray Одно или несколько свойств, требующих значенийOne or more properties that require values
<макс-запуски><max-runs> Целое числоInteger По умолчанию экземпляры рабочего процесса работают одновременно (одновременно или параллельно) до предела по умолчанию.By default, workflow instances all run at the same time (concurrently 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-очередь><max-runs-queue> Целое числоInteger Когда рабочий процесс уже работает с максимальным числом экземпляров, которые можно изменить в зависимости от 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> Строка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 OK".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 в триггере, чтобы выполнить индивидуальную обработку массива.Instead, you can use the SplitOn property in your trigger to debatch the array. Debatching разделяет элементы массива и запускает новый экземпляр рабочего процесса, который выполняется для каждого элемента массива.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 позволяет обработать в одном приложении логики, см. в статье Ограничения и настройка Logic Apps.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. В нашем примере получить свойство status в ответе, возвращенном из API, невозможно.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> СтрокаString Имя действияThe name for the action
<действия типа><action-type> СтрокаString Тип действия, например Http или ApiConnectionThe action type, for example, "Http" or "ApiConnection"
<имя ввода><input-name> СтрокаString Имя для входа, определяющее поведение действияThe name for an input that defines the action's behavior
<вхотозатная стоимость><input-value> РазличныеVarious Входное значение, которое может быть строкой, целым числом, объектом JSON и т. д.The input value, which can be a string, integer, JSON object, and so on
<предыдущий триггер-или-статус действия><previous-trigger-or-action-status> Объект JSONJSON 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> Объект JSONJSON 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> Объект JSONJSON 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> Строка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.
Выполнение кода JavaScriptExecute 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.
ФункцииFunction Вызывает функцию Azure.Calls an Azure Function.
HTTPHTTP Вызывает конечную точку HTTP.Calls an HTTP endpoint.
JoinJoin Создает строку из всех элементов в массиве и разделяет эти элементы определенным символом разделителя.Creates a string from all the items in an array and separates those items with a specified delimiter character.
Анализ JSONParse 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.
ЗапросаQuery Создает массив из элементов другого массива на основании условия или фильтра.Creates an array from items in another array based on a condition or filter.
ОтветResponse Создает ответ на входящий вызов или запрос.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.
ТаблицеTable Создает таблицу CSV или HTML из массива.Creates a CSV or HTML table from an array.
ЗавершитьTerminate Останавливает активное выполнение рабочего процесса.Stops an actively running workflow.
ПодождиWait Приостанавливает рабочий процесс на заданный срок или до указанной даты и времени.Pauses your workflow for a specified duration or until the specified date and time.
Рабочего процессаWorkflow Создает вложенный рабочий процесс внутри другого рабочего процесса.Nests a workflow inside another workflow.

Действия управляемых APIManaged API actions

Тип действияAction type ОписаниеDescription
ApiConnectionApiConnection Вызывает конечную точку HTTP, используя управляемый Майкрософт интерфейс API.Calls an HTTP endpoint by using a Microsoft-managed API.
ApiConnectionWebhookApiConnectionWebhook Работает как веб-перехватчик HTTP, но использует интерфейс 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.
ЕслиIf Выполняет действия в зависимости от того, имеет ли заданное условие значение true или false.Run actions based on whether the specified condition is true or false.
ОбластьScope Выполняет действия из набора действий на основе состояния группы.Run actions based on the group status from a set of actions.
ПереключательSwitch Выполняет действия, организованные в случаях, когда значения из выражений, объектов или токенов соответствуют значениям, указанным для каждого случая.Run actions organized into cases when values from expressions, objects, or tokens match the values specified by each case.
ДоUntil Выполняет действия в цикле до тех пор, пока указанное условие не будет иметь значение true.Run actions in a loop until the specified condition is true.

Действия. Подробная справочная информацияActions - Detailed reference

Действие APIConnectionAPIConnection action

Это действие отправляет HTTP-запрос для управляемого Microsoft интерфейса API и требует сведения об 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> СтрокаString Имя действия, предоставляемого соединителемThe name of the action provided by the connector
<апи-имя><api-name> СтрокаString Имя управляемого Майкрософт интерфейса API, используемого для подключенияThe name of the Microsoft-managed API that is used for the connection
<тип метода><method-type> СтрокаString Метод HTTP для вызова API: GET, PUT, POST, PATCH или DELETEThe HTTP method for calling the API: "GET", "PUT", "POST", "PATCH", or "DELETE"
<апи-операции><api-operation> СтрокаString Операция API для вызоваThe API operation to call

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<другие действия-специфические входные свойства><other-action-specific-input-properties> Объект JSONJSON Object Все входные свойства, которые применяются к указанному действиюAny other input properties that apply to this specific action
<повторная попытка-поведение><retry-behavior> Объект JSONJSON 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> Объект JSONJSON 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> Объект JSONJSON Object Все другие свойства, которые применяются к указанному действиюAny other properties that apply to this specific action

ПримерExample

Это определение описывает действие Отправить по электронной почте для соединителя Outlook Office 365, который является управляемым Майкрософт интерфейсом API.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": {}
}

Действие APIConnectionWebhookAPIConnectionWebhook action

Это действие отправляет запрос на подписку через HTTP в конечную точку с помощью управляемого Майкрософт интерфейсом API, предоставляет 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> СтрокаString Имя действия, предоставляемого соединителемThe name of the action provided by the connector
<тип метода><method-type> СтрокаString Метод HTTP для подписки или отмены подписки на конечную точку: GET, PUT, POST, PATCH или DELETEThe HTTP method to use for subscribing or unsubscribing from an endpoint: "GET", "PUT", "POST", "PATCH", or "DELETE"
<api-подписка-URL><api-subscribe-URL> СтрокаString Универсальный код ресурса (URI), используемый для подписки на APIThe URI to use for subscribing to the API

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<api-отписаться-URL><api-unsubscribe-URL> СтрокаString Универсальный код ресурса (URI), используемый для отмены подписки на APIThe URI to use for unsubscribing from the API
<заголовок-контент><header-content> Объект JSONJSON 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> Объект JSONJSON Object Любое содержимое сообщения для отправки в запросеAny message content to send in the request
<тип аутентификации><authentication-type> Объект JSONJSON Object Модель проверки подлинности, которую использует запрос для проверки подлинности исходящих запросов.The authentication model that the request uses for authenticating outbound requests. Для получения дополнительной информации см. Добавить аутентификацию к исходящим вызовам.For more information, see Add authentication to outbound calls.
<повторная попытка-поведение><retry-behavior> Объект JSONJSON 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> Объект JSONJSON Object Все параметры запроса для включения в вызов APIAny 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> Объект JSONJSON Object Все входные свойства, которые применяются к указанному действиюAny other input properties that apply to this specific action
<другие действия-специфические свойства><other-action-specific-properties> Объект JSONJSON Object Все другие свойства, которые применяются к указанному действиюAny other properties that apply to this specific action

Также можно указать ограничения для действий ApiConnectionWebhook так же, как ограничения асинхронных операций HTTP.You can also specify limits on an ApiConnectionWebhook action in the same way as HTTP asynchronous limits.

Действие composeCompose action

Это действие создает один вывод из нескольких входных данных, включая выражения.This action creates a single output from multiple inputs, including expressions. Оба входа и выхода могут иметь любой тип, поддерживаемый Azure Logic Apps, например массивы, объекты JSON, язык XML и двоичные объекты.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> Любой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"

Выполнение действий кода JavaScriptExecute 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

Это действие запускает код, который получает имя приложения логики <и возвращает текст "Привет мир из логики-приложение-имя>", как результат.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.workflow.name процесса, применяя доступ к объекту только для чтения. workflowContextIn 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 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-функция-ID><Azure-function-ID> СтрокаString Идентификатор ресурса для функции Azure, которую требуется вызвать.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> СтрокаString Метод HTTP, используемый для вызова функции: GET, PUT, POST, PATCH или DELETEThe 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> Объект JSONJSON 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> Объект JSONJSON Object Любое содержимое сообщения для отправки в запросеAny message content to send in the request
<параметры запроса-параметры><query-parameters> Объект JSONJSON Object Все параметры запроса для включения в вызов APIAny 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> Объект JSONJSON Object Все входные свойства, которые применяются к указанному действиюAny other input properties that apply to this specific action
<другие действия-специфические свойства><other-action-specific-properties> Объект JSONJSON Object Все другие свойства, которые применяются к указанному действиюAny other properties that apply to this specific action

При сохранении приложения логики модуль 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-адрес, то в среде выполнения действие Функция заканчивается сбоем.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": {}
}

Действие HTTPHTTP 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> СтрокаString Метод использования для отправки исходящего запроса: "GET", "PUT", "POST", "PATCH" или "DELETE"The method to use for sending the outgoing request: "GET", "PUT", "POST", "PATCH", or "DELETE"
uri <HTTP-или-HTTPS-конечная точка-URL><HTTP-or-HTTPS-endpoint-URL> СтрокаString URL-адрес HTTP или HTTPS, где требуется отправить исходящий запрос.The HTTP or HTTPS endpoint URL where you want to send the outgoing request. Максимальный размер строки: 2 КБ.Maximum string size: 2 KB

Для службы или ресурса Azure этот синтаксис URI включает идентификатор ресурсов и путь к ресурсу, к которому вы хотите получить доступ.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> Объект JSONJSON 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> Объект JSONJSON 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> Объект JSONJSON Object Содержимое сообщения для отправки в качестве полезных данных с запросомThe message content to send as payload with the request
authentication <значения аутентификации типа и свойства><authentication-type-and-property-values> Объект JSONJSON Object Модель проверки подлинности, которую использует запрос для проверки подлинности исходящих запросов.The authentication model that the request uses for authenticating outbound requests. Для получения дополнительной информации см. Добавить аутентификацию к исходящим вызовам.For more information, see Add authentication to outbound calls. Помимо планировщика поддерживается свойство 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> Объект JSONJSON 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> <входная собственность><input-property> Объект JSONJSON Object Все входные свойства, которые применяются к указанному действиюAny other input properties that apply to this specific action
<другие действия-специфические свойства><other-action-specific-properties> <имущественное значение><property-value> Объект JSONJSON 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> ArrayArray Массив или выражение, которое предоставляет исходные элементы.The array or expression that provides the source items. Если задано выражение, заключите его в двойные кавычки.If you specify an expression, enclose that expression with double quotes.
<Разделитель><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. Например, если необходимо использовать выходные данные JSON таких служб как Служебная шина Azure и Azure Cosmos DB, можно включить это действие в своем приложении логики, чтобы иметь возможность легче ссылаться на выходные данные.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-источник><JSON-source> Объект JSONJSON Object Содержимое JSON, которое необходимо анализироватьThe JSON content you want to parse
<JSON-схема><JSON-schema> Объект JSONJSON 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

Это определение действия создает эти маркеры, которые можно использовать в рабочем процессе, но только в действиях, которые выполняется после действия Parse 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 и Email.FirstName, 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> ArrayArray Массив или выражение, которое предоставляет исходные элементы.The array or expression that provides the source items. Если задано выражение, заключите его в двойные кавычки.If you specify an expression, enclose that expression with double quotes.
<состояние или фильтр><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

Это определение действия создает массив, содержащий значения, превышающие указанное значение, которое равно двум.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> Целое числоInteger Код состояния HTTP, отправленный на входящий запрос.The HTTP status code that is sent to the incoming request. Код по умолчанию является "200 OK", но это может быть любой допустимый код состояния, который начинается с 2xx, 4xx или 5xx, но не с 3xxx.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> Объект JSONJSON Object Один или несколько заголовков для включения в ответOne or more headers to include with the response
<ответ-тело><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

В отличии от других, действие Ответ имеет специальные ограничения.Unlike other actions, the Response action has special restrictions:

  • Рабочий процесс может использовать действие Ответ только тогда, когда он начинается с триггера запроса HTTP, это значит, что рабочий процесс должен запускаться 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, включая последовательные циклы и параллельные ветви.Your workflow can use the Response action anywhere except inside Foreach loops, Until loops, including sequential loops, and parallel branches.

  • Первоначальный HTTP-запрос получает ответ рабочего процесса только тогда, когда все действия, требуемые действием Ответ, завершены в пределах времени ожидания 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.

  • Когда рабочий процесс использует действие Ответ и синхронный шаблон ответа, он не может использовать команду 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, и если значение равно true, вернется ответ "Недопустимый запрос".Check for this case when the PUT method is used, and if true, return a "bad request" response.

    В противном случае, если рабочий процесс использует команду splitOn и действие Ответ, рабочий процесс выполняется асинхронно и немедленно возвращает ответ "202 ACCEPTED".Otherwise, if your workflow uses the splitOn command and a Response action, the workflow runs asynchronously and immediately returns a "202 ACCEPTED" response.

  • Когда выполнение рабочего процесса достигает действия Ответ, но входящий запрос уже получил ответ, действие Ответ помечается как Failed (Сбой) из-за конфликта.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. И в результате выполнения приложения логики также отмечается состояние Failed (Сбой).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> ArrayArray Массив или выражение, которое предоставляет исходные элементы.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> СтрокаString Имя свойства, присвоенное результату выражения <> 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> СтрокаString Выражение, преобразуя элемент в исходном массиве и присваиваваемое результатом <имя ключа>The expression that transforms the item in the source array and assigns the result to <key-name>

Действие Выбрать создает массив как вывод, поэтому любое действие, которое хочет использовать этот вывод, должно либо принимать массив, либо необходимо преобразовать массив в тип, который принимает действие пользователя.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. Например, чтобы преобразовать выходной массив в строку, передайте массив в действие Создать, а затем ссылайтесь на результат действия Создать в других действиях.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() и присваивает каждому значению свойство "number" в каждом объекте JSON.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 } ]

Чтобы использовать этот массив выходных данных в других действиях, передайте этот результат в действие Создать.To use this array output in other actions, pass this output into a Compose action:

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

Затем можно использовать вывод из действия Создать в других действиях, например Office 365 Outlook: отправить по электронной почте.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> ArrayArray Массив или выражение, которое предоставляет исходные элементы для таблицы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> СтрокаString Имя заголовка столбцаThe header name for a column
<столбец-значение><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"} ]

Это определение действия создает таблицу CSV из переменной myItemArray.This action definition creates a CSV table from the "myItemArray" variable. Выражение, использующее свойство from, возвращает массив из myItemArray с помощью функции variables().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

Это определение действия создает таблицу HTML из переменной myItemArray.This action definition creates an HTML table from the "myItemArray" variable. Выражение, использующее свойство from, возвращает массив из myItemArray с помощью функции variables().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
00ЯблокиApples
11АпельсиныOranges

Пример 3Example 3

Это определение действия создает таблицу HTML из переменной myItemArray.This action definition creates an HTML table from the "myItemArray" variable. Однако этот пример переопределяет имена заголовков столбцов по умолчанию с помощью Stock_ID и Description и добавляет слово Organic к значениям в столбце Description.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
00Органические яблокиOrganic Apples
11Органические апельсиныOrganic Oranges

Действие terminateTerminate action

Это действие останавливает запуск экземпляра рабочего процесса, отменяет все текущие действия, пропускает все оставшиеся действия и возвращает указанный статус.This action stops the run for a workflow instance, cancels any actions in progress, skips any remaining actions, and returns the specified status. Например, можно использовать действие Завершить, когда приложение логики должно полностью выйти из состояния ошибки.For example, you can use the Terminate action when your logic app must exit completely from an error state. Это действие не влияет на уже выполненные действия и не может указываться в циклах Foreach и Until, включая последовательные циклы.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> СтрокаString Состояние для возврата запуска: Failed (Сбой), Cancelled (Отменено) или Succeeded (Успешно)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> СтрокаString Код или имя ошибкиThe code or name for the error
<сообщение об ошибке><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": {}
}

Действие waitWait 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> Целое числоInteger Число единиц ожидания для действия ЗадержкаFor the Delay action, the number of units to wait
<Интервал><interval> СтрокаString Для действия Задержка период ожидания составляет: "секунда", "минута", "час", "день", "неделя", "месяц"For the Delay action, the interval to wait: "Second", "Minute", "Hour", "Day", "Week", "Month"
<дата-штамп><date-time-stamp> СтрокаString Дата и время возобновления исполнения для действия Задержка до.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": {}
},

Действие workflowWorkflow 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:

  • Триггер делает вложенное приложение логики вызываемым, наподобие триггеров Запрос или HTTPA trigger makes the nested logic app callable, such as a Request or HTTP trigger

  • Та же подписка Azure, что и родительское приложение логикиThe same Azure subscription as your parent logic app

  • Чтобы использовать выходы из вложенного приложения логики в родительском приложении логики, вложенное приложение логики должно иметь действие Ответ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> СтрокаString Имя приложения логики, которое требуется вызватьThe name for the logic app you want to call
<триггер-имя><trigger-name> СтрокаString Имя триггера вложенного приложения логики, которое необходимо вызватьThe name for the trigger in the nested logic app you want to call
<Идентификатор подписки Azure><Azure-subscription-ID> СтрокаString Идентификатор подписки Azure вложенного приложения логикиThe Azure subscription ID for the nested logic app
<Группа ресурсов Azure><Azure-resource-group> СтрокаString Группа ресурсов Azure вложенного приложения логикиThe Azure resource group name for the nested logic app
<вложенные-логика-приложение-имя><nested-logic-app-name> СтрокаString Имя приложения логики, которое требуется вызватьThe name for the logic app you want to call

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<заголовок-контент><header-content> Объект JSONJSON Object Все заголовки для отправки с вызовомAny headers to send with the call
<содержание тела><body-content> Объект JSONJSON Object Любое содержимое сообщения для отправки с вызовомAny message content to send with the call

ВыходыOutputs

Выходные данные этого действия различаются в зависимости от действия "Ответ" вложенного приложения логики.This action's outputs vary based on the nested logic app's Response action. Если вложенное приложение логики не включает действие "Ответ", выходные данные будут пустыми.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

Действие foreachForeach action

Это циклическое действие выполняет итерацию по массиву и действия с каждым элементом массива.This looping action iterates through an array and performs actions on each array item. По умолчанию цикл Foreach выполняется в параллельном режиме, вплоть до максимального числа циклов.By default, the "for each" loop runs in parallel up to a maximum number of loops. Для этого максимума см. Узнайте, как создать циклы "для каждого".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
<действие-1... N><action-1...n> СтрокаString Имена действий, выполняемых над каждым элементом массиваThe names of the actions that run on each array item
<действие-определение-1... N><action-definition-1...n> Объект JSONJSON Object Определения действий, которые выполняютсяThe definitions of the actions that run
<для каждого выражения><for-each-expression> СтрокаString Выражение, которое ссылается на каждый элемент в указанном массивеThe expression that references each item in the specified array

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<Рассчитывать><count> Целое числоInteger По умолчанию итерации цикла "для каждого" работают одновременно (одновременно или параллельно) до предела по умолчанию.By default, the "for each" loop iterations run at the same time (concurrently or in parallel) up to the default limit. Чтобы изменить это ограничение, задав новое значение <count>, см. раздел Изменение параллелизма цикла Foreach.To change this limit by setting a new <count> value, see Change "for each" loop concurrency.
<операция-опция><operation-option> СтрокаString Чтобы запустить цикл Foreach последовательно, а не параллельно, задайте <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. Дополнительные сведения см. в разделе Последовательный запуск циклов Foreach.For more information, see Run "for each" loops sequentially.

ПримерExample

Этот цикл Foreach отправляет электронное письмо для каждого элемента массива, содержащего вложения из входящего письма.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>']

Действие IfIf action

Это действие, которое является условным оператором, оценивает выражение, которое представляет условие и запускает другую ветвь, основанную на том, является ли условие истинным или ложным.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. Если условие истинное, ему будет присвоено состояние Succeeded (Успешно).If the condition is true, the condition is marked with "Succeeded" status. Дополнительные сведения см. в разделе Создание условных операторов, которые управляют действиями в рабочих процессах Azure Logic Apps.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> Объект JSONJSON Object Условие, которое может быть выражением, для оценкиThe condition, which can be an expression, to evaluate
<действие-1><action-1> Объект JSONJSON Object Действие выполнится когда <condition> будет истинноеThe action to run when <condition> evaluates to true
<определение действия><action-definition> Объект JSONJSON Object Определение действияThe definition for the action
<действие-2><action-2> Объект JSONJSON Object Действие выполнится когда <condition> будет ложнымThe action to run when <condition> evaluates to false

Действия в объектах actions или else получают следующие статусы.The actions in the actions or else objects get these statuses:

  • "Succeeded", если они запускаются и выполняются успешно;"Succeeded" when they run and succeed
  • "Failed", если они запускаются, но завершаются ошибкой;"Failed" when they run and fail
  • "Skipped", если не запускается соответствующая ветвь."Skipped" when the respective branch doesn't run

ПримерExample

Это условие указывает, что когда целочисленная переменная имеет значение больше нуля, рабочий процесс проверяет веб-сайт.This condition specifies that when the integer variable has a value greater than zero, the workflow checks a website. Если переменная равна нулю или меньше, рабочий процесс проверяет другой веб-сайт.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>')" Только для логических выражений условие передается для любого истинного значения.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.

Действие scopeScope 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. Дополнительные сведения см. в разделе Создание областей, которые выполняют действия рабочего процесса на основе состояния группы в Azure Logic Apps.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
<внутреннее действие-1... N><inner-action-1...n> Объект JSONJSON Object Одно или несколько действий, которые выполняются в областиOne or more actions that run inside the scope
<экшн-входы><action-inputs> Объект JSONJSON Object Входные данные для каждого действияThe inputs for each action

Действие switchSwitch 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. Когда выполняется рабочий процесс, действие Переключить сравнивает значение из выражения, объекта или токена со значениями, указанными для каждого случая.When your workflow runs, the Switch action compares the value from an expression, object, or token against the values specified for each case. Если действие Переключить находит соответствующий вариант, рабочий процесс выполняет действия только для этого варианта.If the Switch action finds a matching case, your workflow runs only the actions for that case. Каждый раз, когда действие Переключить запускается, существует только один подходящий случай или совпадений нет.Each time the Switch action runs, either only one matching case exists or no matches exist. Если совпадений не существует, действие Переключить выполняется по умолчанию.If no matches exist, the Switch action runs the default actions. Дополнительные сведения см. в разделе Создание операторов switch, которые запускают действия рабочего процесса на основе определенных значений в Azure Logic Apps.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> РазличаетсяVaries Выражение, объект JSON или маркер безопасности для оценкиThe expression, JSON object, or token to evaluate
<имя действия><action-name> СтрокаString Имя действия для запуска в случае соответствияThe name of the action to run for the matching case
<определение действия><action-definition> Объект JSONJSON Object Определение действия для запуска в случае соответствияThe definition for the action to run for the matching case
<сопоставление-значение><matching-value> РазличаетсяVaries Значение для сравнения с результатом вычисленияThe value to compare with the evaluated result

НеобязательныйOptional

ЗначениеValue ТипType ОписаниеDescription
<имя действия по умолчанию><default-action-name> СтрокаString Имя действия по умолчанию для запуска, если не существует подходящего случаяThe name of the default action to run when no matching case exists
<определение действий по умолчанию><default-action-definition> Объект JSONJSON 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. Исходя из этого выбора, действие Переключить запускает действия для случая сопоставления, который должен отправить другое электронное сообщение ответчику, но с разными формулировками в каждом случае.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"
      ]
   }
}

Действие UntilUntil 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> СтрокаString Имя действия, которое необходимо выполнить внутри циклаThe name for the action you want to run inside the loop
<действия типа><action-type> СтрокаString Тип действия, которое необходимо запуститьThe action type you want to run
<экшн-входы><action-inputs> РазличныеVarious Входные данные для выполнения действияThe inputs for the action to run
<Состояние><condition> СтрокаString Условие или выражение для оценки после всех действий в завершении циклаThe condition or expression to evaluate after all the actions in the loop finish running
<цикл-счет><loop-count> Целое числоInteger Предел максимального количества циклов, которое может выполнить действие.The limit on the most number of loops that the action can run. Для получения дополнительной информации о лимите по умолчанию и максимальном лимите см.For more information about the default limit and maximum limit, see Limits and configuration for Azure Logic Apps.
<цикл тайм-аут><loop-timeout> СтрокаString Предел времени работы цикла, в течение которого цикл может работать.The limit on the longest time that the loop can run. Значение timeout по умолчанию равно PT1H, которое требует формат ISO 8601.The default timeout value is PT1H, which is the required ISO 8601 format.

ПримерExample

Это определение действия цикла отправляет HTTP-запрос по указанному URL-адресу до тех пор, пока не будет выполнено одно из этих условий.This loop action definition sends an HTTP request to the specified URL until one of these conditions is met:

  • Запрос возвращает ответ с состоянием кода "200 OK".The request gets a response with the "200 OK" status code.
  • Цикл выполнялся 60 раз.The loop has run 60 times.
  • Цикл был выполнен в течение одного часа.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 by adding these runtimeConfiguration properties to the trigger or action definition.

СвойствоProperty ТипType ОписаниеDescription Триггер или действиеTrigger or action
runtimeConfiguration.concurrency.runs Целое числоInteger Измените лимит по умолчанию на количество экземпляров рабочего процесса, которые могут работать одновременно (одновременно или параллельно).Change the default limit on the number of workflow instances that can run at the same time (concurrently or in parallel). Корректировка этого значения может помочь ограничить количество запросов, которые получают системы бэкэнда.Adjusting 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 Целое числоInteger Измените лимит по умолчанию на количество экземпляров рабочего процесса, которые необходимо ждать, чтобы запустить, когда приложение логики уже работает с максимальными одновременными экземплярами.Change the default limit on the number of workflow instances that must wait to run when your logic app is already running the maximum concurrent instances.

Чтобы изменить предел по умолчанию, см. раздел Изменение предела ожидающих запусков.To change the default limit, see Change waiting runs limit.

Все триггерыAll triggers
runtimeConfiguration.concurrency.repetitions Целое числоInteger Измените лимит по умолчанию на количество итераций цикла "для каждого", которые могут работать одновременно (одновременно или параллельно).Change the default limit on the number of "for each" loop iterations that can run at the same time (concurrently 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.

Дополнительные сведения об изменении предела по умолчанию см. в разделе Изменение параллелизма цикла Foreach или Последовательный запуск циклов Foreach.To change the default limit, see Change "for each" concurrency or Run "for each" loops sequentially.

Действие:Action:

ForeachForeach

runtimeConfiguration.paginationPolicy.minimumItemCount Целое числоInteger Для конкретных действий, поддерживающих и поддерживающих pagination, это значение определяет минимальное количество результатов для получения.For specific actions that support and have pagination turned on, this value specifies the minimum number of results to retrieve.

Чтобы включить pagination, см. Получить объемные данные, элементы или результаты с помощью paginationTo turn on pagination, see Get bulk data, items, or results by using pagination

Действие: РазнообразныйAction: Varied
runtimeConfiguration.secureData.properties ArrayArray Во многих триггерах и действиях эти параметры скрывают входы, выходы или оба из истории выполнения приложения логики.On many triggers and actions, these settings hide inputs, outputs, or both from the logic app's run history.

Чтобы узнать больше о защите этих данных, см. Скрыть входы и выходы из истории выполнения.To learn more about safeguarding this data, see Hide inputs and outputs from run history.

Большинство триггеров и действийMost triggers and actions
runtimeConfiguration.staticResult Объект JSONJSON Object Для действий, поддерживающих и включаемых статического параметра результата, staticResult объект имеет следующие атрибуты:For actions that support and have the static result setting turned on, the staticResult object has these attributes:

- name, который ссылается на статическое определение определения результата staticResults текущего действия, которое definition отображается внутри атрибута в атрибуте рабочего потока логики.- 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. Для получения дополнительной информации см. Статические результаты - Ссылка на Schema для языка определения рабочего процесса.For more information, see Static results - Schema reference for Workflow Definition Language.

- staticResultOptions, который определяет, являются ли Enabled статические результаты для текущего действия.- 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 Запускайте итерации цикла Foreach по одной, а не одновременно параллельно.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.

Дополнительные сведения о задании этого параметра см. в разделе Последовательный запуск циклов Foreach.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 workflow instances all run at the same time (concurrently or in parallel). Это поведение означает, что каждый триггерный экземпляр срабатывает до завершения работы ранее активного экземпляра рабочего процесса.This behavior means that each trigger instance fires before the previously active workflow instance finishes running. Однако количество одновременно запущенных экземпляров имеет предел по умолчанию.However, the number of concurrently running instances has a default limit. Когда число одновременно запущенных экземпляров рабочего процесса достигает этого предела, любые другие новые экземпляры должны ждать выполнения.When the number of concurrently running workflow instances reaches this limit, any other new instances must wait to run. Это ограничение помогает контролировать количество запросов, которые получают серверные системы.This limit helps control the number of requests that backend systems receive.

Чтобы изменить предел по умолчанию, можно использовать либо редактор просмотра кода, либо Конструктор Logic Apps, поскольку изменение параметра параллелизма с помощью конструктора добавляет или обновляет свойство runtimeConfiguration.concurrency.runs в базовом определении триггера и наоборот.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 significantly 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 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 триггера либо с помощью редактора представления кода, либо с помощью редактора представления кода.To run your logic app sequentially, set the trigger's concurrency to 1 either by using the code view editor or the designer. Убедитесь, что вы также не установить свойство триггера operationOptions SingleInstance в редактора представления кода.Make sure that you 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.runs свойство, которое 1 50может иметь значение, которое колеблется от .In the underlying trigger definition, add the runtimeConfiguration.concurrency.runs property, which can have a value that ranges from 1 to 50.

Ниже приведен пример, который ограничивает параллельные выполнения до 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
      }
   }
}

Дополнительные сведения см. в разделе Настройки конфигурации среды выполнения.For more information, see Runtime configuration settings.

Изменение в Конструкторе Logic AppsEdit in Logic Apps Designer

  1. В верхнем правом углу триггера выберите эллипсы (...) кнопку, а затем выберите настройки.In the trigger's upper-right corner, select the ellipses (...) button, and then select 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.

Изменение параллелизма цикла ForeachChange "for each" concurrency

По умолчанию итерации цикла "для каждого" работают одновременно (одновременно или параллельно).By default, "for each" loop iterations all run at the same time (concurrently or in parallel). Это поведение означает, что каждая итерация начинает работать до завершения предыдущей итерации.This behavior means that each iteration starts running before the previous iteration finishes running. Однако количество одновременно работающих итераций имеет предел по умолчанию.However, the number of concurrently running iterations has a default limit. Когда количество одновременно работающих итераций достигает этого предела, любые другие итерации должны ждать выполнения.When the number of concurrently running iterations reaches this limit, any other iterations must wait to run.

Чтобы изменить предел по умолчанию, можно использовать либо редактор просмотра кода, либо Конструктор Logic Apps, поскольку изменение параметра параллелизма с помощью конструктора добавляет или обновляет свойство runtimeConfiguration.concurrency.repetitions в базовом определении действия Foreach и наоборот.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.

Примечание

Если вы установите действие Foreach для запуска последовательно с помощью конструктора или редактора представления кода, не устанавливайте свойство 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. Дополнительные сведения см. в разделе Последовательный запуск циклов Foreach.For more information, see Run "for each" loops sequentially.

Изменение в представлении кодаEdit in code view

В базовом определении "для каждого" runtimeConfiguration.concurrency.repetitions добавьте или обновите свойство, которое может иметь значение, которое варьируется от 1 и 50.In the underlying "for each" definition, add or update the runtimeConfiguration.concurrency.repetitions property, which can have a value that ranges from 1 and 50.

Ниже приведен пример, который ограничивает параллельные выполнения до 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
      }
   }
}

Дополнительные сведения см. в разделе Настройки конфигурации среды выполнения.For more information, see Runtime configuration settings.

Изменение в Конструкторе Logic AppsEdit in Logic Apps Designer

  1. В для каждого действия, из верхнего правого угла, выберите эллипсы (...) кнопку, а затем выберите Настройки.In the For each action, from the upper-right corner, select the ellipses (...) button, and then select 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). Это поведение означает, что каждый триггерный экземпляр срабатывает до завершения работы ранее активного экземпляра рабочего процесса.This behavior means that each trigger instance fires before the previously active workflow instance finishes running. Однако количество одновременно запущенных экземпляров имеет предел по умолчанию.However, the number of concurrently running instances has a default limit. Когда число одновременно запущенных экземпляров рабочего процесса достигает этого предела, любые другие новые экземпляры должны ждать выполнения.When the number of concurrently running workflow instances reaches this limit, any other new instances must wait to run.

Количество ожидающих запусков также имеет предел по умолчанию.The number of waiting runs also has a default limit. Когда количество ожидающих запусков достигает этого предела, движок Logic Apps больше не принимает новые запуски.When the number of waiting runs reaches this limit, the Logic Apps engine no longer accepts new runs. Триггеры запроса и веб-перехватчика возвращают 429 ошибку, а повторяющиеся триггеры начинают пропускать попытки опроса.Request and webhook triggers return 429 errors, and recurring triggers start skipping polling attempts.

Вы можете не только изменить лимит по умолчанию на триггерном параллели,но вы также можете изменить лимит по умолчанию при ожидании.Not only can you change the default limit on trigger concurrency, but you can also change the default limit on waiting runs. В базовом определении триггера добавьте runtimeConfiguration.concurrency.maximumWaitingRuns свойство, которое 1 100может иметь значение, которое колеблется от .In the underlying trigger definition, add the runtimeConfiguration.concurrency.maximumWaitingRuns property, which can have a value that ranges from 1 to 100.

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

Дополнительные сведения см. в разделе Настройки конфигурации среды выполнения.For more information, see Runtime configuration settings.

Последовательная активация экземпляровTrigger instances sequentially

Чтобы запустить каждый экземпляр рабочего процесса приложения логики только после завершения предыдущего экземпляра, установите триггер для последовательного выполнения.To run each logic app workflow instance only after the previous instance finishes running, set the trigger to run sequentially. Вы можете использовать либо редактор просмотра кода, либо конструктор Logic Apps, поскольку изменение параметра параллелизма с помощью конструктора также добавляет или обновляет свойство runtimeConfiguration.concurrency.runs в базовом определении триггера и наоборот.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"
}

Для получения дополнительной информации см. Operation optionsFor more information, see Runtime configuration settings and Operation options.

Изменение в Конструкторе Logic AppsEdit in Logic Apps Designer

  1. В верхнем правом углу триггера выберите эллипсы (...) кнопку, а затем выберите настройки.In the trigger's upper-right corner, select the ellipses (...) button, and then select Settings.

  2. В разделе Управление параллелизмом установите для параметра Ограничение значение Вкл.Under Concurrency Control, set Limit to On.

  3. Перетащите ползунок Степень параллелизма на номер 1.Drag the Degree of Parallelism slider to the number 1.

Последовательный запуск циклов ForeachRun "for each" loops sequentially

Чтобы запустить итерацию цикла Foreach только после завершения предыдущей итерации, настройте последовательное выполнение каждого действия.To run a "for each" loop iteration only after the previous iteration finishes running, set the "for each" action to run sequentially. Вы можете использовать либо редактор просмотра кода, либо конструктор Logic Apps, поскольку изменение действия параллелизма с помощью конструктора также добавляет или обновляет свойство runtimeConfiguration.concurrency.repetitions в базовом определении действия и наоборот.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.

Примечание

Если вы настроите последовательное выполнение действия Foreach для запуска с помощью конструктора или редактора представления кода, не устанавливайте свойство 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"
}

Для получения дополнительной информации см. Operation optionsFor more information, see Runtime configuration settings and Operation options.

Изменение в Конструкторе Logic AppsEdit in Logic Apps Designer

  1. В верхнем правом углу каждого действия выберите кнопку эллипсов (...) и выберите настройки.In the For each action's upper-right corner, select the ellipses (...) button, and then select 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 ACCEPTED".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 продолжает проверять URL, указанный в заголовке местоположения ответа до тех пор, пока обработка не прекратится, что является ответом, отличным от 202.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": {}
}

Дополнительные сведения см. в разделе Варианты операций.For more information, see Operation options.

Запуск в режиме высокой пропускной способности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