Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 en el que 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 |
|---|---|
| Desencadenador en mensajes secundarios de Publicación de Redis | Desencadenador |
| Desencadenador en listas de Redis | Desencadenador |
| Desencadenador en secuencias de Redis | Desencadenador |
| Leer un valor almacenado en caché | Entrada |
| Escritura de valores en la memoria caché | Resultados |
Á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
Para poder usar esta extensión de enlace en la aplicación, asegúrese de que el archivo host.json en la raíz del proyecto contiene esta extensionBundle referencia:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
En este ejemplo, el version valor de [4.0.0, 5.0.0) indica al host de Functions que use una versión de agrupación que sea al menos 4.0.0 pero menor 5.0.0que , que incluye todas las versiones potenciales de 4.x. Esta notación mantiene eficazmente la aplicación en la versión secundaria más reciente disponible del paquete de extensiones v4.x.
Cuando sea posible, debe usar la versión principal del paquete de extensiones más reciente y permitir que el tiempo de ejecución mantenga automáticamente la versión secundaria más reciente. Puede ver el contenido de la agrupación más reciente en la página de versión de paquetes de extensiones. Para más información, consulte Paquetes de extensiones de Azure Functions.
Actualizar paquetes
Agregue el paquete Anotaciones de Redis java de Azure Functions al proyecto mediante la actualización del pom.xml archivo para agregar esta dependencia:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-redis</artifactId>
<version>1.0.0</version>
</dependency>
Cadena de conexión de Redis
Los desencadenadores y enlaces de Azure Redis tienen una propiedad necesaria que indica la configuración de la aplicación o el nombre de colección que contiene información de conexión de caché. 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 uno de estos tipos de conexiones en las implementaciones:
- Identidad administrada asignada por el usuario
- Identidad administrada asignada por el sistema
- Cadena de conexión
- Entidad de servicio
Una identidad administrada asignada por el usuario debe estar asociada a la aplicación de funciones y esa identidad también debe concederse permisos explícitos en el servicio de caché. Para obtener más información, consulte Uso de Microsoft Entra ID para la autenticación en caché.
En estos ejemplos se muestra el nombre de clave y el valor de la configuración de la aplicación necesarios para conectarse a cada servicio de caché en función del tipo de autenticación de cliente, suponiendo que la Connection propiedad del enlace esté establecida Redisen .
"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>",
"Redis__clientId": "<clientId>"