このエントリは2020/09/28現在の情報に基づいています。将来の機能追加や変更に伴い記述内容との乖離が発生する可能性があります(2020/12/23に追記)。
Igniteにあわせて、Functionsベースの新たなプラットフォームで稼働するLogic AppがPreviewとして登場した。つまりコンテナ化される、ということ。
Logic Apps updated with new hosting options, improved performance and developer workflows
https://azure.microsoft.com/updates/logic-apps-updated-with-new-hosting-options-improved-performance-and-developer-workflows/
Program Managerの書いたブログエントリも上がっている。
New Logic Apps runtime, performance and developer improvements
https://techcommunity.microsoft.com/t5/azure-developer-community-blog/new-logic-apps-runtime-performance-and-developer-improvements/ba-p/1645335
何が変わるのか
- Functionsベースに変わることで、クラウド、オンプレミスを問わずFunctionsランタイムがあれば実行出来るようになる。Daprとの組み合わせも可能なので、マイクロサービスのオーケストレーターとしてLogic Appを使うということもできる。
Dapr Workflows – Run Cloud-Native Workflows using Dapr
https://github.com/dapr/workflows
- Function Appのように、1個のApp内に複数のワークフローをまとめることができる(現行はLogic App1個ごとに1個のフロー)。
- Stateful、Statelessの両方のワークフロー(システムワークフロー)を作成できる。
- Stateful
これまで通りのフロー。Azureへデプロイする際にステート保持のためにストレージアカウントを作成する(WS-BPELやBizTalkでいうDehydration storeに相当)。 - Stateless
新しいオプション。高速に動作するよう、ステート管理はメモリ内のみで、Dehydration storeへの永続化はしない(デバッグ目的で履歴を実行することは可能)。
- Stateful
- 開発者を中心に、ということでVS Codeでのローカルでの開発、テストまでできるようになる(これまでもExtensionを使った実装は可能だった)。
利用可能なリージョン(2020/12/23現在)
以下に記載の通り、Azure全リージョンで利用できる。
Available regions
https://github.com/Azure/logicapps/blob/master/articles/logic-apps-public-preview-known-issues.md#available-regions
作成環境
CLI、PowerShellからは作成できないが、Azure PortalもしくはVisual Studio CodeのExtensionを使って作成できる。以下のドキュメントではVisual Studio Codeを使う方法を説明している(2020/10/30現在、2020/10/16更新分の英語ドキュメントはまだ日本語ドキュメントには反映されていない)。
Create stateful or stateless workflows in Visual Studio Code with the Azure Logic Apps (Preview) extension
https://docs.microsoft.com/azure/logic-apps/create-stateful-stateless-workflows-visual-studio-code
注意点
- Previewのため、SLAはない。
- VS Codeを使う場合、ローカル開発のためにStorage Emulatorを実行しておく必要がある(これはDesignerを使う場合に必要なので、開発にあたって事前に用意しておかねばならない)。
- Statelessの場合、利用可能なコネクターには以下の引用のような制限がある。ワークフロー起動にあたっては、組み込みリクエスト、Event Hubs、Service Busのトリガーのみをサポート(通常のHTTPは問題ない)。
Stateless workflows currently support only actions for managed connectors, not triggers. To start your workflow, select the built-in Request, Event Hubs, or Service Bus trigger. For more information about unsupported triggers, actions, and connectors, see Unsupported capabilities.
Stateful versus stateless logic apps – https://docs.microsoft.com/azure/logic-apps/create-stateful-stateless-workflows-visual-studio-code#stateful-versus-stateless-logic-apps
(ステートレスなワークフローでは、現在、トリガーではなくマネージド コネクタに対するアクションのみがサポートされています。 ワークフローを開始するには、組み込みの Request トリガー、Event Hubs トリガー、または Service Bus トリガーを選択します。 サポートされていないトリガー、アクション、コネクタの詳細については、サポートされていない機能を参照してください。)