間が空いてしまいましたが、
AzureAutomationでスマホからazureVMを起動/停止⇒Discordに起動/停止の通知してみた1 の続きです。
今回は作成手順を簡単に書いていきます。
#1.Azureへログインし、Automationアカウントを作成する
#2.VM起動/停止のRunbookは「Runbookギャラリー」にテンプレートがあるので、「Start Azure V2 VMs」「Stop Azure V2 VMs」をインポートする
#3.インポートされたことを確認。「Start Azure V2 VMs」をクリック
#4.編集をクリック
グラフィックRunbookの編集が開きます
#5.StartVM下の条件式を編集
そのままだとエラーを返してしまうので、以下のように条件式を修正する(Failedの条件はFalseにする)
$ActivityOutput['Start VM'].Status -eq "Succeeded"
↓
$ActivityOutput['Start VM'].IsSuccessStatusCode -eq $true
#6.Discordに通知する部分を追加
###Notify~の出力メッセージを JSON に変換して、その内容を Webhook で Discord に通知します。
左側の検索で「Write-Output」と入力し、ヒットしたものを右クリックし、「キャンバスに追加」をクリックして追加する。
###Notify~の下に追加したWrite-Outputを移動し、Notify~とWrite-Outputを矢印で結ぶ
###ConvertTo-Jsonを追加
左側の検索で「ConvertTo-Json」と入力し、ヒットしたものを右クリックし、「キャンバスに追加」をクリックして追加する。
追加したものをWrite-Outputの下に移動し、矢印で結ぶ
###ConvertTo-Jsonのパラメータを設定
ConvertTo-Jsonのパラメータを、rite-Outputからアクティビティの出力を受け取るように設定し、OKをクリック。
###Invoke-WebRequestを追加
左側の検索で「Invoke-WebRequest」と入力し、ヒットしたものを右クリックし、「キャンバスに追加」をクリックして追加する。
追加したものをConvertTo-Jsonの下に移動し、矢印で結ぶ
###Invoke-WebRequestのパラメータを設定
ConvertTo-Json のアクティビティの出力を POST で送信するため、パラメータを設定
Content-Type に application/json; charset=utf-8 を指定
#8.開始トリガーのWebhookを作成
###Webhookの追加をクリック
###追加に必要な項目を入力し作成する
※このWebhookのURLは作成時のみでしか確認できないので、控えておく
#9.IFTTTでトリガーを作成
###Createをクリック
###buttonをトリガーにAzureVMを起動するように作成
今回はスマホにIFTTTのbutton widgetを追加して、ボタンを押すと起動するようにしたいので、トリガーをボタンにする
#10.スマホにIFTTTアプリをインストールし、Wedgetを追加
#11.スマホに追加したボタンを押して、AzureVMが起動/停止し、Discordに通知されることを確認する。
#おわりに
個人でAzure上にゲームサーバを構築して遊ぶとなるとコストが気になるところなので、必要な時だけワンタッチでサーバが起動できるのは便利だなと思いました。
あと、Discordに通知するメッセージは、Runbookのパラメータをいじれば日本語で出力することもできるので、お試しあれ