Freigeben über


Verwenden des lokalen Emulators für Azure SignalR für die serverlose Entwicklung

Bei der Entwicklung serverloser Anwendungen stellen wir einen lokalen Azure SignalR-Emulator bereit, um die lokale Entwicklung und Integration zu vereinfachen. Der Emulator funktioniert nur für serverlose Szenarien, für den Standardmodus, für den der Azure SignalR-Dienst als Proxy fungiert. Sie können Self-Host SignalR direkt verwenden, um die lokale Entwicklung durchzuführen. Beachten Sie außerdem, dass der Emulator nur für den Vorübergehenden Transporttyp (Standard) funktioniert und den Persistenten Transporttyp nicht unterstützt.

Verfügbare Funktionen

  • Authentifizierung
  • Neueste Rest-API-Unterstützung
  • Upstream

Wichtig

Unformatierte Verbindungszeichenfolgen werden in diesem Artikel nur zu Demonstrationszwecken angezeigt.

Eine Verbindungszeichenfolge enthält die Autorisierungsinformationen, die Ihre Anwendung für den Zugriff auf den Azure SignalR-Dienst benötigt. Der Zugriffsschlüssel in der Verbindungszeichenfolge ähnelt einem Stammkennwort für Ihren Dienst. Schützen Sie Ihre Zugriffsschlüssel in Produktionsumgebungen immer sorgfältig. Verwenden Sie Azure Key Vault, um Ihre Schlüssel sicher zu verwalten und zu rotieren, Ihre Verbindungszeichenfolge mithilfe von Microsoft Entra ID zu schützen und den Zugriff mit Microsoft Entra ID zu autorisieren.

Geben Sie Zugriffsschlüssel nicht an andere Benutzer weiter, vermeiden Sie das Hartcodieren, und speichern Sie die Schlüssel nicht als Klartext, auf den andere Benutzer Zugriff haben. Rotieren Sie die Schlüssel, wenn Sie glauben, dass sie möglicherweise gefährdet sind.

Exemplarische Vorgehensweise

Wir verwenden dieses serverlose Beispiel, um zu zeigen, wie der Emulator verwendet wird.

Unformatierte Verbindungszeichenfolgen werden in diesem Artikel nur zu Demonstrationszwecken angezeigt. Schützen Sie Ihre Zugriffsschlüssel in Produktionsumgebungen immer sorgfältig. Verwenden Sie Azure Key Vault, um Ihre Schlüssel sicher zu verwalten und zu rotieren, Ihre Verbindungszeichenfolge mithilfe von Microsoft Entra ID zu schützen und den Zugriff mit Microsoft Entra ID zu autorisieren.

  1. Klonen des Beispiel-Repositorys auf lokal

    git clone https://github.com/Azure/azure-functions-signalrservice-extension.git
    cd azure-functions-signalrservice-extension/samples/bidirectional-chat
    
  2. Installieren des Emulators

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

    Oder aktualisieren Sie den Emulator auf die neueste Vorschauversion, wenn er bereits installiert ist:

    dotnet tool update -g Microsoft.Azure.SignalR.Emulator
    
  3. Ausführen des Emulators asrs-emulator zum Auflisten aller verfügbaren Befehle

    Screenshot der verfügbaren Befehle für den Emulator.

  4. Initiieren Sie die Standard-Upstreameinstellungen mithilfe von:

    asrs-emulator upstream init
    

    Er erstellt einen Standardwert settings.json im aktuellen Ordner mit einem Standard-Upstream UrlTemplate als http://localhost:7071/runtime/webhooks/signalr, der die URL für den lokalen Funktionstrigger von SignalR ist:

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

    Sie können die Datei bearbeiten, damit das Muster eingeschränkter wird, z. B. dass HubPattern von * zu chat geändert wird. Wenn die Datei geändert wird, wird die Änderung in den Emulator geladen.

  5. Starten des Emulators

    asrs-emulator start
    

    Nachdem der Emulator erfolgreich gestartet wurde, wird die ConnectionString generiert, die später verwendet werden soll.

    Der Emulator bietet auch erweiterte Optionen beim Start, z. B. können Sie asrs-emulator start -p 8999 verwenden, um den vom Emulator verwendeten Port anzupassen. Geben Sie asrs-emulator start --help ein, um die verfügbaren Optionen zu überprüfen.

  6. Wechseln Sie in den Unterordner csharp und benennen Sie local.settings.sample.json zu local.settings.json um. Verwenden Sie die vom Emulator generierte ConnectionString, um den Wert von AzureSignalRConnectionString in Ihrer local.settings.json auszufüllen. Tragen Sie in AzureWebJobsStorage Ihre Speicherverbindungszeichenfolge ein, z. B. UseDevelopmentStorage=true, wenn Sie den Speicher-Emulator verwenden. Speichern Sie die Datei und führen Sie die Funktion im csharp-Unterordner mit func start aus.

    Screenshot der lokalen serverlosen Funktion wird ausgeführt.

  7. Navigieren Sie im Browser zu http://localhost:7071/api/index, um mit der Demo zu spielen.

    Screenshot der Demo für serverlose Chats wird ausgeführt.

Nächste Schritte

In diesem Artikel erfahren Sie, wie Sie SignalR Service in Ihren Anwendungen verwenden. Weitere Informationen zu SignalR Service finden Sie in den folgenden Artikeln.