你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Redis 的 Azure Functions 概述
本文介绍如何将 Azure 托管 Redis 或 Azure Cache for Redis 与 Azure Functions 配合使用来创建优化的无服务器和事件驱动的体系结构。
Azure Functions 提供事件驱动的编程模型,其中触发器和绑定是关键功能。 使用 Azure Functions,可以轻松生成事件驱动的无服务器应用程序。 Azure Redis 服务(Azure 托管 Redis 和 Azure Redis 缓存)提供一组构建基块和最佳做法,用于生成分布式应用程序,包括微服务、状态管理、发布/子消息传送等。
Azure Redis 可用作 Azure Functions 的触发器,允许启动无服务器工作流。 此功能在数据体系结构(如后写缓存或任何基于事件的体系结构)中非常有用。
可以集成 Azure Redis 和 Azure Functions,以生成对 Azure Redis 或外部系统的事件做出响应的函数。
操作 | 方向 | 支持级别 |
---|---|---|
Redis 发布订阅消息上的触发器 | 触发器 | 预览 |
Redis 列表上的触发器 | 触发器 | 预览 |
Redis 流上的触发器 | 触发器 | 预览 |
读取缓存值 | 输入 | 预览 |
写入值以缓存 | 输出 | 预览 |
函数触发器和绑定的可用性范围
层 | Azure Redis 缓存(基本、标准、高级、企业、企业闪存) | Azure 托管 Redis (内存优化、基本、计算优化、闪存优化) |
---|---|---|
Pub/Sub | 是 | 是 |
列表 | 是 | 是 |
流 | 是 | 是 |
绑定 | 是 | 是 |
安装扩展
Functions 在隔离的 C# 工作进程中运行。 若要了解详细信息,请参阅有关在独立工作进程中运行 C# Azure Functions 的指南。
通过安装此 NuGet 包将该扩展添加到你的项目。
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Redis
安装捆绑包
创建 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 Redis 触发器和绑定具有缓存连接字符串所需的属性。 可以在 Azure 托管 Redis 或 Azure Redis 缓存门户的“访问密钥”菜单上找到连接字符串。 Redis 触发器或绑定会通过传递给 Connection
参数的名称查找包含连接字符串的环境变量。
在本地开发中,可以使用 local.settings.json 文件定义 Connection
。 在部署到 Azure 时,可以使用应用程序设置。
使用 Azure 函数连接到缓存实例时,可以在部署中使用三种类型的连接:连接字符串、系统分配的托管标识和用户分配的托管标识
对于本地开发,还可以使用服务主体机密。
使用 appsettings
配置以下每种客户端身份验证类型,假设 Connection
在函数中设置为 Redis
。
连接字符串
"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>"