今回は、よくあるVMの操作についてです。
一覧
AzureインスタンスからVM一覧を取得できます。各プロパティが、getter/setterではなくて、単なるname()とか、computerName()とかになってます。 前々から不便だったresource group を取得するメソッドも増えました。GroupbalResourceというインタフェースが増えたみたいです。
Azure azure = Azure.authenticate(new File("my.azureauth")).withDefaultSubscription(); for (VirtualMachine vm : azure.virtualMachines().list()) { System.out.println(vm.name()); System.out.println(vm.computerName()); System.out.println(vm.resourceGroupName()); }
VMの作成
VMの作成もFluent Interfaceで楽に記述できるようになってます。よくある構成は以下のコードでさくっとできてしまいます。
良くなった点として
- イメージの宣言が容易されている
- 同じくインスタンスサイズも
- 一々関連リソースを手続き的に作成しなくてもよくなった
感じでしょうか。宣言は最初から用意しておけよというかんじですし、ARM APIとしては採取的にARM Templateに準拠したJSONが投げられるだけなので、 いままでが冗長すぎた感じでしょうか。
public static void CreateVM(Azure azure, String password) throws Exception { VirtualMachine linuxVM = azure.virtualMachines().define("myLinuxVM") .withRegion(Region.ASIA_EAST) .withNewResourceGroup("testfromjava") .withNewPrimaryNetwork("10.0.0.0/28") .withPrimaryPrivateIpAddressDynamic() .withNewPrimaryPublicIpAddress("mylinuxvmdns") .withPopularWindowsImage(KnownWindowsVirtualMachineImage.WINDOWS_SERVER_2012_R2_DATACENTER) .withAdminUserName("azureuser") .withPassword(password) .withSize(VirtualMachineSizeTypes.STANDARD_A1) .create(); }
というわけで、今回は以上。いままでのAPIと.NET 側がどうなったか少しきになりますね。