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

Azure Logic Apps を使用してロジック アプリのワークフローを作成するときは、ワークフローの基になる定義で、ロジック アプリに対して実行される実際のロジックを記述します。When you create a logic app workflow with Azure Logic Apps, your workflow's underlying definition describes the actual logic that runs for your logic app. この記述は、ワークフロー定義言語スキーマによって定義され、検証される構造に従います。このスキーマでは、JavaScript Object Notation (JSON) が使用されます。This description follows a structure that's defined and validated by the Workflow Definition Language schema, which uses JavaScript Object Notation (JSON).

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

ワークフローの定義には、ロジック アプリをインスタンス化する少なくとも 1 つのトリガーと、ロジック アプリが実行する 1 つまたは複数のアクションが含まれます。A workflow definition has at least one trigger that instantiates your logic app, plus one or more actions that your logic app runs.

ワークフロー定義の高レベルな構造を次に示します。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
定義definition [はい]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/schemas/2016-06-01/Microsoft.Logic.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

アクションactions いいえ 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 logic app 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.

パラメーターの型The type for the parameter
defaultValuedefaultValue いいえ No 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 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 でロジック アプリの実行履歴と詳細を確認するか、または ワークフローの REST API を使います。To get the output from a workflow run, review the 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')" 数値 42 が返されますReturn 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 a logic app starts to run. このような値を式で参照または使用するには、ワークフロー定義言語が提供する "関数" を使用できます。To reference or work with these values in expressions, you can use functions that the Workflow Definition Language provides.

次の手順Next steps