Start/Stop VMs v2を複雑な状況でも使いこなせる

はじめに

最近Start/Stop VMs v2を再度触る機会がありまして、少し複雑な状況でも実現できる設定方法を共有したいと思います。

コスト削減につながる内容なので、みなさんもぜひ試してみてください。

 

 

前提条件

例えば、同じリソースグループに3台のVMがあり、起動停止時間と曜日がバラバラになっている状況だとします。

サーバーA、サーバーBの起動時間が6時で、サーバーAは平日のみ稼働、サーバーBは毎日稼働(週末を含む)

サーバーCの起動時間が9時で平日のみ稼働

 

 

使用リソース

Start/Stop VMs v2をデプロイ後、ロジックアプリデザイナーのみで設定し、ロジックアプリコードビューは設定しません。

※ロジックアプリデザイナーを設定すると、自動的にロジックアプリコードビューに反映する為。

 

 

概要図と流れ

実際の設定方法説明の前に概要図をご覧になると理解しやすいです。

Switch、Case、Scheduledを追加する方法と、各設定方法は構成図以降で説明します。

サーバーCについては平日のみ稼働となりますので、月曜日~金曜日まで起動/停止用のScheduledを追加し、土曜日と日曜日のCase配下には何も追加しません。

 

 

流れ

構成図をご覧になるとわかると思いますが、流れとしては以下となります。
①Recurrenceで起動時間と曜日を指定
②Switch1で実行時の日本時間を取得
③Case1でサーバー起動時間を指定し、実行時間と一致するCaseが実行される
④Switch2で実行時の曜日を取得
⑤取得した曜日と一致するCaseが実行される
⑥実行されるCaseの配下にあるScheduledが実行され、VMが起動

 

Switch追加方法

①「ロジックアプリデザイナー」で「+」をクリック

 

②「並列分岐の追加」をクリック

 

③検索バーに「Switch」を入力し、表示された「Switch」をクリック

 

④追加された「Switch」をクリック

 

⑤「fx」のマークをクリックして関数を追加

 

⑥以下内容を状況に応じて追加

・実行時の日本時間取得時:

convertFromUtc(UtcNow(), 'Tokyo Standard Time', 'HH:mm')
 
・実行時の曜日を取得時:
dayOfWeek(convertFromUtc(utcNow(), 'Tokyo Standard Time'))

 

Case追加方法

①「ロジックアプリデザイナー」で「+」をクリック

 

②時間と曜日を登録

・時間の登録方法(10時の場合):10:00

・曜日の登録方法(月曜日の場合):1

※月曜日:1、火曜日:2、水曜日:3、木曜日:4、金曜日:5、土曜日:6、日曜日:0

 

Scheduled追加方法

①「ロジックアプリデザイナー」で「+」を追加

 

②検索バーに「Function-try」を入力し、表示された「Choose an Azure Function」をクリック

 

③同じリソースグループにあるfunctionが表示されたらクリック

 

④末尾が「scheduled」になっているリソースをクリック後、「Add action」をクリック

 

⑤追加されたScheduledをクリックし、「Request Body」にVMを起動するコードを登録

※「”/subscriptions/c82cxxxx-0exx-4xxx-8xxx-e20xxe2b4xxb/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/test-vm01″」の部分はVMのリソースIDとなります。

複数のVMを起動時にはカンマで区切って登録してください。

{
"Action": "start",
"EnableClassic": false,
"RequestScopes": {
"VMLists": [
"/subscriptions/c82cxxxx-0exx-4xxx-8xxx-e20xxe2b4xxb/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/test-vm01",
"/subscriptions/c82cxxxx-0exx-4xxx-8xxx-e20xxe2b4xxb/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/test-vm02"
]
}
}

 

最後に

概要図を参考にして各Switch、Case、Scheduledを追加とコードを登録後、「ststv2_vms_Scheduled_start」の概要欄で「Enable」を押すと指定した時間にVMを自動起動できます。

停止の場合、「ststv2_vms_Scheduled_stop」でScheduledに登録するVM起動用コードの「start」を「stop」に変更するだけで他は全部同じです。

 

また、起動/停止時間を設定時に、定時起動の場合、「定時:01分」にするといいです。

よく1分前に実行されますので、そうなるとVMが起動しません。ご注意ください。

例えば09:00起動だとすると、09:01を登録

 

以上です。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください