はじめに
RESTで仮想マシンを展開することはほぼないでしょう。アプリケーションに組み込むなどの場合ぐらいかもしれません。
もとをただせばAzure CLIなどもRESTです。デバックを見ているとRESTで行っていることがわかります。
今回は例として仮想マシンを展開してみたいと思います。下記は仮想マシンの展開方法について書かれています。
準備
RESTで仮想マシンを作成する場合、仮想マシンとOSディスクだけ作成されます。ネットワーク周りは事前に作成しておく必要があります。
- リソースグループ
- 仮想ネットワーク
- ネットワークインタフェース
これらは事前に作成しておく必要があります。
仮想マシの展開
展開するにはRESTを発行する必要があります。PowershellやWSLなどを利用して発行することも可能ですが今回はLearnのフォーカスモードの機能を利用しています。
コードの部分に使ってみるがあります。これをクリックするとフォーカスモードが開きます。

フォーカスモードです。ログインを求められ、完了後に右側に入力画面はでます。
リソースグループと仮想マシンの名前を入力します。

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

下記は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などがどのように内部で動作しているかが見えてくると思います。勉強がてら確認してみるとよいと思います。また、問題が発生した場合にはデバックもやり易くなると思います。
