6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VS Code で Logic Apps のプレビュー版を試してみる!結構期待

Posted at

Logic Apps は Azure 上でワークフローを組み立てることが出来るサービスでコードを書かなくていいノーコード・ローコードと呼ばれる部類のサービスになります。
その Logic Apps が先日の Microsoft Ignite 2020 でアプデーとがあって Logic Apps (Preview) というものが新規作成できるようになってました。

このプレビューの更新の内容は ここらへん に書いてあるものが該当するのかなと思います。

やってみよう

みんな大好き Visual Studio Code での開発がサポートされているみたいなので、さっそく Azure Logic Apps (Preview) の拡張機能を入れます!Previwe ついてない方の拡張機能じゃなくて Preview ついてるほうが今回のプレビュー版の機能をサポートしているやつになります。

image.png

ダウンロード数が不安になるくらい少ないですがまぁいいでしょう。人柱になる気持ちで。ユーザー設定を眺めてると Azure Logic Apps V2: Project Runtime の設定が ~1 になってたので ~3 にしておきました。

image.png

LOGIC APPS (PREVIEW) というのが VS Code のツールバーの Azure の画面に追加されてますね!!

コマンドパレットから Logic Apps の Create new project を実行するとフォルダーを選択したあとに以下のようにステートフルかステートレスかを選択できる画面が出ます。ステートレスは今回追加された状態保存しないかわりにパフォーマンスがいいやつですね!!

image.png


.NET 5 RC1 入れている人向けの注意点

私は .NET 5.0 SDK RC1 と .NET Core 3.1 SDK を入れていたのですが、.NET Core 3.1 の SDK を入れろとプロジェクト作成時に怒られてしまいプロジェクトが作成できませんでした。雑な対処法ですが c:\Uers\ユーザー名 直下に以下のような内容の global.json を置くことで強制的に .NET Core 3.1 を使うように指定してエラーを回避しました。

global.json

Code.exe のある場所やプロジェクトを生成するフォルダーに global.json を置くのではダメでした。


さて、手書きが苦行と有名(個人の感想です)な Logic Apps の JSON が出てきました。

image.png

でも、Open in designer で開くとデザイナーで開けます!最高!!

image.png

いつまで経ってもデザイナーが表示されないので Visual Studio Code の OUTPUT ウィンドウで Azure Logic Apps (Preview) の出力を見てみるとエラー出ました!!

image.png

ふむふむ、Logic Apps のローカル実行は Azure Functions Core Tools を使ってるので、見慣れたメッセージですね。ここ日本語文字化けせずに表示されないのはなおらないのかなぁと思いつつ生成された local.settings.json を見てみると以下のようにローカルのストレージエミュレーターを使うように構成されていました。

local.settings.json
{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  }
}

そういえば、今日は Azure Storage Emulator をまだ起動していなかったなと思ったので起動して再度デザイナーで開くと表示されました。

image.png

開く過程で各種サービスとの接続を何処に作るか選択する選択肢が出てきたので自分の Azure サブスクリプションの適当な空のリソースグループを選択しておきました。

適当な一本道のワークフローを作ってみました。ここらへんは Azure ポータルでやってたのと感覚的には同じですね。

image.png

F5 を押すとデバッグ実行も出来ます

image.png

workflow.json の右クリックメニューから Overview を選ぶと呼び出すための URL をゲットできるので VS Code の拡張機能の REST Client で叩いてみましょう。

image.png

ばっちりですね。ただ、ステートレスなワークフローの場合は Overview のページに実行履歴とかが表示されません。デバッグ時には不便なので workflow-designtime/local.settings.json に以下のような設定をすることで実行履歴がオンになるみたいです。

local.settings.json
{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "Workflow.Stateless1.OperationOptions": "WithStatelessRunHistory" // Stateless1 のところに自分のワークフローの名前を入れる
  }
}

でも、残念ながら自分の環境では、これでは履歴が有効になりませんでした。また後でやってみよう。

Azure にデプロイ

VS Code からデプロイも出来ます。

image.png

各種選択肢が出てきますが現時点では App Service Plan か、Premium プランを選ぶしかないみたいなのでお金がかかっちゃうところが少し試すにはネックかもしれませんね。

デプロイが完了すると、こんな感じでクラウド上のデザイナーでも確認できました。

image.png

URLをゲットして叩いてみるとばっちり動きました。今回のワークフローは外部リソースに依存していないシンプルなものですけど Twitter や Outlook とかにつないでるとどうなるのかは気になりました。

image.png

Docker への展開

これは試してないのですが docker イメージにすることも出来るようです。これで現実的な選択肢かどうかは置いておいて何処でも動かそうと思えば動かせる感じですね。詳細は以下のドキュメントにあります。

まとめ

新しいローカルでの開発の VS Code 拡張機能やローカルデバッグなど個人的にはこれは GA したら使いやすい感じになりそうだなと思いました。
今までは謎ランタイム(個人の感想)の上で動いていたものが、Azure Functions が動く環境ならどこでも動きそうな空気を醸し出してるあたり好きです。

今後も新しい Logic Apps については追いかけてみようかなと思いました。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?