Introducción a Azure Functions para Azure Redis
En este artículo se describe cómo usar Azure Managed Redis o Azure Cache for Redis con Azure Functions para crear arquitecturas optimizadas sin servidor y controladas por eventos.
Azure Functions proporciona un modelo de programación controlado por eventos donde los desencadenadores y enlaces son características clave. Con Azure Functions, puede crear fácilmente aplicaciones sin servidor controladas por eventos. Los servicios de Azure Redis (Azure Managed Redis y Azure Cache for Redis) proporcionan un conjunto de bloques de creación y procedimientos recomendados para crear aplicaciones distribuidas, incluidos microservicios, administración de estado, mensajería pub/sub, etc.
Azure Redis se puede usar como desencadenador para Azure Functions, lo que le permite iniciar un flujo de trabajo sin servidor. Esta funcionalidad puede ser muy útil en arquitecturas de datos como memorias caché de escritura subyacente o cualquier arquitectura basada en eventos.
Puede integrar Azure Redis y Azure Functions para crear funciones que reaccionen a eventos de Azure Redis o sistemas externos.
Action | Dirección | Nivel de compatibilidad |
---|---|---|
Desencadenador en mensajes secundarios de Publicación de Redis | Desencadenador | Vista previa |
Desencadenador en listas de Redis | Desencadenador | Vista previa |
Desencadenador en secuencias de Redis | Desencadenador | Vista previa |
Leer un valor almacenado en caché | Entrada | Vista previa |
Escritura de valores en la memoria caché | Output | Vista previa |
Ámbito de disponibilidad para desencadenadores y enlaces de funciones
Nivel | Azure Cache for Redis (Básico, Estándar, Premium, Enterprise, Enterprise Flash) | Azure Managed Redis (Optimizado para memoria, Básico, Optimizado para proceso, Optimizado para Flash) |
---|---|---|
Pub/Sub | Sí | Sí |
Listas | Sí | Sí |
Secuencias | Sí | Sí |
Enlaces | Sí | Sí |
Importante
Actualmente, los desencadenadores de Redis solo se admiten para las funciones que se ejecutan en un plan Elastic Premium o en un plan de App Service dedicado.
Instalación de la extensión
Las funciones se ejecutan en un proceso de trabajo de C# aislado. Para más información, consulte Guía para ejecutar C# Azure Functions en un proceso de trabajo aislado.
Para agregar la extensión al proyecto, instale este paquete NuGet.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Redis
Instalación del conjunto
Cree un proyecto de función Java. Puede usar Maven:
mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=8
Agregue el paquete de extensión agregando o reemplazando el siguiente código en el archivo host.json:
{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview", "version": "[4.11.*, 5.0.0)" } }
Advertencia
Actualmente, la extensión de Redis solo está disponible en una versión preliminar del paquete.
Agregue la biblioteca de Java para enlaces de Redis al archivo
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>
Agregue el paquete de extensión agregando o reemplazando el siguiente código en el archivo host.json:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.11.*, 5.0.0)"
}
}
Advertencia
Actualmente, la extensión de Redis solo está disponible en una versión preliminar del paquete.
Cadena de conexión de Redis
Los desencadenadores y enlaces de Azure Redis tienen una propiedad necesaria para el cadena de conexión de caché. El cadena de conexión se puede encontrar en el menú Claves de acceso del portal de Azure Managed Redis o Azure Cache for Redis. El desencadenador o enlace de Redis busca una variable de entorno que contenga la cadena de conexión con el nombre pasado al parámetro Connection
.
En el desarrollo local, Connection
se puede definir mediante el archivo local.settings.json. Cuando se implementa en Azure, se puede usar la configuración de la aplicación.
Al conectarse a una instancia de caché con una función de Azure, puede usar tres tipos de conexiones en las implementaciones: Cadena de conexión, identidad administrada asignada por el sistema e Identidad administrada asignada por el usuario.
Para el desarrollo local, también puede usar secretos de entidad de servicio.
appsettings
Use para configurar cada uno de los siguientes tipos de autenticación de cliente, suponiendo que se estableció Redis
en Connection
en la función .
Cadena de conexión
"Redis": "<cacheName>.<region>.redis.azure.net:10000,password=..."
Identidad administrada asignada por el sistema
"Redis:redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis:principalId": "<principalId>"
Identidad administrada asignada por el usuario
"Redis:redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis:principalId": "<principalId>",
"Redis:clientId": "<clientId>"
Secreto de entidad de servicio
Las conexiones que usan secretos de entidad de servicio solo están disponibles durante el desarrollo local.
"Redis:redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis:principalId": "<principalId>",
"Redis:clientId": "<clientId>"
"Redis:tenantId": "<tenantId>"
"Redis:clientSecret": "<clientSecret>"