Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
En este conjunto de artículos se explica cómo autenticar y enviar mensajes en tiempo real a los clientes conectados a Azure Web PubSub mediante enlaces de Azure Web PubSub en Azure Functions.
| Acción | Tipo |
|---|---|
| Controlar eventos de cliente desde Web PubSub | Enlace del desencadenador |
| Control de eventos de cliente desde Web PubSub con desencadenador HTTP, o devolver la dirección URL y el token de acceso de cliente | Enlace de entrada |
| Invocar API de servicio | Enlace de salida |
Instalación de la extensión
El paquete NuGet de la extensión que instale depende del modo de C# que esté usando en la aplicación de funciones:
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.
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.
Nota:
Todavía no se admiten las extensiones de Web PubSub para Java.
Conceptos clave
(1)-(2) Enlace de entrada WebPubSubConnection con HttpTrigger para generar la conexión de cliente.
(3)-(4) Enlace de desencadenador WebPubSubTrigger o enlace de entrada WebPubSubContext con HttpTrigger para controlar la solicitud de servicio.
(5)-(6) Enlace de salida WebPubSub para solicitar que el servicio realice alguna acción.
Conexión
Puede usar la cadena de conexión o la identidad de Microsoft Entra para conectarse al servicio Azure Web PubSub.
Cadena de conexión
De forma predeterminada, se usa una configuración de aplicación denominada WebPubSubConnectionString para almacenar el cadena de conexión de Web PubSub. Al elegir usar un nombre de configuración diferente para la conexión, debe establecerlo explícitamente como nombre de clave en las definiciones de enlace. Durante el desarrollo local, también debe agregar esta configuración a la Values colección en el archivolocal.settings.json.
Importante
Una cadena de conexión incluye la información de autorización necesaria para que la aplicación acceda al servicio Azure Web PubSub. La clave de acceso dentro de la cadena de conexión es similar a una contraseña raíz para el servicio. Para una seguridad óptima, la aplicación de funciones debe usar identidades administradas al conectarse al servicio Web PubSub en lugar de usar una cadena de conexión.
Para más información sobre cómo configurar y usar Web PubSub y Azure Functions juntos, consulte Tutorial: Creación de una aplicación de notificación sin servidor con Azure Functions y el servicio Azure Web PubSub.
Conexiones basadas en identidades
Si usa extensiones de Azure Web PubSub Functions v1.10.0 o posterior, en lugar de usar una cadena de conexión con una clave de acceso, puede configurar la aplicación de funciones para autenticarse en Azure Web PubSub mediante una identidad de Microsoft Entra.
Este enfoque elimina la necesidad de administrar secretos y se recomienda para cargas de trabajo de producción.
Prerrequisitos
Asegúrese de que la identidad de Microsoft Entra usada por la aplicación de funciones se ha concedido un rol RBAC de Azure adecuado en el recurso web PubSub de destino:
Configuración
Las conexiones basadas en identidades en Azure Functions usan un conjunto de opciones de configuración que comparten un prefijo común. De forma predeterminada, las extensiones de Azure Web PubSub Functions buscan la configuración con el prefijo WebPubSubConnectionString. Puede personalizar este prefijo estableciendo la propiedad en el connection desencadenador o enlace.
Para Azure Web PubSub, la configuración específica del servicio que debe proporcionar es el URI del punto de conexión de servicio:
| Propiedad | Plantilla de variable de entorno | Description | Obligatorio |
|---|---|---|---|
| URI del servicio | WebPubSubConnectionString__serviceUri |
El URI del punto de conexión de servicio de Web PubSub. | Sí |
Cuando se hospeda en el servicio de Azure Functions, las conexiones basadas en identidades usan una identidad administrada. La identidad asignada por el sistema se usa de forma predeterminada, aunque se puede especificar una identidad asignada por el usuario. Para obtener más información sobre cómo personalizar la identidad, propiedades comunes para las conexiones basadas en identidades.
Cuando se ejecuta en otros contextos, como el de desarrollo local, se usa en su lugar la identidad del desarrollador, aunque se puede personalizar. Consulte Desarrollo local con conexiones basadas en identidades.
Configuración de ejemplo
En el ejemplo siguiente se muestra cómo configurar la identidad basada en identidades con valores predeterminados:
{
"WebPubSubConnectionString__serviceUri": "https://your-webpubsub.webpubsub.azure.com"
}
Nota:
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: WebPubSubConnectionString:serviceUri.