【Azure】Logic Appsで仮想マシンを特定の時間に自動起動させてみた

Azure LogicApps

Azureポータル上で仮想マシンの自動シャットダウン設定は簡単に設定することができますが、自動起動することは簡単にはできません。

そこで、ロジックアプリとRestAPIを組み合わせて仮想マシンを特定の時間に自動的に起動させてみました。

広告

ロジックアプリの作成

今回は以下のような設定値で作成しました。

  • サブスクリプション:[サブスクリプション名](選択)
  • リソースグループ:[リソースグループ名](選択)
  • ロジックアプリ名:任意の値
  • 地域:Japan East(選択)
  • ログを有効化:いいえ(デフォルト値)
  • プランの種類:消費(デフォルトは[Standard])
  • ゾーン冗長:無効(デフォルト値)

プランについては「消費」を選択することで利用した分だけ課金されるようにしました。

ロジックアプリの作成画面
広告

RestAPIを利用したロジックアプリデザイナーの設定

作成したロジックアプリから[ロジックアプリデザイナー]を利用して設定していきます。

今回は「繰り返し」と「変数」と「HTTP」のアクションを組み合わせて以下のようなロジックを組み立てます。

ロジックアプリデザイナーの最終構成画面

➀[繰り返し]アクションの設定

今回は日本時間の午前10:00に毎日実行されるように設定します。

[繰り返し]アクションの設定

➁[変数]アクションの設定

[変数] アクションの中から「変数を初期化する」を選択して設定します。

「変数を初期化する」を選択

仮想マシンを起動するRestAPIのパラメータとして、[サブスクリプションID] と仮想マシンが所属している [リソースグループ名]、そして [仮想マシン名] が必要なので、それらを変数に格納していきます。

変数の設定

サブスクリプションIDも文字列として利用することに注意してください。

③[HTTP] アクションの設定

最後に➁で変数化した値をRestAPIとして送信します。

[HTTP] アクションの「HTTP」を選択して設定します。

「HTTP」を選択

[種類] は「POST」を選択して、[URI] は以下のURLをコピーした上で {} の部分を➁で定義した変数として設定します。

https://management.azure.com/subscriptions/{subscription_id}/resourceGroups/{resourcegroup_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/start?api-version=2021-11-01
[HTTP] アクションの設定

[認証] については今回は「マネージドID」を利用しており、そのマネージドIDに対してRBACなどが適切に設定されている前提で設定しています。

ロジックアプリのマネージドIDの設定方法については下部の「[参考] マネージドIDの設定方法」で記載していますので参考にしてみてください。

これですべての設定が完了しました。

広告

ロジックアプリを実行させて仮想マシンが起動するかを確認する

ロジックアプリデザイナーの画面から [トリガーの実行] をクリックすることで、アクションで指定した時間にかかわらず実行することができます。

[トリガーの実行] をクリック

実行後は少し時間がかかりますが、以下のようにすべてのアクショが緑色になれば処理は成功です。(今回は実行してから約1分かかりました)

実行後の画面

仮想マシン側のアクティビティログを確認してみるとイベント開始者にロジックアプリのリソース名が表示されます。

アクティビティログでの確認画面

仮想マシンも「実行中」に変わり、起動していることを確認できます。

仮想マシンの状態確認画面
広告

[参考] マネージドIDの設定方法

➀ロジックアプリのリソースのページから [ID] を開き、[システム割り当て済み] のタブであることを確認して、[状態] を「オン」に変更します。

マネージドIDの設定方法1

➁その後オブジェクトIDなどが表示されるので、[Azureロールの割り当て] をクリックします。

マネージドIDの設定方法2

③[+ロール割り当ての追加] をクリックするとロール割り当て追加のポップアップ画面が開くので、[スコープ] と [サブスクリプション] を指定した上で、[役割] を指定し保存をクリックします。

今回は「仮想マシン共同作成者」を選択してみました。

マネージドIDの設定方法3

※「サーバエラーが発生しました・・・」は無視して設定しましたが、設定可能でした。

④以下のように表示されれば設定完了です。

マネージドIDの設定方法4

[割り当てユーザー/グループ] にはロジックアプリのリソース名が記載されます。

広告

さいごに

仮想マシンを指定した時間に起動出来たらとても楽だなと思ったのでマネージドIDにも触れつつ試してみました。

やはり自動化できるところはしていきたいですね。

今回は1つの仮想マシンが対象でしたが、次回は複数の仮想マシンを1つのロジックアプリで同時に起動できないか試してみたいなと思います。

コメント

タイトルとURLをコピーしました