読者です 読者をやめる 読者になる 読者になる

Azureの小ネタ (改)

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

.NET Framework 4.6 をアンインストールする

NET Framework

備忘録として、Windows 2012R2 の .NET Framework 4.6 系をアンインストールする方法。

Windows 10はデフォルトが4.6なのでアンインストール出来ない模様。

手順

Windows の プログラムと機能から、インストールされた更新プログラムを表示する。

KB Ver
KB3102467 .NET Framework 4.6.1
KB3045563 .NET Framework 4.6

の順でアンインストールし、適宜指示に従って再起動。以下にバージョン確認のバッチがあるので、確認できる。

www.atmarkit.co.jp

Azure SDK for Java 1.0.0-beta2 VM編

Azure ARM Java SDK

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

Azure Java SDK 1.0.0-beta2

Azure Java ARM SDK

Azure Java SDK が 少し新しくなって、 1.0.0-beta2 となりました。まだ全てのリソースに対応していませんが、APIが少し変わったので試してみます。基本、以下のGitHubにつらつらと書かれているものです。

github.com

認証

以前は、つらつらとコードを記述しなくてはいけませんでしたが、プロパティファイルに対応してます。例のごとく以下の情報が必要です。

  • サブスクリプションID
  • テナントID
  • アプリケーションID(クライアントID) Azure ADで登録する
  • アプリケーションキー(クライアントキーだったり、パスワード) Azure ADで登録する
  • 各種URL

詳細は、以下の Authentication in Azure Management Libraries for Java を参照のこと。 azure-sdk-for-java/AUTH.md at master · Azure/azure-sdk-for-java · GitHub

subscription=########-####-####-####-############
client=########-####-####-####-############
key=XXXXXXXXXXXXXXXX
tenant=########-####-####-####-############
managementURI=https\://management.core.windows.net/
baseURL=https\://management.azure.com/
authURL=https\://login.windows.net/

各種URLは、中国とか内部的なテストサイトもあるでしょうし、メンドウならが毎度指定する必要があります。

サブスクリプション情報を取得するには、以下で完了です。

Azure azure = Azure.authenticate(new File("my.azureauth")).withDefaultSubscription();

今回、Azureというクラスを基点に各種APIを呼び出せるようになります。一例として、リソースグループ一覧を取り出したい場合、

azure.resourceGroups().list().forEach(rg -> System.out.println(rg.name()));

Java8と組み合わせると、だいぶスッキリ記述できる予感ですので、もう少し掘り下げたいと思います。

以上