Partekatu bidez


Enlaces de Web PubSub para Azure Functions

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

Muestras

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

Diagrama que muestra el flujo de trabajo del servicio Azure Web PubSub que funciona con aplicaciones de funciones.

(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.

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.

Pasos siguientes