共用方式為


Azure Redis 的 Azure 函式概觀

本文說明如何使用 Azure 受控 Redis 或 Azure Cache for Redis 搭配 Azure Functions 來建立優化的無伺服器和事件驅動架構。

Azure Functions 提供事件驅動程序設計模型,其中觸發程式和系結是主要功能。 使用 Azure Functions,您可以輕鬆地建置事件驅動的無伺服器應用程式。 Azure Redis 服務 (Azure Managed Redis 和 Azure Cache for Redis) 提供一組建置分散式應用程式的建置組塊和最佳做法,包括微服務、狀態管理、發佈/子傳訊等等。

Azure Redis 可作為 Azure Functions 的觸發程式,可讓您起始無伺服器工作流程。 這項功能在資料架構 (例如寫入後置快取) 或任何事件型架構中非常實用。

您可以整合 Azure Redis 和 Azure Functions 來建置函式,以回應來自 Azure Redis 或外部系統的事件。

動作 方向
Redis pub 子訊息上的觸發程式 觸發程序
Redis 清單上的觸發程式 觸發程序
Redis 數據流上的觸發程式 觸發程序
讀取快取的值 輸入
寫入要快取的值 輸出

函式觸發程式和系結的可用性範圍

Azure Cache for Redis (Basic、Standard、Premium、Enterprise、Enterprise Flash) Azure 受控 Redis (記憶體優化、基本、計算優化、快閃優化)
Pub/Sub Yes Yes
清單 Yes Yes
資料流 Yes Yes
繫結 Yes

重要

Redis 觸發程式目前僅支援在彈性進階方案或專用 App Service 方案中執行的函式。

安裝擴充功能

函式會在隔離的 C# 背景工作進程中執行。 若要深入瞭解,請參閱 在隔離背景工作程序中執行 C# Azure Functions 的指南。

藉由安裝 此 NuGet 套件,將擴充功能新增至您的專案。

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Redis

安裝搭售方案

  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 Redis 觸發程式和系結具有必要屬性,指出包含快取連線資訊的應用程式設定或集合名稱。 您可以在 Azure 受控 Redis 或 Azure Cache for Redis 入口網站的 [存取金鑰] 選單上找到 連接字串。 Redis 觸發程式或系結會尋找具有傳遞至 參數名稱之 連接字串 的Connection環境變數。

在本機開發中,Connection可以使用 local.settings.json 檔案來定義 。 部署至 Azure 時, 可以使用應用程式設定

使用 Azure 函式連線到快取實例時,您可以在部署中使用三種類型的連線:連接字串、系統指派的受控識別,以及使用者指派的受控識別。

針對本機開發,您也可以使用服務主體秘密。

重要

為了獲得最佳安全性,函式應用程式應盡可能使用 Microsoft具有受控識別的 entra 識別符來授權對快取的要求。 使用 Microsoft Entra ID 和受控識別進行授權,提供比共用存取金鑰授權更優異的安全性和易用性。 如需搭配快取使用受控識別的詳細資訊,請參閱使用 Microsoft Entra ID 進行快取驗證 (部分機器翻譯)。

使用 來 appsettings 設定下列每種類型的客戶端驗證,假設 Connection 已在函式中將 設定為 Redis

Connection string

"Redis": "<cacheName>.<region>.redis.azure.net:10000,password=..."

系統指派的受控識別

"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>"

使用者指派的受控識別

"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>",
"Redis__clientId": "<clientId>"

服務主體祕密

使用服務主體秘密的連線只能在本機開發期間使用。

"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>",
"Redis__clientId": "<clientId>"
"Redis__tenantId": "<tenantId>"
"Redis__clientSecret": "<clientSecret>"