2017年6月29日木曜日

LogicApps に追加された Batch コネクタを試してみる

先日、海外で開催されている Integrate2017 にて発表された、LogicApps でのバッチ処理用コネクタリリースアナウンス。突然の話だったのですが、本日現在すでに利用可能となっていますので、どのような挙動なのかを確認してみました。

Batch コネクタは、1 つのトリガと 1 つのアクションで構成されています。

画像に含まれている可能性があるもの:テキスト

今回のコネクタは、これまでのコネクタと変わり、LogicApps 内部で特殊な制御を行うためのものとなっています。Batch コネクタのアクションから、別の LogicFlow の Batch コネクタトリガを呼び出す、というものです。制約としては、それぞれの LogicFlow は同一リージョンになくてはならない、となります。

image

まずは呼び出される側の LogicFlow です。こちらでは Batch コネクタのトリガを利用します。この際に必要な設定が 2 つあります。

一つは BatchName で設定するバッチ処理名。ここで指定した名称は、呼び出し側で指定する必要があります。もう一つは MessageCount という設定で、これは「何度呼び出しが来たタイミングで、LogicFlow を実行するか」という設定になります。

上記の画面では MessageCount = 2 として設定していますので、2 度 Batch コネクタで呼び出されて初めて後続の処理が実行されることとなります。

image

呼び出し元側の LogicFlow では、このような形で Batch コネクタのアクションを利用します。

BatchName には、呼び出される側で設定しているバッチ処理名を設定し、Message Content には呼び出し側に受け渡すデータ(文字列)を設定します。現時点では必須となっていますので、何かしら設定が必要ですが、呼び出される側の LogicFlow でそれをどうこうする必要はありません。

image

実際の実行はこのような感じになります。呼び出し側で2度 Batch を呼び出すと・・・

image

上記のように、呼び出され側が 1 回実行されているのがわかります。これは MessageCount に 2 を設定しているので、2度呼び出されて初めて 1 度実行される、という挙動になっているのがわかるかと思います。

image

呼び出された際には、2回分の内容が配列となって受け渡されています。ただ現時点ではデザイナー上で Batch コネクタがうまくサポートできておらず、値選択のダイアログ上には表示されていません。Message Content の値など利用する場合は、直接記述にて利用することになりそうです。

これまでは直接 LogicFlow を呼び出すことはできても、呼び出しに対してまとめて処理を行う方法は提供されていませんでした。自前でその仕組みをつくるなどすれば可能でしたが、このコネクタによってさらに簡単に処理を構築できるようになったと思います。

0 件のコメント:

コメントを投稿