Поделиться через


Использование локального эмулятора Azure SignalR для бессерверной разработки

При разработке бессерверных приложений мы предоставляем локальный эмулятор Azure SignalR, чтобы упростить локальную разработку и интеграцию. Эмулятор работает только для бессерверных сценариев, для режима по умолчанию, который Служба Azure SignalR выступает в качестве прокси-сервера, можно напрямую использовать self-host SignalR для локальной разработки. Кроме того, обратите внимание, что эмулятор работает только для временного типа транспорта (по умолчанию) и не поддерживает тип постоянного транспорта.

Доступные возможности

  • Auth
  • Последняя поддержка REST API
  • Восходящие

Внимание

Необработанные строка подключения отображаются в этой статье только для демонстрационных целей.

Строка подключения включает сведения о авторизации, необходимые для доступа к Служба Azure SignalR приложения. Ключ доступа в строке подключения аналогичен паролю привилегированного пользователя для службы. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault для безопасного управления ключами и защиты строка подключения с помощью идентификатора Microsoft Entra и авторизации доступа с помощью идентификатора Microsoft Entra.

Старайтесь не распространять ключи доступа среди других пользователей, жестко программировать их или где-то сохранять в виде обычного текста в открытом доступе для других пользователей. Меняйте свои ключи постоянно, если предполагаете, что они могут быть подобраны.

Пошаговое руководство

Мы используем этот бессерверный пример , чтобы показать, как использовать эмулятор.

Необработанные строка подключения отображаются в этой статье только для демонстрационных целей. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault для безопасного управления ключами и защиты строка подключения с помощью идентификатора Microsoft Entra и авторизации доступа с помощью идентификатора Microsoft Entra.

  1. Клонирование примера репозитория в локальный

    git clone https://github.com/Azure/azure-functions-signalrservice-extension.git
    cd azure-functions-signalrservice-extension/samples/bidirectional-chat
    
  2. Установка эмулятора

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

    Или обновите эмулятор до последней предварительной версии, если она уже установлена:

    dotnet tool update -g Microsoft.Azure.SignalR.Emulator
    
  3. Запустите эмулятор asrs-emulator , чтобы вывести список всех доступных команд

    Снимок экрана: доступные команды для эмулятора.

  4. Инициализация параметров вышестоящего потока по умолчанию с помощью:

    asrs-emulator upstream init
    

    Он создает значение по умолчанию в текущей папке с вышестоящим http://localhost:7071/runtime/webhooks/signalrUrlTemplate значением по умолчаниюsettings.json, что является URL-адресом для триггера локальной функции SignalR:

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

    Вы можете изменить файл, чтобы сделать шаблон более ограниченным, например, изменить HubPattern его на *chat. При изменении файла его изменение загружается в эмулятор.

  5. Запуск эмулятора

    asrs-emulator start
    

    После успешного запуска эмулятора создается значение ConnectionString, которое будет использоваться позже.

    Эмулятор также предоставляет дополнительные параметры при запуске, например, можно использовать asrs-emulator start -p 8999 для настройки порта, используемого эмулятором. Введите asrs-emulator start --help , чтобы проверить доступные параметры.

  6. Перейдите в вложенную папку csharp и переименуйте local.settings.jsonlocal.settings.sample.json ее, используйте ConnectionString, созданную эмулятором, для заполнения значения AzureSignalRConnectionString в local.settings.json. Введите строка подключения AzureWebJobsStorage хранилища, UseDevelopmentStorage=true например при использовании эмулятора хранения. Сохраните файл и запустите функцию в подпапкеcsharp.func start

    Снимок экрана: локальная бессерверная функция запущена.

  7. В браузере перейдите к http://localhost:7071/api/index демонстрации.

    Снимок экрана: демонстрация бессерверного чата запущена.

Следующие шаги

Из этой статьи вы узнаете, как использовать Служба SignalR в приложениях. Дополнительные сведения о Служба SignalR см. в следующих статьях.

Azure SignalR Service internals (Внутренние компоненты Службы Azure SignalR)