Compartir a través de


Uso del emulador local de Azure SignalR para el desarrollo sin servidor

Al desarrollar aplicaciones sin servidor, se proporciona un emulador local de Azure SignalR para facilitar el desarrollo y la integración locales. El emulador solo funciona para escenarios sin servidor. Para el modo Predeterminado para el que Azure SignalR Service actúa como proxy, use directamente el autohospedador de SignalR para realizar el desarrollo local. Tenga en cuenta también que el emulador solo funciona para el tipo de transporte Transitorio (el predeterminado) y no admite el tipo de transporte Persistente.

Características disponibles

  • Auth
  • Compatibilidad con la API de REST más reciente
  • Ascendente

Importante

Las cadenas de conexión sin procesar solo aparecen en este artículo con fines de demostración.

Una cadena de conexión incluye la información de autorización necesaria para que la aplicación acceda a Azure SignalR Service. La clave de acceso dentro de la cadena de conexión es similar a una contraseña raíz para el servicio. En entornos de producción, proteja siempre las claves de acceso. Use Azure Key Vault para administrar y rotar las claves de forma segura y proteger la cadena de conexión mediante el Microsoft Entra ID y autorizar el acceso con el identificador de Microsoft Entra.

Evite distribuirlas a otros usuarios, codificarlas de forma rígida o guardarlas en un archivo de texto sin formato al que puedan acceder otros usuarios. Rote sus claves si cree que se han puesto en peligro.

Tutorial

Se usa este ejemplo sin servidor para mostrar cómo usar el emulador.

Las cadenas de conexión sin procesar solo aparecen en este artículo con fines de demostración. En entornos de producción, proteja siempre las claves de acceso. Use Azure Key Vault para administrar y rotar las claves de forma segura y proteger la cadena de conexión mediante el Microsoft Entra ID y autorizar el acceso con el identificador de Microsoft Entra.

  1. Clonación del repositorio de ejemplo en local

    git clone https://github.com/Azure/azure-functions-signalrservice-extension.git
    cd azure-functions-signalrservice-extension/samples/bidirectional-chat
    
  2. Instalación del emulador

    dotnet tool install  -g Microsoft.Azure.SignalR.Emulator
    

    O actualice el emulador a la versión preliminar más reciente si ya está instalado:

    dotnet tool update -g Microsoft.Azure.SignalR.Emulator
    
  3. Ejecute el emulador asrs-emulator para enumerar todos los comandos disponibles

    Captura de pantalla de los comandos disponibles para el emulador.

  4. Inicialización de la configuración ascendente predeterminada mediante:

    asrs-emulator upstream init
    

    Crea un settings.json predeterminado en la carpeta actual, con un UrlTemplate ascendente predeterminado como http://localhost:7071/runtime/webhooks/signalr, que es la dirección URL del desencadenador de función local de SignalR:

    {
    "UpstreamSettings": {
        "Templates": [
        {
            "UrlTemplate": "http://localhost:7071/runtime/webhooks/signalr",
            "EventPattern": "*",
            "HubPattern": "*",
            "CategoryPattern": "*"
        }
        ]
    }
    }
    

    Podría editar el archivo para que el patrón sea más restringido como, por ejemplo, cambiar HubPattern de * a chat. Cuando se modifica el archivo, su cambio se carga en caliente en el emulador.

  5. Inicio del emulador

    asrs-emulator start
    

    Una vez iniciado correctamente el emulador, genera connectionString que se usará más adelante.

    El emulador también proporciona opciones avanzadas cuando se inicia. Por ejemplo: use asrs-emulator start -p 8999 para personalizar el puerto que usó el emulador. Escriba asrs-emulator start --help para comprobar las opciones disponibles.

  6. Vaya a la subcarpeta csharp y cambie el nombre de local.settings.sample.json por local.settings.json. Use el valor de ConnectionString generado por el emulador para rellenar el valor de AzureSignalRConnectionString en local.settings.json. Rellene AzureWebJobsStorage con la cadena de conexión de almacenamiento. Por ejemplo: UseDevelopmentStorage=true al usar el emulador de almacenamiento. Guarde el archivo y ejecute la función en la subcarpeta csharp con func start.

    Captura de pantalla de la función local sin servidor que se está ejecutando.

  7. En el explorador, vaya a http://localhost:7071/api/index para reproducir la demo.

    Captura de pantalla de la demostración de chat sin servidor que se está ejecutando.

Pasos siguientes

En este artículo, se obtiene información sobre cómo usar SignalR Service en las aplicaciones. Consulte los artículos siguientes para obtener más información sobre SignalR Service.