次の方法で共有


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

バンドルのインストール

  1. Java 関数プロジェクトの作成。 Maven を使用できます。mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=8

  2. host.json ファイルで次のコードを追加または置き換えることによって拡張機能バンドルを追加します。

    {
      "version": "2.0",
      "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
        "version": "[4.11.*, 5.0.0)"
      }
    }
    

    警告

    Redis 拡張機能は現在、プレビュー バンドル リリースでのみ使用できます。

  3. 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>"