Azure

RESTで仮想マシンを展開してみる

はじめに

RESTで仮想マシンを展開することはほぼないでしょう。アプリケーションに組み込むなどの場合ぐらいかもしれません。

Azure REST API リファレンス ドキュメント | Microsoft Learn
Azure REST API リファレンス ドキュメント | Microsoft Learn

サポートされている操作、要求 URI パラメーター、要求本文、応答、オブジェクト定義など、Azure REST API のリファレンス ドキュメント。

learn.microsoft.com

もとをただせばAzure CLIなどもRESTです。デバックを見ているとRESTで行っていることがわかります。

今回は例として仮想マシンを展開してみたいと思います。下記は仮想マシンの展開方法について書かれています。

Virtual Machines - Create Or Update - REST API (Azure Compute) | Microsoft Learn
Virtual Machines - Create Or Update - REST API (Azure Compute) | Microsoft Learn

仮想マシンを作成または更新する操作。 一部のプロパティは、仮想マシンの作成時にのみ設定できます。

learn.microsoft.com

準備

RESTで仮想マシンを作成する場合、仮想マシンとOSディスクだけ作成されます。ネットワーク周りは事前に作成しておく必要があります。

  • リソースグループ
  • 仮想ネットワーク
  • ネットワークインタフェース

これらは事前に作成しておく必要があります。

仮想マシの展開

展開するにはRESTを発行する必要があります。PowershellやWSLなどを利用して発行することも可能ですが今回はLearnのフォーカスモードの機能を利用しています。

Virtual Machines - Create Or Update - REST API (Azure Compute) | Microsoft Learn
Virtual Machines - Create Or Update - REST API (Azure Compute) | Microsoft Learn

仮想マシンを作成または更新する操作。 一部のプロパティは、仮想マシンの作成時にのみ設定できます。

learn.microsoft.com

コードの部分に使ってみるがあります。これをクリックするとフォーカスモードが開きます。

フォーカスモードです。ログインを求められ、完了後に右側に入力画面はでます。

リソースグループと仮想マシンの名前を入力します。

本文には下記を参考に入力します。

Virtual Machines - Create Or Update - REST API (Azure Compute) | Microsoft Learn
Virtual Machines - Create Or Update - REST API (Azure Compute) | Microsoft Learn

仮想マシンを作成または更新する操作。 一部のプロパティは、仮想マシンの作成時にのみ設定できます。

learn.microsoft.com


下記はUbuntuの仮想マシンを作成します。
ユーザ名、パスワードを入力します。またネットワークインタフェースのIDはプロパティを確認して入力します。

{
  "location": "westus",
  "properties": {
    "hardwareProfile": {
      "vmSize": "Standard_D2as_v4"
    },
    "storageProfile": {
      "imageReference": {
        "sku": "20_04-lts-gen2",
        "publisher": "canonical",
        "version": "latest",
        "offer": "0001-com-ubuntu-server-focal"
      },
      "osDisk": {
        "caching": "ReadWrite",
        "managedDisk": {
          "storageAccountType": "Standard_LRS"
        },
        "name": "myVMosdisk",
        "createOption": "FromImage"
      }
    },
    "osProfile": {
      "adminUsername": "{your-username}",
      "computerName": "myVM",
      "adminPassword": "{your-password}"
    },
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
          "properties": {
            "primary": true
          }
        }
      ]
    }
  }
}

以上で入力は完了です。レスポンスコード 201でかえってこれば問題ないです。

あとは実際に仮想マシンが展開されているか確認します。

まとめ

RESTを自分で発行して仮想マシンを展開することでAzure CLIなどがどのように内部で動作しているかが見えてくると思います。勉強がてら確認してみるとよいと思います。また、問題が発生した場合にはデバックもやり易くなると思います。

-Azure
-