Azure Logic Apps のワークフロー アクションで並列分岐を作成または結合する
適用対象: Azure Logic Apps (従量課金プラン + Standard)
既定では、ロジック アプリ ワークフロー内のアクションは順番に実行されます。 アクションを別々の分岐に編成し、それらの分岐を同時に実行するには、並列分岐を作成して、ワークフローで後からそれらの分岐を結合することができます。
このガイドでは、次の概要図に示すように、ワークフローで並列分岐を作成し、それらの分岐を再結合する方法を示します。
ヒント
ワークフロー トリガーが配列を受け取り、配列内の各項目に対してワークフロー インスタンスを実行したい場合は、並列分岐を作成するのではなく、代わりに SplitOn トリガー プロパティ を使ってその配列を "バッチ解除" できます。
前提条件
Azure サブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。
トリガーで開始するロジック アプリ ワークフローと必要なアクション。 ワークフローに複数のアクションが含まれ、それらの間に並列分岐を追加する必要があることを確認します。
並列分岐の使用に関して考慮すべきこと
並列分岐は、その runAfter プロパティの値が親アクションの完了状態と一致する場合にのみ実行されます。 たとえば、branchAction1 と branchAction2 で開始する分岐はどちらも、parentAction が Succeeded 状態で完了した場合にのみ実行されます。
ワークフローは、同じレベルのすべての並列分岐が完了するのを待ってから、これらの分岐を結合するアクションを実行します。
並列分岐アクションを追加する
Azure portal で、Standard ロジック アプリのワークフローをデザイナーで開きます。
並列分岐を追加するアクションの間を接続する矢印の上に、ポインターを移動します。
表示されるプラス記号 (+) を選んでから、[並列分岐の追加] を選びます。
次に、並列分岐で実行するアクションを追加します。 [アクションの追加] ペインと検索ボックスで、目的のアクションを見つけて選びます。
これで、次の例のように、選んだアクションが並列分岐に表示されます。
並列分岐に別のアクションを追加するには、新しいアクションを追加するアクションの下にあるプラス (+) 記号を選んで、[アクションの追加] を選びます。
[操作を選択してください] 検索ボックスで、目的のアクションを見つけて選びます。
これで、次の例のように、選択したアクションが現在の分岐に表示されます。
分岐を 1 つに戻すには、並列分岐を結合します。
並列分岐定義 (JSON)
コード ビューで作業している場合、代わりに次の例のように、ロジック アプリ ワークフローの JSON 定義で並列構造を定義できます。
{
"triggers": {
"myTrigger": {}
},
"actions": {
"parentAction": {
"type": "<action-type>",
"inputs": {},
"runAfter": {}
},
"branchAction1": {
"type": "<action-type>",
"inputs": {},
"runAfter": {
"parentAction": [
"Succeeded"
]
}
},
"branchAction2": {
"type": "<action-type>",
"inputs": {},
"runAfter": {
"parentAction": [
"Succeeded"
]
}
}
},
"outputs": {}
}
並列分岐を結合する
並列分岐をマージするには、すべての分岐の下に別のアクションを追加するだけです。 このアクションは、上記のすべての並列分岐の実行が完了した後でのみ実行されます。
Azure portal で、Standard ロジック アプリと、結合する並列分岐を含むワークフローを、デザイナーで開きます。
結合する並列分岐のいずれかの下にあるプラス記号 (+) を選んで、[アクションの追加] を選びます。
[アクションの追加] ペインと検索ボックスで、分岐の結合に使うアクションを見つけて選びます。
デザイナーで、前に追加したアクションを選びます。 アクションの情報ペインが開いたら、[設定] を選びます。
[設定] ペインの [Run After] (実行条件) で [アクションの選択] の一覧を開き、結合アクションの実行前に完了する必要がある各分岐の最後のアクションを選びます。
これは実質的に、選んだすべてのアクションの実行完了後にのみ結合アクションを実行するよう指定することになります。
完了すると、選んだアクションが、結合する並列分岐の下に表示されます。次に例を示します。
結合の定義 (JSON)
コード ビューで作業している場合、代わりに次の例のように、ロジック アプリ ワークフローの JSON 定義で結合アクションを定義できます。
{
"triggers": {
"myTrigger": { }
},
"actions": {
"parentAction": {
"type": "<action-type>",
"inputs": { },
"runAfter": {}
},
"branchAction1": {
"type": "<action-type>",
"inputs": { },
"runAfter": {
"parentAction": [
"Succeeded"
]
}
},
"branchAction2": {
"type": "<action-type>",
"inputs": { },
"runAfter": {
"parentAction": [
"Succeeded"
]
}
},
"joinAction": {
"type": "<action-type>",
"inputs": { },
"runAfter": {
"branchAction1": [
"Succeeded"
],
"branchAction2": [
"Succeeded"
]
}
}
},
"outputs": {}
}