共用方式為


Azure Cache for Redis 的 Azure Functions 概觀

本文說明如何使用 Azure Cache for Redis 搭配 Azure Functions,建立最佳化的無伺服器和事件驅動架構。

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

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

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

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

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

基本 標準,進階 Enterprise,Enterprise Flash
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 --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 函式連線到快取實例時,您可以在部署中使用三種類型的連線:連接字串、系統指派的受控識別,以及使用者指派的受控識別

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

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

Connection string

"Redis": "<cacheName>.redis.cache.windows.net:6380,password=..."

系統指派的受控識別

"Redis:redisHostName": "<cacheName>.redis.cache.windows.net",
"Redis:principalId": "<principalId>"

使用者指派的受控識別

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