Azure Cache for Redis 用 Azure 関数の概要
この記事では、Azure Cache for Redis と Azure Functions を使って、サーバーレスでイベントドリブンの最適化されたアーキテクチャを作成する方法について説明します。
Azure Functions は、トリガーとバインドが重要な機能であるイベントドリブンのプログラミング モデルを提供します。 Azure Functions を使用すると、イベントドリブンのサーバーレス アプリケーションを簡単に構築できます。 Azure Cache for Redis には、マイクロサービス、状態管理、pub/sub メッセージングなど、分散アプリケーションを構築するための一連の構成要素とベスト プラクティスが用意されています。
Azure Cache for Redis は、Azure Functions のトリガーとして使用でき、サーバーレス ワークフローを開始できます。 この機能は、遅延書き込みキャッシュやイベント ベースのアーキテクチャなどのデータ アーキテクチャで非常に便利です。
Azure Cache for Redis と Azure Functions を統合して、Azure Cache for Redis または外部システムからのイベントに対応する関数を構築できます。
アクション | 方向 | サポート レベル |
---|---|---|
Redis pub サブ メッセージでトリガーする | トリガー | プレビュー |
Redis リストでのトリガー | トリガー | プレビュー |
Redis ストリームでのトリガー | トリガー | プレビュー |
キャッシュされた値を読み取る | 入力 | プレビュー |
キャッシュする値を書き込む | 出力 | プレビュー |
関数のトリガーとバインドの可用性のスコープ
レベル | Basic | Standard、Premium | Enterprise、Enterprise Flash |
---|---|---|---|
Pub/Sub | Yes | イエス | はい |
リスト | はい | イエス | はい |
ストリーム | Yes | イエス | はい |
バインド | はい | イエス | 可 |
重要
Redis トリガーは現在、 Elastic Premium プラン または専用の App Service プランで実行されている関数でのみサポートされています。
拡張機能のインストール
関数は分離された C# ワーカー プロセスで実行されます。 詳しくは、「分離ワーカー プロセスにおける C# Azure Functions の実行のガイド」をご覧ください。
この NuGet パッケージをインストールすることによって、プロジェクトに拡張機能を追加します。
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Redis --prerelease
バンドルのインストール
Java 関数プロジェクトの作成。 Maven を使用できます。
mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=8
host.json ファイルで次のコードを追加または置き換えることによって拡張機能バンドルを追加します。
{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview", "version": "[4.11.*, 5.0.0)" } }
警告
Redis 拡張機能は現在、プレビュー バンドル リリースでのみ使用できます。
Redis バインド用 Java ライブラリを
pom.xml
ファイルに追加します。<dependency> <groupId>com.microsoft.azure.functions</groupId> <artifactId>azure-functions-java-library-redis</artifactId> <version>${azure.functions.java.library.redis.version}</version> </dependency>
host.json ファイルで次のコードを追加または置き換えることによって拡張機能バンドルを追加します。
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.11.*, 5.0.0)"
}
}
警告
Redis 拡張機能は現在、プレビュー バンドル リリースでのみ使用できます。
Redis 接続文字列
Azure Cache for Redis のトリガーとバインドには、キャッシュ接続文字列用の必須プロパティがあります。 接続文字列は、Azure Cache for Redis ポータルの [アクセス キー] メニューにあります。 Redis のトリガーまたはバインドは、Connection
パラメーターに渡された名前を使用して、接続文字列を保持する環境変数を検索します。
ローカル開発では、Connection
は、local.settings.json ファイルを使用して定義できます。 Azure にデプロイすると、アプリケーション設定を使用できます。
Azure 関数を使用してキャッシュ インスタンスに接続する場合、デプロイでは、接続文字列、システム割り当てマネージド ID、ユーザー割り当てマネージド ID の 3 種類の接続を使用できます。
ローカル開発では、サービス プリンシパル シークレットを使用することもできます。
Connection
が関数でRedis
に設定されていると仮定して、appsettings
を使用して次の種類のクライアント認証を構成します。
接続文字列
"Redis": "<cacheName>.redis.cache.windows.net:6380,password=..."
システム割り当てマネージド ID
"Redis:redisHostName": "<cacheName>.redis.cache.windows.net",
"Redis:principalId": "<principalId>"
ユーザー割り当てマネージド ID
"Redis:redisHostName": "<cacheName>.redis.cache.windows.net",
"Redis:principalId": "<principalId>",
"Redis:clientId": "<clientId>"
サービス プリンシパル シークレット
サービス プリンシパル シークレットを使用した接続は、ローカル開発時にのみ使用できます。
"Redis:redisHostName": "<cacheName>.redis.cache.windows.net",
"Redis:principalId": "<principalId>",
"Redis:clientId": "<clientId>"
"Redis:tenantId": "<tenantId>"
"Redis:clientSecret": "<clientSecret>"