次の方法で共有


Azure SDK for Java を使用する

オープン ソースの Azure SDK for Java は、Java アプリケーション コードからの Azure リソースのプロビジョニング、管理、および使用を簡素化します。

重要な詳細

  • Azure ライブラリは、ローカルまたはクラウドで実行する Java コードから Azure サービスと通信する方法です。
  • ライブラリは Java 8 以降をサポートしており、Java 8 ベースラインと最新の Java '長期サポート' リリースの両方に対してテストされます。
  • ライブラリには、Java モジュールの完全なサポートが含まれています。つまり、Java モジュールの要件に完全に準拠しており、関連するすべてのパッケージをエクスポートして使用できます。
  • Azure SDK for Java は、特定の Azure サービスに関連する多数の個々の Java ライブラリのみで構成されています。 "SDK" には他のツールはありません。
  • 個別の "管理" ライブラリと "クライアント" ライブラリがあります ("管理プレーン" ライブラリと "データ プレーン" ライブラリとも呼ばれます)。 各セットは異なる目的を果たし、さまざまな種類のコードで使用されます。 詳細については、この記事で後述する以下のセクションを参照してください。
  • ライブラリのドキュメントは、Azure Service 別に整理された Azure for Java リファレンス、またはパッケージ名別に整理された Java API ブラウザー 見つけることができます。

その他の詳細

  • Azure SDK for Java ライブラリは、基になる Azure REST API の上に構築されており、使い慣れた Java パラダイムを通じてこれらの API を使用できます。 ただし、必要に応じて、Java コードから REST API を直接使用できます。
  • Azure ライブラリのソース コードは、GitHub リポジトリにあります。 オープンソースプロジェクトとして、貢献は歓迎されています!
  • 現在、Azure SDK for Java ライブラリを更新して、認証プロトコル、ログ記録、トレース、トランスポート プロトコル、バッファー応答、再試行などの一般的なクラウド パターンを共有しています。
    • この共有機能は、azure-core ライブラリに含まれています。
  • ライブラリに適用されるガイドラインの詳細については、「Java Azure SDK Design Guidelines」を参照してください。

Azure SDK for Java でサポートされているプラットフォーム

Azure SDK for Java には Java 8 以降のサポートが付属していますが、開発者は、開発時および運用環境へのリリース時に常に最新の Java 長期サポート (LTS) リリースを使用することをお勧めします。 最新の LTS リリースを使用すると、バグ修正、パフォーマンスの向上、セキュリティ修正など、Java 内で最新の機能強化を利用できるようになります。 また、Azure SDK for Java には、Java の以降のリリースに対する追加のサポートが含まれています。 この追加サポートにより、パフォーマンスが向上し、サポートされている Java 8 ベースラインを超える JDK 固有の機能強化が含まれます。

Azure SDK for Java は、Windows、Linux、および macOS でテストおよびサポートされています。 JDK がサポートする他のプラットフォームではテストされず、Android デプロイはサポートされません。 Android デバイスにデプロイするためのソフトウェアを開発し、Azure サービスを利用する開発者向けに、Android SDK for Android プロジェクト で利用できる Android 固有のライブラリがあります。

クライアント ライブラリで Azure リソースに接続して使用する

クライアント (または "データ プレーン") ライブラリは、既にプロビジョニングされているサービスと対話する Java アプリケーション コードを記述するのに役立ちます。 クライアント ライブラリは、クライアント API をサポートするサービスにのみ存在します。 Maven グループ ID が com.azureされているため、それらを識別できます。

すべての Azure Java クライアント ライブラリは、クライアントのインスタンスを作成する Java ビルダー クラスを提供するのと同じ API 設計パターンに従います。 このパターンにより、クライアントの定義とインスタンス化が操作から分離されるため、クライアントを不変にして使いやすくすることができます。 さらに、すべてのクライアント ライブラリは、いくつかの重要なパターンに従います。

  • 同期 API と非同期 API の両方をサポートするクライアント ライブラリでは、これらの API を個別のクラスで提供する必要があります。 つまり、このような場合は、同期 API の KeyVaultClient や非同期 API の KeyVaultAsyncClient が発生します。

  • 同期 API と非同期 API の両方を構築する役割を担う 1 つのビルダー クラスがあります。 ビルダーには同期クライアント クラスと同様の名前が付けられ、Builder 含まれています。 たとえば、KeyVaultClientBuilderします。 このビルダーには、必要に応じてクライアント インスタンスを作成するための buildClient() メソッドと buildAsyncClient() メソッドがあります。

これらの規則により、Client で終わるすべてのクラスは不変であり、Azure サービスと対話する操作を提供します。 ClientBuilder で終わるすべてのクラスは、特定のクライアントの種類のインスタンスを構成して作成する操作を提供します。

クライアント ライブラリの例

次のコード例は、同期 Key Vault KeyClientを作成する方法を示しています。

KeyClient client = new KeyClientBuilder()
        .endpoint(<your Key Vault URL>)
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildClient();

次のコード例は、非同期 Key Vault KeyAsyncClientを作成する方法を示しています。

KeyAsyncClient client = new KeyClientBuilder()
        .endpoint(<your Key Vault URL>)
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildAsyncClient();

各クライアント ライブラリの操作の詳細については、SDK GitHub リポジトリのライブラリのプロジェクト ディレクトリにある README.md ファイルを参照してください。 その他のコード スニペットについては、リファレンス ドキュメントのAzure サンプルを参照してください。

管理ライブラリを使用して Azure リソースをプロビジョニングおよび管理する

管理 (または "管理プレーン") ライブラリは、Java アプリケーション コードから Azure リソースを作成、プロビジョニング、管理するのに役立ちます。 これらのライブラリは、com.azure.resourcemanager Maven グループ ID にあります。 すべての Azure サービスには、対応する管理ライブラリがあります。

管理ライブラリを使用すると、構成スクリプトとデプロイ スクリプトを記述して、Azure portal または Azure CLIで実行できるのと同じタスクを実行できます。

すべての Azure Java 管理ライブラリは、サービス API として *Manager クラスを提供します。たとえば、Azure コンピューティング サービスの ComputeManager や、一般的なサービスの集計に AzureResourceManager します。

管理ライブラリの例

次のコード例は、ComputeManagerを作成する方法を示しています。

ComputeManager computeManager = ComputeManager
    .authenticate(
        new DefaultAzureCredentialBuilder().build(),
        new AzureProfile(AzureEnvironment.AZURE));

次のコード例は、新しい仮想マシンをプロビジョニングする方法を示しています。

VirtualMachine virtualMachine = computeManager.virtualMachines()
    .define(<your virtual machine>)
    .withRegion(Region.US_WEST)
    .withExistingResourceGroup(<your resource group>)
    .withNewPrimaryNetwork("10.0.0.0/28")
    .withPrimaryPrivateIPAddressDynamic()
    .withoutPrimaryPublicIPAddress()
    .withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_18_04_LTS)
    .withRootUsername(<virtual-machine username>)
    .withSsh(<virtual-machine SSH key>)
    .create();

次のコード例は、既存の仮想マシンを取得する方法を示しています。

VirtualMachine virtualMachine = computeManager.virtualMachines()
    .getByResourceGroup(<your resource group>, <your virtual machine>);

次のコード例は、仮想マシンを更新し、新しいデータ ディスクを追加する方法を示しています。

virtualMachine.update()
    .withNewDataDisk(10)
    .apply();

各管理ライブラリの操作の詳細については、SDK GitHub リポジトリにあるライブラリのプロジェクト ディレクトリにある README.md ファイルを参照してください。 その他のコード スニペットについては、リファレンス ドキュメントのAzure サンプルを参照してください。

ヘルプを取得して SDK チームと連絡を取る

  • Azure SDK for Java のドキュメントを参照してください。
  • Stack Overflowに関する質問をコミュニティに投稿します。
  • GitHub リポジトリで SDK に対する問題を開きます。
  • Twitter で @AzureSDK をメンションします。

次の手順

Azure SDK for Java とは何かを理解したら、ライブラリを使用する際の生産性を高めるために存在する多くの横断的な概念について詳しく説明します。 次の記事では、適切な開始点を示します。