Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Azure SDK for Java 1.0.0-beta2 VM編

今回は、よくある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 側がどうなったか少しきになりますね。