DevTest Labs でのラボと VM の自動シャットダウンを構成する
Azure DevTest Labs ラボ所有者は、ラボ内のすべての仮想マシン (VM) を特定の時刻または夜間にシャットダウンするスケジュールを構成できます。 使用されていないコンピューターの実行にかかるコストを削減できます。
また、中央の自動シャットダウン ポリシーを設定して、ラボ ユーザーが各自の個々の VM の自動シャットダウンをスケジュールできるようにするかを制御することもできます。 自動シャットダウン ポリシーの範囲は、VM 所有者が VM のシャットダウン スケジュールを完全に制御できるようにすることから、スケジュールを制御できないようにすることまでに及びます。
この記事では、DevTest Labs ラボと個々のラボ VM の自動シャットダウン スケジュールを設定する方法について説明します。 記事では、ラボの自動シャットダウン ポリシーを設定する方法と、自動シャットダウン通知を構成する方法についても説明します。
ラボの自動シャットダウン スケジュールを構成する
自動シャットダウンは、特定の時刻または夜間にラボのすべての VM をシャットダウンすることで、ラボの無駄を最小限に抑えるのに役立ちます。 ラボの自動シャットダウン スケジュールを表示または変更するには、次の手順を実行します。
ラボの [ホーム] ページで、 [構成とポリシー] を選択します。
左側のメニューの [スケジュール] セクションで [自動シャットダウン] を選択します。
[自動シャットダウン] 画面の [有効] に対して [オン] を選択して自動シャットダウンを有効にするか、 [オフ] を選択して無効にします。
[スケジュールされたシャットダウン] と [タイム ゾーン] に対して、自動シャットダウンをオンにした場合は、すべてのラボ VM をシャットダウンする時刻とタイム ゾーンを選択します。
[自動シャットダウンの前に通知を送信しますか?] で、指定した自動シャットダウン時刻の 30 分前に通知を送信するオプションに対して [はい] または [いいえ] を指定します。
- [はい] を選択した場合は、通知が投稿または送信される Webhook URL のエンドポイントを [Webhook URL] に入力するか、メール アドレスを [メール アドレス] にセミコロンで区切って入力します。 詳しくは、「自動シャットダウンの通知」セクションをご覧ください。
[保存] を選択します。
既定では、このスケジュールはラボ内のすべての VM に適用されます。 この設定を特定の VM から削除するには、ポリシーで許可されている場合は、その VM の管理ウィンドウを開いて [自動シャットダウン] の設定を変更します。
注意
以前にスケジュールされたシャットダウン時刻から 30 分以内にラボまたは VM の自動シャットダウン スケジュールを更新すると、新しいシャットダウン時刻は翌日に有効になります。
ラボの自動シャットダウン ポリシーを構成する
ラボ所有者は、ラボの自動シャットダウン ポリシー設定を管理することで、ラボのコストを制御し、無駄を最小限に抑えることができます。 すべてのラボ ポリシーの設定方法については、「Azure DevTest Labs でのラボのポリシーの定義」をご覧ください。
重要
シャットダウン ポリシーでの変更は、ラボで新しく作成される VM に対してのみ適用され、既存の VM には適用されません。
ラボの [ホーム] ページで、 [構成とポリシー] を選択します。
左側のメニューの [スケジュール] セクションで、 [自動シャットダウン ポリシー] を選択します。
いずれかのオプションを選択します。
ユーザーがスケジュールを設定し、オプトアウトできる: ラボ ユーザーは、ラボのスケジュールをオーバーライドまたはオプトアウトできます。 このオプションを選択すると、VM の自動シャットダウン スケジュールを VM 所有者がすべて設定できるようになります。
ユーザーがスケジュールを設定し、オプトアウトできない: ラボ ユーザーは、ラボのスケジュールをオーバーライドできますが、自動シャットダウン ポリシーをオプトアウトすることはできません。 このオプションを選択すると、すべてのラボ VM が自動シャットダウン スケジュールで管理されます。 VM 所有者は、スケジュール時刻の更新と、シャットダウン通知の設定を行えます。
ユーザーはラボ管理者が設定したスケジュールを制御できない: ラボ ユーザーは、ラボの自動シャットダウン スケジュールを変更することも、オプトアウトすることもできません。 このオプションを使用すると、ラボ管理者がすべてのラボ VM のスケジュールを完全に制御できます。 ラボ ユーザーは引き続き、各自の VM の自動シャットダウンの通知を設定できます。
[保存] を選択します。
VM の自動シャットダウン設定を構成する
自動シャットダウン ポリシーによっては、個々のラボ VM の自動シャットダウン スケジュールを設定することもできます。
VM のホーム ページの左側のメニューにある [操作] セクションで、 [自動シャットダウン] を選択します。
[自動シャットダウン] 画面の [有効] に対して [オン] を選択して自動シャットダウンを有効にするか、 [オフ] を選択して無効にします。
[スケジュールされたシャットダウン] と [タイム ゾーン] に対して、自動シャットダウンをオンにした場合は、すべてのラボ VM をシャットダウンする時刻とタイム ゾーンを選択します。
[自動シャットダウンの前に通知を送信しますか?] で、指定した自動シャットダウン時刻の 30 分前に通知を送信するオプションに対して [はい] または [いいえ] を指定します。 [はい] を選択した場合は、通知が投稿または送信される Webhook URL のエンドポイントを [Webhook URL] に入力するか、メール アドレスを [メール アドレス] に入力します。 詳しくは、「自動シャットダウンの通知」セクションをご覧ください。
[保存] を選択します。
自動シャットダウンの更新のアクティビティ ログを表示する
自動シャットダウン設定を更新した後で、VM のアクティビティ ログに記録されたアクティビティが表示されます。
VM のホーム ページの左側のメニューから、 [アクティビティ ログ] を選択します。
[リソース] フィルターを削除し、適切な [リソース グループ] フィルターを適用して、 [スケジュールの追加または変更] のエントリを表示します。
[スケジュールの追加または変更] 操作を選択して、操作に関する詳細を示す概要ページを開きます。
自動シャットダウンの通知
自動シャットダウン構成で通知を有効にすると、ラボ ユーザーは、自動シャットダウンが VM のいずれかに影響を与える 30 分前に通知を受け取ります。 通知によって、ユーザーは、シャットダウンされる前に作業を保存する機会が得られます。 自動シャットダウンの設定でメール アドレスが指定されている場合、通知はそのメール アドレスに送信されます。 設定で Webhook が指定されている場合、通知は Webhook の URL に送信されます。
通知には、他のユーザーが作業を続ける必要がある場合に、VM ごとに次の操作を行うためのリンクも含められます。
- 今回は自動シャットダウンをスキップします。
- 自動シャットダウンを 1 時間だけ一時停止します。
- 自動シャットダウンを 2 時間だけ一時停止します。
Webhook を使用して、独自の通知を実装できます。 特定のイベントをサブスクライブする統合を設定します。 これらのイベントのいずれかが発生すると、HTTP POST ペイロードが Webhook の URL に送信されます。
Azure Logic Apps や Slack などのアプリでは、Webhook が広範囲にサポートされています。 Webhook への応答の詳細については、「Azure Functions の HTTP トリガーとバインドの概要」と Azure Logic Apps 用の HTTP トリガーの追加に関するページを参照してください。
次の例では、Logic Apps を使用して、VM 所有者にメールを送信する自動シャットダウン通知を構成する方法を示します。
メール通知を送信するロジック アプリを作成する
Azure Logic Apps によって、Office 365 や X などの他のクライアントとサービスを簡単に統合できる多くのコネクタが提供されます。大まかに言うと、電子メール通知用のロジック アプリを設定する手順は次のとおりです。
- ロジック アプリを作成します。
- 組み込みのテンプレートを構成します。
- メール クライアントと統合します。
- 自動シャットダウン通知設定で使用する Webhook URL を取得します。
まず、次の手順でロジック アプリを Azure に作成します。
Azure portal で、上部の検索フィールドに「logic apps」と入力し、 [Logic Apps] を選択します。
[Logic Apps] ページの上部で、 [追加] を選択します。
[ロジック アプリの作成] ページで次のようにします。
Name 値 サブスクリプション お使いの Azure サブスクリプションを選択します。 リソース グループ リソース グループを選択するか、新しく作成します。 ロジック アプリ名 ロジック アプリのわかりやすい名前を入力します。 公開 ワークフロー リージョン 自分の近くのリージョン、またはロジック アプリがアクセスする他のサービスの近くにあるリージョンを選択します。 プランの種類 従量課金。 従量課金プランを使用すると、ロジック アプリ デザイナーを使用してアプリを作成できます。 Windows プラン 既定の App Service プラン (ASP) をそのまま使用します。 料金プラン 既定のワークフロー Standard WS1 (合計 210 ACU、3.5 GB メモリ、1 vCPU) をそのまま使用します ゾーン冗長性 既定値の [無効] をそのまま使用します。 [確認および作成] を選択し、検証に成功したら [作成] を選択します。
デプロイが完了したら、[リソースに移動] を選択します。
次に、組み込みのテンプレートを構成します。
[ロジック アプリ] ページで、左側のナビゲーションの [デプロイ ツール] の下にある [ロジック アプリ デザイナー] を選択します。
上部のメニューで、 [テンプレート] を選択します。
[テンプレート] の下で [HTTP 要求/応答] を選択します。
[HTTP 要求と応答] ページで、 [このテンプレートを使用] を選択します。
次の JSON コードを [要求本文の JSON スキーマ] セクションに貼り付けます。
{ "$schema": "http://json-schema.org/draft-04/schema#", "properties": { "delayUrl120": { "type": "string" }, "delayUrl60": { "type": "string" }, "eventType": { "type": "string" }, "guid": { "type": "string" }, "labName": { "type": "string" }, "owner": { "type": "string" }, "resourceGroupName": { "type": "string" }, "skipUrl": { "type": "string" }, "subscriptionId": { "type": "string" }, "text": { "type": "string" }, "vmName": { "type": "string" }, "vmUrl": { "type": "string" }, "minutesUntilShutdown": { "type": "string" } }, "required": [ "skipUrl", "delayUrl60", "delayUrl120", "vmName", "guid", "owner", "eventType", "text", "subscriptionId", "resourceGroupName", "labName", "vmUrl", "minutesUntilShutdown" ], "type": "object" }
次にメール クライアントと統合します。
デザイナーで、 [新しいステップ] を選択します。
[操作を選択してください] ページで、検索フィールドに「Office 365 Outlook - Send an email」と入力し、 [アクション] から [メールの送信 (V2)] を選択します。
[メールの送信 (V2)] フォームで、 [宛先] 、 [件名] 、 [本文] のフィールドに入力します。
[動的なコンテンツの追加] を選択すると、アプリとコネクタで使用される値が通知に自動的に設定されます。 たとえば、 [宛先] で、 [所有者] を選択します。 [件名] に vmName と labName を入力します。 skipUrl や delayUrl 値などのコンテンツをメッセージ本文に追加します。
ツールバーの [保存] を選択します。
これで Webhook URL をコピーできます。
[HTTP 要求の受信時] ステップを選択し、コピー ボタンを選択して HTTP POST URL をクリップボードにコピーします。
この Webhook URL を自動シャットダウン通知設定に貼り付けます。
[保存] を選択します。