次の方法で共有


Spring Cloud Azure 開発者ガイド

この記事は、✅ バージョン 4.19.0 ✅ バージョン 5.19.0 に適用されます。

Spring は、Java アプリケーションを作成するための簡素化されたモジュール方式のアプローチを提供する、VMware によって開発されたオープンソースのアプリケーション フレームワークです。 Spring Cloud Azure は、Azure とのシームレスな Spring 統合を提供するオープンソース プロジェクトです。

サポートされているバージョンの詳細については、「Spring Versions Mapping」を参照してください。

ヘルプを表示する

このドキュメントに関する質問がある場合は、次のいずれかの GitHub リポジトリで GitHub の問題を作成します。 プル要求も歓迎されます。

GitHub リポジトリ 形容
Azure/azure-sdk-for-java このリポジトリはソース コードを保持します。
MicrosoftDocs/azure-dev-docs このリポジトリにはドキュメントが含まれています。

3.10.x 以降の 4.0 の新機能

このドキュメントでは、3.10 以降の 4.0 で行われた変更について説明します。 このメジャー リリースでは、セキュリティが強化され、依存関係が無駄になり、運用環境の準備がサポートされます。

先端

4.0 への移行の詳細については、4.0の移行ガイドを参照してください。

次の一覧は、Spring Cloud Azure 4.0 が提供する変更の一部をまとめたものです。

  • 統合されたプロジェクト名、成果物 ID、およびプロパティを備えた統合された開発エクスペリエンス。
  • 単一の spring-cloud-azure-dependencies BOM を使用して依存関係管理を簡素化しました。
  • Kafka、Event Hubs、Azure Cache for Redis、Azure App Configuration に対応するために、Spring Initializr での Azure サポートを拡張しました。
  • 余分なレイヤーとエンタングルメントを削除するために、Spring モジュールの依存関係を再設計しました。
  • Azure App Configuration、Event Hubs、Service Bus、Azure Cosmos DB、Key Vault、Storage Blob、Storage Queue のマネージド ID のサポート。
  • Service Bus と Event Hubs を使用した SAS トークンとトークン資格情報認証など、Spring ライブラリから基になる Azure SDK の認証方法を引き続きサポートします。
  • 資格情報チェーンが既定で有効になり、アプリケーションがアプリケーションのプロパティ、環境変数、マネージド ID、IDE などの資格情報を取得できるようになりました。 詳細については、Java用 Azure Identity クライアント ライブラリの「DefaultAzureCredential 」セクションを参照してください。
  • リソース レベル (Service Bus キューなど) できめ細かいアクセス制御を行い、セキュリティ ガバナンスと IT ポリシーへの準拠を強化します。
  • 同期と非同期の両方のシナリオで、Azure SDK クライアントの自動構成カバレッジが向上することで、Spring 慣用的な方法で公開されるその他のオプション。
  • Azure App Configuration、Event Hubs、Azure Cosmos DB、Key Vault、Storage Blob、Storage Queue、Storage File の正常性インジケーターを追加しました。
  • すべての HTTP ベースの Azure SDK に対する Spring Cloud Sleuth のサポート。

4.0 の移行ガイド

4.0 への移行の詳細については、4.0の移行ガイドを参照してください。

はじめ

依存関係の設定

部品表 (BOM)

Maven を使用する場合は、次の例に示すように、 セクションの dependencyManagement ファイルに BOM を追加します。 BOM を使用する場合、バージョン管理は BOM に委任されるため、Maven 依存関係のバージョンを指定する必要はありません。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>5.19.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Gradle を使用すると、次の方法で spring-cloud-azure-dependencies BOM をインポートできます。

  • 次の例に示すように依存関係を追加して、Gradle のネイティブ BOM サポートを使用します。

    import org.springframework.boot.gradle.plugin.SpringBootPlugin
    
    plugins {
      id("java")
      id("org.springframework.boot") version "3.2.O"
    }
    
    dependencies {
        implementation(platform(SpringBootPlugin.BOM_COORDINATES))
        implementation(platform("com.azure.spring:spring-cloud-azure-dependencies:{version}"))
    }
    
  • 次の例に示すように、io.spring.dependency-management プラグインを使用し、dependencyManagementに BOM をインポートします。

    plugins {
        id("io.spring.dependency-management") version "1.1.0"
    }
    
    dependencyManagement {
        imports {
            mavenBom("com.azure.spring:spring-cloud-azure-dependencies:{version}")
        }
    }
    

詳細については、「Spring Boot Gradle プラグイン リファレンス ガイド」を参照してください。

手記

Spring Boot 2.x を使用している場合は、必ず spring-cloud-azure-dependencies バージョンを 4.19.0に設定してください。 この部品表 (BOM) は、<dependencyManagement> ファイルの セクションで構成する必要があります。 これにより、すべての Spring Cloud Azure 依存関係で同じバージョンが使用されるようになります。 この BOM に使用されるバージョンの詳細については、「どのバージョンの Spring Cloud Azure を使用する必要」を参照してください。

スターターの依存関係

Spring Cloud Azure Starters は、アプリケーションに含めるのに便利な依存関係記述子のセットです。 各スターターには、対応する Spring Cloud Azure モジュールの使用を開始するために必要なすべての依存関係と推移的な依存関係が含まれています。 これらのスターターは、Azure サービスを使用した Spring Boot アプリケーション開発を促進します。

たとえば、データの永続化に Spring と Azure Cosmos DB の使用を開始する場合は、プロジェクトに spring-cloud-azure-starter-cosmos 依存関係を含めます。

次の表に、com.azure.spring グループの Spring Cloud Azure によって提供されるアプリケーション スターターの一覧を示します。

名前 形容
spring-cloud-azure-starter 自動構成のサポートを含むコア スターター。
spring-cloud-azure-starter-active-directory Spring Security で Microsoft Entra ID を使用するためのスターター。
spring-cloud-azure-starter-active-directory-b2c Spring Security で Azure Active Directory B2C を使用するためのスターター。
spring-cloud-azure-starter-appconfiguration Azure App Configuration を使用するためのスターター。
spring-cloud-azure-starter-cosmos Azure Cosmos DB を使用するためのスターター。
spring-cloud-azure-starter-eventhubs Azure Event Hubs を使用するためのスターター。
spring-cloud-azure-starter-keyvault Azure Key Vault を使用するためのスターター。
spring-cloud-azure-starter-keyvault-secrets Azure Key Vault シークレットを使用するためのスターター。
spring-cloud-azure-starter-keyvault-certificates Azure Key Vault 証明書を使用するためのスターター。
spring-cloud-azure-starter-servicebus Azure Service Bus を使用するためのスターター。
spring-cloud-azure-starter-servicebus-jms Azure Service Bus と JMS を使用するためのスターター。
spring-cloud-azure-starter-storage Azure Storage を使用するためのスターター。
spring-cloud-azure-starter-storage-blob Azure Storage BLOB を使用するためのスターター。
spring-cloud-azure-starter-storage-file-share Azure Storage ファイル共有を使用するためのスターター。
spring-cloud-azure-starter-storage-queue Azure Storage キューを使用するためのスターター。
spring-cloud-azure-starter-actuator 生産準備完了機能を提供する Spring Boot のアクチュエータを使用するためのスターター。

次の表に、Spring Data サポートのスターターを示します。

名前 形容
spring-cloud-azure-starter-data-cosmos Spring Data for Azure Cosmos DB を使用するためのスターター。

次の表に、Spring Integration サポートのスターターを示します。

名前 形容
spring-cloud-azure-starter-integration-eventhubs Azure Event Hubs と Spring Integration を使用するためのスターター。
spring-cloud-azure-starter-integration-servicebus Azure Service Bus と Spring Integration を使用するためのスターター。
spring-cloud-azure-starter-integration-storage-queue Azure Storage Queue と Spring Integration を使用するためのスターター。

次の表に、Spring Cloud Stream サポートのスターターを示します。

名前 形容
spring-cloud-azure-starter-stream-eventhubs Azure Event Hubs と Spring Cloud Stream Binder を使用するためのスターター。
spring-cloud-azure-starter-stream-servicebus Azure Service Bus と Spring Cloud Stream Binder を使用するためのスターター。

次の表に、MySQL サポートのスターターを示します。

名前 形容
spring-cloud-azure-starter-jdbc-mysql Microsoft Entra 認証を介して Azure MySQLs と JDBC を使用するためのスターター。

次の表に、PostgreSQL サポートのスターターを示します。

名前 形容
spring-cloud-azure-starter-jdbc-postgresql Microsoft Entra 認証を使用して Azure PostgreSQL と JDBC を使用するためのスターター。

Spring Boot 3 の構成

Azure SDK JAR には署名の検証が必要です。 ただし、Spring Boot 3 では、JVM の事前 (AOT) モードとネイティブ イメージの JAR 署名検証はサポートされていません。 詳細については、JVM での事前処理の使用と GraalVM ネイティブ・イメージ・サポート・を参照してください。

この問題を解決するには、JAR 署名の検証を無効にします。

  1. 次の内容で src/main/resources に custom.security ファイルを作成します。

    jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
    
  2. Maven を使用している場合は、次の構成を追加します。

    <plugin>
        <groupId>org.graalvm.buildtools</groupId>
        <artifactId>native-maven-plugin</artifactId>
        <configuration>
            <buildArgs>
                <arg>-Djava.security.properties=src/main/resources/custom.security</arg>
            </buildArgs>
        </configuration>
    </plugin>
    

    Gradle を使用している場合は、次の構成を追加します。

    graalvmNative {
      binaries {
        main {
          buildArgs('-Djava.security.properties=' + file("$rootDir/custom.security").absolutePath)
        }
      }
    }
    

Spring Cloud Azure の学習

使用状況を示すサンプルの完全な一覧については、「Spring Cloud Azure Samples」を参照してください。