次の方法で共有


Spring Cloud Azure Redis のサポート

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

この記事では、Spring Cloud Azure と Spring Data Redis を一緒に使用し、Azure Cache for Redis への認証にさまざまな種類の資格情報を提供する方法について説明します。

Azure Cache for Redis は、Redis ソフトウェアに基づくメモリ内データ ストアを提供します。 Redis では、バックエンド データ ストアを頻繁に使用するアプリケーションのパフォーマンスとスケーラビリティが向上します。

サポートされている Redis のバージョン

サポートされているバージョンについては、「現在のバージョンを参照してください。

コア機能

パスワードレス接続

パスワードレス接続では、アプリケーション、その構成ファイル、または環境変数に資格情報を格納せずに Azure サービスに接続するために Microsoft Entra 認証が使用されます。 Microsoft Entra 認証は、Microsoft Entra ID で定義された ID を使用して Azure Cache for Redis に接続するためのメカニズムです。 Microsoft Entra 認証を使用すると、キャッシュ ID やその他の Microsoft サービスを一元的な場所で管理できるため、アクセス許可の管理が簡素化されます。

しくみ

Spring Cloud Azure では、まず、アプリケーション認証の構成に応じて、次のいずれかの種類の資格情報を構築します。

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

これらの種類の資格情報が見つからない場合は、DefaultTokenCredential 経由の資格情報チェーンを使用して、アプリケーションのプロパティ、環境変数、マネージド ID、または IDE から資格情報を取得します。 詳細については、Spring Cloud Azure 認証に関するページを参照してください。

構成

Redis サポートを使用する場合の構成可能なプロパティ:

財産 形容 既定値 必須
spring.cloud.azure.redis.enabled Azure Cache for Redis が有効になっているかどうか。 いいえ
spring.cloud.azure.redis.name を する Azure Cache for Redis インスタンス名。 はい
spring.cloud.azure.redis.resource.resource-group を する Azure Cache for Redis のリソース グループ。 はい
spring.cloud.azure.profile.subscription-id を する サブスクリプション ID。 はい
spring.data.redis.azure.passwordless 対応の Azure Cache for Redis のパスワードレスを有効にするかどうかを指定します。 いいえ

基本的な使用方法

以降のセクションでは、従来の Spring Boot アプリケーションの使用シナリオを示します。

パスワードレスで Azure Cache for Redis に接続する

  1. 次の依存関係をプロジェクトに追加します。 これには、プロジェクト内の spring-boot-starter 依存関係が推移的に自動的に含まれます。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    

    手記

    バージョン 5.19.0以降、パスワードレス接続がサポートされています。

    上記の依存関係と共に BOM spring-cloud-azure-dependencies を必ず追加してください。 詳細については、「Spring Cloud Azure 開発者ガイド」の「Getting started」セクションを参照してください。

  2. application.yml ファイルで次のプロパティを構成します。

    spring:
      data:
        redis:
          host: ${AZURE_CACHE_REDIS_HOST}
          username: ${AZURE_CACHE_REDIS_USERNAME}
          port: 6380
          ssl:
            enabled: true
          azure:
            passwordless-enabled: true
    

    大事な

    パスワードレス接続では、Microsoft Entra 認証が使用されます。 Microsoft Entra 認証を使用するには、Microsoft Entra 認証を有効にし、user(managed identity/service principal) を選択して Data Owner Access Policy割り当てる必要があります。

    詳細と の値を取得するには、「キャッシュ認証に Microsoft Entra ID を使用する」の「キャッシュ で Microsoft Entra ID 認証を有効にする」セクションを参照してください。

マネージド ID を使用して Azure Cache for Redis に接続する

  1. マネージド ID を使用するには、サービスのマネージド ID を有効にし、キャッシュで Microsoft Entra 認証を有効 必要があります。

  2. 次に、application.yml ファイルに次のプロパティを追加します。

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
    

    大事な

    redis.username は、マネージド ID オブジェクト (プリンシパル) ID に変更する必要があります。

    ユーザー割り当てマネージド ID を使用している場合は、ユーザー割り当てマネージド ID クライアント ID を持つプロパティ spring.cloud.azure.credential.client-id も追加する必要があります。

Azure Resource Manager を使用して Azure Cache for Redis に接続する

Azure Cache for Redis に接続するには、次の手順に従います。

  1. 次の依存関係をプロジェクトに追加します。 これには、プロジェクト内の spring-boot-starter 依存関係が推移的に自動的に含まれます。

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-resourcemanager</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    

    手記

    上記の依存関係と共に BOM spring-cloud-azure-dependencies を必ず追加してください。 詳細については、「Spring Cloud Azure 開発者ガイド」の「Getting started」セクションを参照してください。

  1. application.yml ファイルで次のプロパティを構成します。

    spring:
      cloud:
        azure:
          profile:
            subscription-id: ${AZURE_SUBSCRIPTION_ID}
          redis:
            name: ${AZURE_CACHE_REDIS_NAME}
            resource:
              resource-group: ${AZURE_RESOURCE_GROUP}
    

サンプル

GitHub の azure-spring-boot-samples リポジトリを参照してください。