En este conjunto de artículos se explica cómo autenticar y enviar mensajes en tiempo real a los clientes conectados a Azure SignalR Service mediante enlaces de SignalR Service en Azure Functions. Azure Functions Runtime, versión 2.x y posterior, admite enlaces de entrada y salida para SignalR Service.
Acción
Tipo
Control de mensajes enviados desde SignalR Service
Para agregar la extensión al proyecto, instale este paquete NuGet.
Instalación del conjunto
La extensión de SignalR Service forma parte de un conjunto de extensiones, que se especifica en el archivo de proyecto host.json. Al crear un proyecto que tenga como destino la versión 3.x o posterior, ya debería tener instalada este conjunto. Para obtener más información, consulte Conjuntos de extensiones.
Adición de la dependencia
Para usar las anotaciones de SignalR Service en las funciones de Java, debe agregar una dependencia al artefacto azure-functions-java-library-signalr (versión 1.0 o superior) en el archivo pom.xml.
Este cadena de conexión debe almacenarse en una configuración de aplicación con un nombre AzureSignalRConnectionString. Puede personalizar el nombre de configuración de la aplicación con la connectionStringSetting propiedad de la configuración de enlace.
Conexiones basadas en identidades
Si usa la versión 1.7.0 o posterior, en lugar de usar un cadena de conexión con un secreto, puede hacer que la aplicación use una identidad de Microsoft Entra.
En primer lugar, debe asegurarse de que la identidad de Microsoft Entra tiene el rol SignalR Service Owner.
A continuación, definiría la configuración con un prefijo AzureSignalRConnectionStringcomún. Puede personalizar el nombre del prefijo con la connectionStringSetting propiedad de la configuración de enlace.
En este modo, la configuración incluye los siguientes elementos:
Propiedad
Plantilla de variable de entorno
Descripción
Obligatorio
Valor de ejemplo
URI de servicio
AzureSignalRConnectionString__serviceUri
Identificador URI del punto de conexión de servicio. Cuando solo configura "URI de servicio", las extensiones intentarían usar el tipo DefaultAzureCredential para autenticarse con el servicio.
Sí
https://mysignalrsevice.service.signalr.net
Credencial de token
AzureSignalRConnectionString__credential
Define cómo se debe obtener un token para la conexión. Esta configuración debe establecerse en managedidentity si su función de Azure implementada pretende utilizar la autenticación de identidad administrada. Este valor sólo es válido cuando existe una identidad administrada disponible en el entorno del hospedaje.
No
managedidentity
Id. de cliente
AzureSignalRConnectionString__clientId
Cuando credential se establece en managedidentity, esta propiedad se puede establecer para especificar la identidad asignada por el usuario que se utilizará al obtener un token. La propiedad acepta un identificador de cliente correspondiente a una identidad asignada por el usuario asignada a la aplicación. No es válido especificar un id. de recurso así como tampoco es válido un id. de cliente. Si no se especifica, se usa la identidad asignada por el sistema. Esta propiedad se usa de forma diferente en escenarios de desarrollo locales, en los que no se debe establecer el elemento credential.
Cuando credential se establece en managedidentity, esta propiedad se puede establecer para que especifique el identificador de recurso que se utilizará al obtener un token. La propiedad acepta un identificador de recurso correspondiente al Id. de recurso de la identidad administrada definida por el usuario. No es válido especificar un Id. de recurso así como tampoco es válido un Id. de cliente. Si no se especifica ninguna de las dos, se utiliza la identidad asignada por el sistema. Esta propiedad se usa de forma diferente en escenarios de desarrollo locales, en los que no se debe establecer el elemento credential.
Al usar local.settings.json el archivo en local, App de Azure Configuración o Key Vault para proporcionar la configuración de las conexiones basadas en identidades, reemplace por __: en el nombre de configuración para asegurarse de que los nombres se resuelven correctamente.
Por ejemplo, AzureSignalRConnectionString:serviceUri.
Configuración de varios puntos de conexión
También puede configurar varios puntos de conexión y especificar la configuración de identidad por punto de conexión.
En este caso, prefijo la configuración con Azure__SignalR__Endpoints__{endpointName}.
{endpointName} es un nombre arbitrario asignado por usted para asociar un grupo de configuración a un punto de conexión de servicio. El prefijo Azure__SignalR__Endpoints__{endpointName} no se puede personalizar por connectionStringSetting propiedad.
Identificador URI del punto de conexión de servicio. Cuando solo configura "URI de servicio", las extensiones intentarían usar el tipo DefaultAzureCredential para autenticarse con el servicio.
Sí
https://mysignalrsevice1.service.signalr.net
Tipo de punto de conexión
Azure__SignalR__Endpoints__{endpointName}__type
Indica si el punto de conexión de servicio es principal o secundario. Si no se especifica, el valor predeterminado es Primary. Los valores válidos son Primary y Secondary, sin distinguir mayúsculas de minúsculas.
Define cómo se debe obtener un token para la conexión. Esta configuración debe establecerse en managedidentity si su función de Azure implementada pretende utilizar la autenticación de identidad administrada. Este valor sólo es válido cuando existe una identidad administrada disponible en el entorno del hospedaje.
Cuando credential se establece en managedidentity, esta propiedad se puede establecer para especificar la identidad asignada por el usuario que se utilizará al obtener un token. La propiedad acepta un identificador de cliente correspondiente a una identidad asignada por el usuario asignada a la aplicación. No es válido especificar un id. de recurso así como tampoco es válido un id. de cliente. Si no se especifica, se usa la identidad asignada por el sistema. Esta propiedad se usa de forma diferente en escenarios de desarrollo locales, en los que no se debe establecer el elemento credential.
Cuando credential se establece en managedidentity, esta propiedad se puede establecer para que especifique el identificador de recurso que se utilizará al obtener un token. La propiedad acepta un identificador de recurso correspondiente al Id. de recurso de la identidad administrada definida por el usuario. No es válido especificar un Id. de recurso así como tampoco es válido un Id. de cliente. Si no se especifica ninguna de las dos, se utiliza la identidad asignada por el sistema. Esta propiedad se usa de forma diferente en escenarios de desarrollo locales, en los que no se debe establecer el elemento credential.
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.