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.
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
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
Eseguire l'emulatore
asrs-emulator
per elencare tutti i comandi disponibiliInit le impostazioni upstream predefinite usando:
asrs-emulator upstream init
Crea un valore predefinito
settings.json
nella cartella corrente, con un upstreamUrlTemplate
predefinito comehttp://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*
achat
. Quando il file viene modificato, la modifica viene caricata a caldo nell'emulatore.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. Digitareasrs-emulator start --help
per controllare le opzioni disponibili.Passare alla sottocartella
csharp
e rinominarelocal.settings.sample.json
inlocal.settings.json
, usare ConnectionString generato dall'emulatore per compilare il valore di AzureSignalRConnectionString nel local.settings.json. Compilare ilAzureWebJobsStorage
stringa di connessione di archiviazione, ad esempio quandoUseDevelopmentStorage=true
si usa l'emulatore di archiviazione. Salvare il file ed eseguire la funzione nellacsharp
sottocartella confunc start
.Nel browser passare a per
http://localhost:7071/api/index
giocare con la demo.
Passaggi successivi
Questo articolo illustra come usare Servizio SignalR nelle applicazioni. Per altre informazioni sulle Servizio SignalR, vedere gli articoli seguenti.