Azure Logic Apps のワークフロー定義言語のスキーマ参照Schema reference for Workflow Definition Language in Azure Logic Apps

Azure Logic Apps でロジック アプリを作成するとき、ロジック アプリには基になるワークフロー定義があり、ロジック アプリで実行される実際のロジックが記述されています。When you create a logic app in Azure Logic Apps, your logic app has an underlying workflow definition that describes the actual logic that runs in your logic app. そのワークフロー定義は、JSON を使って作成し、ワークフロー定義言語スキーマによって検証される構造に従います。That workflow definition uses JSON and follows a structure that's validated by the Workflow Definition Language schema. このリファレンスでは、この構造に関する概要と、ワークフロー定義の要素がスキーマによってどのように定義されるかを説明します。This reference provides an overview about this structure and how the schema defines elements in your workflow definition.

ワークフロー定義の構造Workflow definition structure

ワークフロー定義には、常に、ロジック アプリをインスタンス化するためのトリガーと、トリガーの発動後に実行される 1 つ以上のアクションが含まれます。A workflow definition always includes a trigger for instantiating your logic app, plus one or more actions that run after the trigger fires.

ワークフロー定義の高レベルな構造を次に示します。Here is the high-level structure for a workflow definition:

"definition": {
  "$schema": "<workflow-definition-language-schema-version>",
  "contentVersion": "<workflow-definition-version-number>",
  "parameters": { "<workflow-parameter-definitions>" },
  "triggers": { "<workflow-trigger-definitions>" },
  "actions": { "<workflow-action-definitions>" },
  "outputs": { "<workflow-output-definitions>" }
}
要素Element 必須Required 説明Description
definitiondefinition はいYes ワークフロー定義の開始要素The starting element for your workflow definition
$schema$schema ワークフロー定義を外部参照する場合のみOnly when externally referencing a workflow definition ワークフロー定義言語のバージョンが記述されている JSON スキーマ ファイルの場所。次の場所にあります。The location for the JSON schema file that describes the Workflow Definition Language version, which you can find here:

https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json

contentVersioncontentVersion いいえ No ワークフロー定義のバージョン番号。既定値は "1.0.0.0" です。The version number for your workflow definition, which is "1.0.0.0" by default. ワークフローを展開するときに正しい定義であることを識別して確認できるように、使用する値を指定します。To help identify and confirm the correct definition when deploying a workflow, specify a value to use.
parametersparameters いいえ No ワークフローにデータを渡す 1 つ以上のパラメーターの定義The definitions for one or more parameters that pass data into your workflow

パラメーターの最大個数:50Maximum parameters: 50

トリガーtriggers いいえ No ワークフローをインスタンス化する 1 つまたは複数のトリガーの定義。The definitions for one or more triggers that instantiate your workflow. 複数のトリガーを定義できます。ワークフロー定義言語しか利用できず、Logic Apps デザイナーを使って視覚的に作成することはできません。You can define more than one trigger, but only with the Workflow Definition Language, not visually through the Logic Apps Designer.

トリガーの最大個数:10Maximum triggers: 10

actionsactions いいえ No ワークフローの実行時に実行する 1 つまたは複数のアクションの定義The definitions for one or more actions to execute at workflow runtime

アクションの最大個数:250Maximum actions: 250

outputsoutputs いいえ No ワークフローの実行から返される出力の定義The definitions for the outputs that return from a workflow run

出力の最大個数:10Maximum outputs: 10

parametersParameters

parameters セクションでは、ワークフロー定義が展開時に入力を受け取るために使用するすべてのワークフロー パラメーターを定義します。In the parameters section, define all the workflow parameters that your workflow definition uses at deployment for accepting inputs. パラメーターの宣言とパラメーターの値の両方が、展開時に必要です。Both parameter declarations and parameter values are required at deployment. 他のワークフロー セクションでこれらのパラメーターを使用する前に、これらのセクションですべてのパラメーターを宣言したことを確認してください。Before you can use these parameters in other workflow sections, make sure that you declare all the parameters in these sections.

パラメーターの定義の一般的な構造を次に示します。Here is the general structure for a parameter definition:

"parameters": {
  "<parameter-name>": {
    "type": "<parameter-type>",
    "defaultValue": "<default-parameter-value>",
    "allowedValues": [ <array-with-permitted-parameter-values> ],
    "metadata": {
      "key": {
        "name": "<key-value>"
      }
    }
  }
},
要素Element 必須Required TypeType 説明Description
Typetype はいYes int、float、string、securestring、bool、array、JSON オブジェクト、secureobjectint, float, string, securestring, bool, array, JSON object, secureobject

メモ:すべてのパスワード、キー、およびシークレットで、securestring 型と secureobject 型を使用します。GET 操作では、これらの型は返されません。Note: For all passwords, keys, and secrets, use the securestring and secureobject types because the GET operation doesn't return these types. パラメーターのセキュリティ保護の詳細については、ロジック アプリのセキュリティ保護に関するページを参照してくださいFor more information about securing parameters, see Secure your logic app

パラメーターの型The type for the parameter
defaultValuedefaultValue はいYes type と同じSame as type ワークフローのインスタンス化時に値が指定されていない場合の、既定のパラメーター値The default parameter value when no value is specified when the workflow instantiates
allowedValuesallowedValues いいえ No type と同じSame as type パラメーターが受け取ることのできる値の配列An array with values that the parameter can accept
metadatametadata いいえ No JSON オブジェクトJSON object 他のパラメーターの詳細。たとえば、ロジック アプリやフローの名前や読み取り可能な説明、または Visual Studio や他のツールによって使われる設計時のデータAny other parameter details, for example, the name or a readable description for your logic app or flow, or the design-time data used by Visual Studio or other tools

トリガーとアクションTriggers and actions

ワークフロー定義の triggers および actions セクションでは、ワークフローの実行中に発生する呼び出しを定義します。In a workflow definition, the triggers and actions sections define the calls that happen during your workflow's execution. これらのセクションの構文と詳細については、「ワークフローのトリガーとアクション」をご覧ください。For syntax and more information about these sections, see Workflow triggers and actions.

出力Outputs

outputs セクションでは、実行完了時にワークフローが返すことのできるデータを定義します。In the outputs section, define the data that your workflow can return when finished running. たとえば、各実行から特定の状態または値を追跡するには、ワークフローの出力がそのデータを返すように指定します。For example, to track a specific status or value from each run, specify that the workflow output returns that data.

注意

サービスの REST API からの受信要求に応答するときは、outputs を使わないでください。When responding to incoming requests from a service's REST API, do not use outputs. 代わりに、Response アクションの種類を使います。Instead, use the Response action type. 詳しくは、「ワークフローのトリガーとアクション」をご覧ください。For more information, see Workflow triggers and actions.

出力の定義の一般的な構造を次に示します。Here is the general structure for an output definition:

"outputs": {
  "<key-name>": {
    "type": "<key-type>",
    "value": "<key-value>"
  }
}
要素Element 必須Required TypeType 説明Description
<key-name><key-name> はいYes StringString 出力戻り値のキーの名前The key name for the output return value
typetype はいYes int、float、string、securestring、bool、array、JSON オブジェクトint, float, string, securestring, bool, array, JSON object 出力戻り値の型The type for the output return value
valuevalue はいYes type と同じSame as type 出力の戻り値The output return value

ワークフローの実行からの出力を取得するには、Azure portal でロジック アプリの実行履歴と詳細を確認するか、または Workflow REST API を使います。To get the output from a workflow run, review your logic app's run history and details in the Azure portal or use the Workflow REST API. Power BI などの外部システムに出力を渡してダッシュボードを作成することもできます。You can also pass output to external systems, for example, Power BI so that you can create dashboards.

Expressions

JSON では、デザイン時に存在するリテラル値を使用できます。次はその例です。With JSON, you can have literal values that exist at design time, for example:

"customerName": "Sophia Owen",
"rainbowColors": ["red", "orange", "yellow", "green", "blue", "indigo", "violet"],
"rainbowColorsCount": 7

実行時まで存在しない値を使うこともできます。You can also have values that don't exist until run time. これらの値を表すには、実行時に評価される "" を使うことができます。To represent these values, you can use expressions, which are evaluated at run time. 式は、1 つ以上の関数演算子、変数、明示的な値、または定数を含むことができるシーケンスです。An expression is a sequence that can contain one or more functions, operators, variables, explicit values, or constants. ワークフローの定義では、式の前にアットマーク (@) を付けることによって、JSON 文字列値の任意の場所で式を使うことができます。In your workflow definition, you can use an expression anywhere in a JSON string value by prefixing the expression with the at-sign (@). JSON 値を表す式を評価するときは、@ 文字を削除することによって式の本体が抽出され、常に別の JSON 値になります。When evaluating an expression that represents a JSON value, the expression body is extracted by removing the @ character, and always results in another JSON value.

たとえば、前に定義した customerName プロパティでは、式の中で parameters() 関数を使ってプロパティの値を取得し、その値を accountName プロパティに割り当てることができます。For example, for the previously defined customerName property, you can get the property value by using the parameters() function in an expression and assign that value to the accountName property:

"customerName": "Sophia Owen",
"accountName": "@parameters('customerName')"

"文字列の補間" により、@ 文字と中かっこ ({}) によってラップされている文字列内で複数の式を使用することもできます。String interpolation also lets you use multiple expressions inside strings that are wrapped by the @ character and curly braces ({}). 構文は次のとおりです。Here is the syntax:

@{ "<expression1>", "<expression2>" }

結果は常に文字列であり、この機能は concat() 関数と似ています。次に例を示します。The result is always a string, making this capability similar to the concat() function, for example:

"customerName": "First name: @{parameters('firstName')} Last name: @{parameters('lastName')}"

@ 文字で始まるリテラル文字列がある場合は、エスケープ文字として別の @ 文字を @ の前に付けます (@@)。If you have a literal string that starts with the @ character, prefix the @ character with another @ character as an escape character: @@

式の評価方法の例を次に示します。These examples show how expressions are evaluated:

JSON 値JSON value 結果Result
"Sophia Owen""Sophia Owen" 次の文字が返されます:'Sophia Owen'Return these characters: 'Sophia Owen'
"array[1]""array[1]" 文字 'array[1]' を返しますReturn these characters: 'array[1]'
"@@""@@" 1 文字の '@' を返しますReturn these characters as a one-character string: '@'
" @"" @" 2 文字の ' @' を返しますReturn these characters as a two-character string: ' @'

次の例では、"myBirthMonth" を "January" に、"myAge" を数値 42 に定義してあるものとします。For these examples, suppose you define "myBirthMonth" equal to "January" and "myAge" equal to the number 42:

"myBirthMonth": "January",
"myAge": 42

式の評価方法の例を次に示します。These examples show how the following expressions are evaluated:

JSON 式JSON expression 結果Result
"@parameters('myBirthMonth')""@parameters('myBirthMonth')" 次の文字列が返されます:"January"Return this string: "January"
"@{parameters('myBirthMonth')}""@{parameters('myBirthMonth')}" 次の文字列が返されます:"January"Return this string: "January"
"@parameters('myAge')""@parameters('myAge')" 次の数値が返されます:42Return this number: 42
"@{parameters('myAge')}""@{parameters('myAge')}" 次の数値が文字列として返されます:"42"Return this number as a string: "42"
"My age is @{parameters('myAge')}""My age is @{parameters('myAge')}" 次の文字列が返されます:"My age is 42"Return this string: "My age is 42"
"@concat('My age is ', string(parameters('myAge')))""@concat('My age is ', string(parameters('myAge')))" 次の文字列が返されます:"My age is 42"Return this string: "My age is 42"
"My age is @@{parameters('myAge')}""My age is @@{parameters('myAge')}" 式を含む次の文字列が返されます:"My age is @{parameters('myAge')}`Return this string, which includes the expression: "My age is @{parameters('myAge')}`

Logic Apps デザイナーで視覚的に作業しているときは、式ビルダーなどで式を作成できます。When you're working visually in the Logic Apps Designer, you can create expressions through the Expression builder, for example:

Logic Apps デザイナー > 式ビルダー

完了すると、ワークフロー定義内の対応するプロパティに式が表示されます。次の例では searchQuery プロパティです。When you're done, the expression appears for the corresponding property in your workflow definition, for example, the searchQuery property here:

"Search_tweets": {
  "inputs": {
    "host": {
      "connection": {
        "name": "@parameters('$connections')['twitter']['connectionId']"
      }
    }
  },
  "method": "get",
  "path": "/searchtweets",
  "queries": {
    "maxResults": 20,
    "searchQuery": "Azure @{concat('firstName','', 'LastName')}"
  }
},

演算子Operators

関数では、演算子はプロパティや配列内の値の参照などの特定のタスクを実行します。In expressions and functions, operators perform specific tasks, such as reference a property or a value in an array.

OperatorOperator タスクTask
'' 入力として、または式や関数の中で文字列リテラルを使うには、単一引用符で文字列のみをラップします (例: '<myString>')。To use a string literal as input or in expressions and functions, wrap the string only with single quotation marks, for example, '<myString>'. 二重引用符を ("") を使用しないでください。式全体を囲む JSON の書式設定と競合します。Do not use double quotation marks (""), which conflict with the JSON formatting around an entire expression. 例: For example:

正しい: length('Hello')Yes: length('Hello')
正しくない: length("Hello")No: length("Hello")

配列または数値を渡すとき、句読点をラップする必要はありません。When you pass arrays or numbers, you don't need wrapping punctuation. 例: For example:

正しい: length([1, 2, 3])Yes: length([1, 2, 3])
正しくない: length("[1, 2, 3]")No: length("[1, 2, 3]")

[][] 配列内の特定の位置 (インデックス) にある値を参照するには、角かっこを使います。To reference a value at a specific position (index) in an array, use square brackets. たとえば、配列内の 2 番目の項目を取得するには次のようにします。For example, to get the second item in an array:

myArray[1]

. オブジェクト内のプロパティを参照するには、ドット演算子を使用します。To reference a property in an object, use the dot operator. たとえば、customer JSON オブジェクトの name プロパティを取得するには、次のようにします。For example, to get the name property for a customer JSON object:

"@parameters('customer').name"

?? 実行時エラーを発生させずにオブジェクト内の null プロパティを参照するには、疑問符演算子を使います。To reference null properties in an object without a runtime error, use the question mark operator. たとえば、次の式を使うと、トリガーからの null 出力を処理できます。For example, to handle null outputs from a trigger, you can use this expression:

@coalesce(trigger().outputs?.body?.<someProperty>, '<property-default-value>')

FunctionsFunctions

一部の式では、ワークフロー定義の実行開始時にはまだ存在していない可能性のある値が、実行時のアクションから取得されます。Some expressions get their values from runtime actions that might not yet exist when your workflow definition starts to run. このような値を式で参照または使用するには、ワークフロー定義言語が提供する "関数" を使用できます。To reference or work with these values in expressions, you can use functions that the Workflow Definition Language provides.

次の手順Next steps