Condividi tramite


Usare l'emulatore locale di Azure SignalR per lo sviluppo serverless

Quando si sviluppano applicazioni serverless, viene fornito un emulatore locale di Azure SignalR per semplificare lo sviluppo e l'integrazione locali. L'emulatore funziona solo per gli scenari serverless, per la modalità predefinita che il Servizio Azure SignalR funge da proxy, è possibile usare direttamente SignalR self-host per eseguire lo sviluppo locale. Si noti anche che l'emulatore funziona solo per il tipo di trasporto temporaneo (quello predefinito) e non supporta il tipo di trasporto persistente .

Funzionalità disponibili

  • Auth
  • Supporto dell'API REST più recente
  • Upstream

Importante

Le stringa di connessione non elaborate vengono visualizzate in questo articolo solo a scopo dimostrativo.

Un stringa di connessione include le informazioni di autorizzazione necessarie per consentire all'applicazione di accedere alle Servizio Azure SignalR. La chiave di accesso all'interno della stringa di connessione è simile a una password radice per il servizio. Negli ambienti di produzione proteggere sempre le chiavi di accesso. Usare Azure Key Vault per gestire e ruotare le chiavi in modo sicuro e proteggere i stringa di connessione usando Microsoft Entra ID e autorizzare l'accesso con Microsoft Entra ID.

Evitare di distribuire le chiavi di accesso ad altri utenti, impostarle come hardcoded o salvarle in un file di testo normale accessibile ad altri. Ruotare le chiavi se si ritiene che siano state compromesse.

scenario

Questo esempio serverless viene usato per illustrare come usare l'emulatore.

Le stringa di connessione non elaborate vengono visualizzate in questo articolo solo a scopo dimostrativo. Negli ambienti di produzione proteggere sempre le chiavi di accesso. Usare Azure Key Vault per gestire e ruotare le chiavi in modo sicuro e proteggere i stringa di connessione usando Microsoft Entra ID e autorizzare l'accesso con Microsoft Entra ID.

  1. Clonare il repository di esempio in locale

    git clone https://github.com/Azure/azure-functions-signalrservice-extension.git
    cd azure-functions-signalrservice-extension/samples/bidirectional-chat
    
  2. Installare l'emulatore

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

    In alternativa, aggiornare l'emulatore alla versione di anteprima più recente, se è già installata:

    dotnet tool update -g Microsoft.Azure.SignalR.Emulator
    
  3. Eseguire l'emulatore asrs-emulator per elencare tutti i comandi disponibili

    Screenshot dei comandi disponibili per l'emulatore.

  4. Init le impostazioni upstream predefinite usando:

    asrs-emulator upstream init
    

    Crea un valore predefinito settings.json nella cartella corrente, con un upstream UrlTemplate predefinito come http://localhost:7071/runtime/webhooks/signalr, ovvero l'URL per il trigger di funzione locale di SignalR:

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

    È possibile modificare il file per rendere il modello più limitato, ad esempio modificare HubPattern da * a chat. Quando il file viene modificato, la modifica viene caricata a caldo nell'emulatore.

  5. Avviare l'emulatore

    asrs-emulator start
    

    Dopo l'avvio dell'emulatore, viene generato connectionString da usare in un secondo momento.

    L'emulatore fornisce anche opzioni avanzate all'avvio, ad esempio per asrs-emulator start -p 8999 personalizzare la porta usata dall'emulatore. Digitare asrs-emulator start --help per controllare le opzioni disponibili.

  6. Passare alla sottocartella csharp e rinominare local.settings.sample.json in local.settings.json, usare ConnectionString generato dall'emulatore per compilare il valore di AzureSignalRConnectionString nel local.settings.json. Compilare il AzureWebJobsStorage stringa di connessione di archiviazione, ad esempio quando UseDevelopmentStorage=true si usa l'emulatore di archiviazione. Salvare il file ed eseguire la funzione nella csharp sottocartella con func start.

    Screenshot della funzione serverless locale in esecuzione.

  7. Nel browser passare a per http://localhost:7071/api/index giocare con la demo.

    Screenshot della demo di chat serverless in esecuzione.

Passaggi successivi

Questo articolo illustra come usare Servizio SignalR nelle applicazioni. Per altre informazioni sulle Servizio SignalR, vedere gli articoli seguenti.