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 に接続する
次の依存関係をプロジェクトに追加します。 これには、プロジェクト内の
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」セクションを参照してください。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 に接続する
マネージド ID を使用するには、サービスのマネージド ID を有効にし、キャッシュで Microsoft Entra 認証を有効
必要があります。 次に、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 に接続するには、次の手順に従います。
次の依存関係をプロジェクトに追加します。 これには、プロジェクト内の
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」セクションを参照してください。
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 リポジトリを参照してください。