Logic Apps から Azure REST API を叩く
Logic Apps から Azure REST API を叩いてみたって話を書いてみます。
docs は Azure Logic Apps でマネージド ID を使用して Azure リソースへのアクセスを認証する に書いてあるののほぼ焼き直してはあるのですが。
まずは Logic Apps で Managed ID を有効化します。
次に、この Managed ID に対して RBAC を設定します。
何でもいいのですが、ここでは Resource group に対して Reader の権限をつけています。
そして、じゃあそれを HTTP connector で使っていきます。
ARM connector もあるのですが、subscription、Resource group などを分けて指定する感じになっており、そこまでのステップですでに resource ID がわかっているケースだったため、直接 REST を叩きに行きます。
Azure REST API はいろいろな形で探せるのですが、最終的には Azure REST API reference に行きつきます。
もちろん、Azure Portal の URL から推測することも可能です。
今回は https://management.azure.com
の後に Resource ID をそのまま張り付けて GET
しているため、あらゆるリソースで大体使える感じの Logic Apps になっています。
Response はもちろん JSON ですので、Azure Logic Apps でデータの操作を実行する - JSON の解析アクション を使って開いてあげれば、次のステップで便利に使うことができます。
ARM に関する操作であれば、Azure REST を Managed ID 認証で直接たたくことができるため、原理上は Azure Portal で操作可能なことはほぼすべて、Logic Apps を利用した自動化が可能なはず、ということになります。
Functions で PowerShell script を動かすことも可能でこちらもまた魅力的ですが、ケースによって使い分けるといいかと思います。
今回 Logic Apps を利用した理由としては、この後のステップで SendGrid を利用したメールの送信があり、その部分を PowerShell で記述するのが面倒だったためです。
Logic Apps はその豊富な connector が魅力ですが、それらを使いつつ、抽象度の低い HTTP connector を利用できると最強かなと思います。
Discussion