LoginSignup
1

More than 5 years have passed since last update.

httpリクエストでAzureVMを起動/割り当て解除してみる

Last updated at Posted at 2018-02-09

案件でAzureを扱うことになり、WebアプリからAzureVMを起動することが必要になりそうということで、Azure初心者ながら調べてみました。
WebアプリからVMを起動する方法は少なくとも2通りありそうです。

  • Azure Automation(Webhook + Runbook)
  • Azure REST API

今回はAzure Automationでのやり方について記述したいと思います(REST APIはまだ調べてないのでまた後日に。。。)

Azure Automation の場合はAzureポータル上で作業するだけでいいので簡単に利用できます!
基本的な作業の流れは以下のとおりです。
AzureアカウントとAzureVMの作成は各自で準備をお願いします。

  1. automationアカウント作成
  2. VM起動用またはVM割り当て解除用のRunbookインポート
  3. 作成したRunbookにWebhook追加

1.automationアカウント作成

Azureポータルの「その他のサービス」から「Automation アカウント」を選択します。
(一覧で見つからない場合は画像のようにフィルタで絞ってください)
automationAccount.png

「追加」を選択してアカウントを作成してください。
リソースグループは対象のVMと同じグループにしています。
automationAccount_2.png

2. VM起動用またはVM割り当て解除用のRunbookインポート

作成したautomationアカウントのページに移動してください。
ここからVM起動/割り当て解除用のRunbookを作成しますが、いちから作るのはめんどくさいので今回はすでに用意してあるRunbookをインポートします。
(一から作りたい方はこちらを参考にしてください)

「Start Azure V2 VMs」「Stop Azure V2 VMs」のインポート

automationアカウントのページから「Runbookギャラリー」を選択し
「Start Azure V2 VMs」「Stop Azure V2 VMs」の2つのRunbookをインポートします。
名前のとおり、「Start Azure V2 VMs」がVM起動用Runbbok、「Stop Azure V2 VMs」がVM割り当て解除用Runbookになります。
import.png

「Start Azure V2 VMs」「Stop Azure V2 VMs」の入力項目設定

インポートしたRunbookの入力パラメータを設定します。(「Start Azure V2 VMs」「Stop Azure V2 VMs」どちらとも同じパラメータを設定します)
オプション項目ですので設定しなくても動くと思いますが、サブスクリプション内のすべてのVMに対して実行されるようなので、特定のVMにのみ実行させたい場合はパラメータを設定する必要があります。

インポートしたRunbookのページに移動し、「編集」->「入力と出力」を選択してください。入力パラメータが3つあります。「ResouceGroupName」「VMName」 の既定値をカスタムに設定し、任意の文字列を入力してください。AzureConnectionAssetName は変更しなくて問題ありません。

  • ResouceGroupName :対象VMの存在するリソースグループ名
  • VMName :対象VM名

inputparam.png

値を変更後、「保存」を選択し、「テストウィンドウ」で正しく動作するか確認してください。
「開始」ボタンを押してテストを実行します
「Start Azure V2 VMs」の場合はコンソールに<vmName> has been started.と表示されれば成功です。

3. 作成したRunbookにWebhook追加

作成したRunbookの詳細ページから「Webhook」を選択してください。
その後「新しいWebhookを作成します」を選択します。
任意の名前を入力し、「OK」を押してください。
パラメータと実行設定は、既定値で問題なければそのまま「OK」を押します。
ここを変更することでwebhook毎に異なるパラメータで実行できるようです。

「作成」ボタンを押す前にWebhookのURLは必ず保管してください。
作成後はURLを確認することができなくなります。

createWebhook.png

Webhook作成後、取得したURLをPOSTで送信してみてください。
対象のVMが起動または割り当て解除したら無事成功です。
(実行まで少し時間がかかります)

まとめ

ポータル上の作業で簡単に実装することができました。
VMの起動/割り当て解除程度ならREST APIを使わなくてもよさそうですね。
REST APIで実装する方法は後日調べてから追記したいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1