Java アプリケーションから Azure ストレージ アカウントを管理するManage Azure storage accounts from your Java applications

このサンプルでは、Java 管理ライブラリを使用して、Azure ストレージ アカウントを作成し、アカウント アクセス キーを操作します。This sample creates an Azure Storage account and works with the account access keys using the Java management libraries.

サンプルを実行するRun the sample

認証ファイルを作成し、そのファイルのコンピューター上における完全なパスを保持する環境変数 AZURE_AUTH_LOCATION を設定します。Create an authentication file and set an environment variable AZURE_AUTH_LOCATION with the full path to the file on your computer. 次に、以下を実行します。Then run:

git clone https://github.com/Azure-Samples/storage-java-manage-storage-accounts.git
cd storage-java-manage-storage-accounts
mvn clean compile exec:java

完全なコード サンプルについては GitHub を参照してください。View the complete code sample on GitHub.

Azure での認証Authenticate with Azure

認証ファイルを作成し、環境変数 AZURE_AUTH_LOCATION と認証ファイルの完全なパスをコマンド ラインでエクスポートします。Create an authentication file and export an environment variable AZURE_AUTH_LOCATION on the command line with the full path to the file.

export AZURE_AUTH_LOCATION=/Users/raisa/azure.auth

Azure リソースを定義、作成、構成するために管理ライブラリで使用されるエントリ ポイント Azure オブジェクトを構成するために、この認証ファイルが使用されます。The authentication file is used to configure the entry point Azure object used by the management libraries to define, create, and configure Azure resources.

// pull in the location of the security file from the environment 
final File credFile = new File(System.getenv("AZURE_AUTH_LOCATION"));

Azure azure = Azure
        .configure()
        .withLogLevel(LogLevel.NONE)
        .authenticate(credFile)
        .withDefaultSubscription();

Azure Management Libraries for Java を使用する際の認証オプションの詳細については、こちらを参照してください。Learn more about authentication options when using the Azure management libraries for Java.

ストレージ アカウントの作成Create a storage account

// create a new storage account
StorageAccount storageAccount = azure.storageAccounts().define(storageAccountName)
                    .withRegion(Region.US_EAST)
                    .withNewResourceGroup(rgName)
                    .create();

指定するストレージ名は、Azure に存在するいずれの名前とも重複しないこと、また小文字と数字だけで構成されていることが必要です。The storage name provided must be unique across all names in Azure and contain only lowercase letters and numbers. このアカウントに使用される既定のパフォーマンスとレプリケーション プロファイルは Standard_GRS です。The default performance and replication profile used for this account is Standard_GRS.

ストレージ アカウントに存在するキーの列挙List keys in a storage account

// list the name and value for each access key in the storage account
List<StorageAccountKey> storageAccountKeys = storageAccount.getKeys();
for(StorageAccountKey key : storageAccountKeys)    {
    System.out.println("Key name: " + key.keyName() + " with value "+ key.value());
}

それぞれの Azure ストレージ アカウントには、キーを再生成する間も別のキーを使ってストレージにアクセスできる状態を確保するために、2 つのキーが存在します。Two keys are provided in each Azure storage account so that you can regenerate one key while still allowing access to storage using the other key.

ストレージ アカウントのキーを再生成するRegenerate a key in a storage account

// regenerate the first key in a storage account and return an updated list of keys 
List<StorageAccountKey> updatedStorageAccountKeys =
    storageAccount.regenerateKey(storageAccountKeys.get(0).keyName());

新しいキーを生成したら、すべての Azure リソースとアプリケーションを新しいキーで更新する必要があります。You must update all Azure resources and applications with the new key after generating a new one.

リソース グループ内にあるすべてのストレージ アカウントの列挙List all storage accounts in a resource group

// get a list of accounts in a resource group , log info about each one
List<StorageAccount> accounts = azure.storageAccounts().listByResourceGroup(rgName);
for (StorageAccount sa : accounts) {
    System.out.println("Storage Account " + sa.name() + " created @ " + sa.creationTime());
}

com.microsoft.azure.management.storage.StorageAccount には、ストレージ アカウントの構成を調べる際に利用できるさまざまなメソッドが掲載されています。com.microsoft.azure.management.storage.StorageAccount provides a set of useful methods to inspect the configuration of a storage account.

ストレージ アカウントを削除するDelete a storage account

// delete by ID when you already have a storage account object
azure.storageAccounts().deleteById(storageAccount.id());

// delete by resource group and account name if you don't have an account object
azure.storageAccounts().deleteByResourceGroup(rgName,accountName);

注意

仮想マシンに接続された使用中のディスク イメージがあるストレージ アカウントや、他のアーティファクトによって使用されているディスクがあるストレージ アカウントは、これらのメソッドでは削除できない場合があります。Storage accounts with in-use disk images connected to virtual machines or disks in use by other artifacts may not remove with these methods. アカウントを削除する前に、これらのリソースからあらかじめストレージをデタッチしておいてください。Detach the storage from these resources before removing the account.

サンプルの説明Sample explanation

GitHub のサンプル コード:The sample code on GitHub:

  • ストレージ アカウントの作成creates a storage account
  • アクセス キーの読み取りと再生成reads and regenerates access keys
  • リソース グループに含まれるすべてのストレージ アカウントの列挙lists all storage accounts in a resource group
  • ストレージ アカウントの削除deletes the storage account
サンプルで使われているクラスClass used in sample メモNotes
StorageAccountStorageAccount Azure ストレージ アカウントを表します。Representation of an Azure storage account. ストレージ アカウントに関する情報は、このクラスのメソッドを使って取得します。Use the methods in the class to get information about the storage account.
StorageAccountKeyStorageAccountKey StorageAccount.getKeys() は、ストレージ アカウント キーを返します。StorageAccount.getKeys() returns the storage account keys. キーを更新するには、StorageAccountregenerateKey メソッドを使用します。Use the regenerateKey methods in StorageAccount to update the keys.

次の手順Next steps

Azure での Java アプリの作成とデプロイの詳細については、Java デベロッパー センターを参照してください。For more information on creating and deploying Java apps on Azure, visit the Java developer center.