Guida introduttiva: Creare un'app serverless con Funzioni di Azure e Servizio SignalR usando JavaScript
Articolo
In questo articolo si usano Servizio Azure SignalR, Funzioni di Azure e JavaScript per compilare un'applicazione serverless per trasmettere messaggi ai client.
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.
Prerequisiti
Questa guida introduttiva può essere eseguita su macOS, Windows o Linux.
L'associazione SignalR richiede Archiviazione di Azure. È possibile usare un emulatore di archiviazione locale quando una funzione è in esecuzione in locale.
Nell'angolo in alto a sinistra della pagina selezionare + Crea una risorsa.
Nella casella di testo Servizi di ricerca e marketplace della pagina Crea una risorsa immettere signalr e quindi selezionare Servizio SignalR dall'elenco.
Nella pagina Servizio SignalR selezionare Crea.
Nella scheda Informazioni di base immettere le informazioni essenziali per la nuova istanza del servizio SignalR. Immettere i valori seguenti:
Campo
Valore consigliato
Descrizione
Abbonamento
Scegliere la sottoscrizione in uso
Selezionare la sottoscrizione da usare per creare una nuova istanza del servizio SignalR.
Gruppo di risorse
Creare un gruppo di risorse denominato SignalRTestResources
Selezionare o creare un gruppo di risorse per la risorsa SignalR. È utile creare un nuovo gruppo di risorse per questa esercitazione anziché usare un gruppo di risorse esistente. Per liberare risorse dopo aver completato l'esercitazione, eliminare il gruppo di risorse.
L'eliminazione di un gruppo di risorse elimina anche tutte le risorse che appartengono al gruppo. Non è possibile annullare questa azione. Prima di eliminare un gruppo di risorse, assicurarsi che non contenga risorse da conservare.
Immettere un nome risorsa univoco da usare per la risorsa SignalR. Se testsignalr è già in uso nell'area, aggiungere una cifra o un carattere fino a quando il nome non è univoco.
Il nome deve essere una stringa contenente da 1 a 63 caratteri che possono includere solo numeri, lettere e il segno meno (-). Il nome non può iniziare o terminare con un trattino e non sono consentiti più trattini consecutivi.
Area
Scegli la tua area geografica
Selezionare l'area appropriata per la nuova istanza del servizio SignalR.
Selezionare Modifica e quindi scegliere Gratuito (solo sviluppo/test). Scegliere Seleziona per confermare la scelta del piano tariffario.
Il Servizio Azure SignalR ha tre piani tariffari: Gratuito, Standard e Premium. Le esercitazioni usano il livello Gratuito, a meno che non sia specificato diversamente nei prerequisiti.
Usare Predefinita quando si ospita la logica dell'hub SignalR nelle app Web e si usa il Servizio SignalR come proxy. Usare Serverless quando si usano tecnologie serverless come Funzioni di Azure per ospitare la logica dell'hub SignalR.
La modalità Classica è disponibile solo ai fini della compatibilità con le versioni precedenti e non è consigliabile usarla.
Non è necessario modificare le impostazioni nelle schede Rete e Tag per le esercitazioni su SignalR.
Selezionare il pulsante blu Rivedi e crea nella parte inferiore della scheda Informazioni di base.
Nella scheda Rivedi e crea rivedere i valori e quindi selezionare Crea. Il completamento della distribuzione richiede alcuni istanti.
Dopo avere completato la distribuzione, selezionare il pulsante Vai alla risorsa.
Nella pagina della risorsa SignalR selezionare Chiavi dal menu a sinistra, in Impostazioni.
Copiare la Stringa di connessione per la chiave primaria. Questa stringa di connessione è necessaria per configurare l'app più avanti in questa esercitazione.
Progetto di funzione di installazione
Assicurarsi di avere installato Azure Functions Core Tools.
Aprire una riga di comando.
Creare la directory del progetto e quindi modificarla.
Eseguire il comando Funzioni di Azure func init per inizializzare un nuovo progetto.
Dopo aver inizializzato un progetto, è necessario creare funzioni. Questo progetto richiede tre funzioni:
index: ospita una pagina Web per un client.
negotiate: consente a un client di ottenere un token di accesso.
broadcast: usa un trigger di tempo per trasmettere periodicamente i messaggi a tutti i client.
Quando si esegue il func new comando dalla directory radice del progetto, il Funzioni di Azure Core Tools crea i file di origine della funzione che li archiviano in una cartella con il nome della funzione. Modificare i file in base alle esigenze sostituendo il codice predefinito con il codice dell'app.
Creare la funzione index
Eseguire il comando seguente per creare la index funzione .
Bash
func new -n index -t HttpTrigger
Modificare src/functions/httpTrigger.js e sostituire il contenuto con il codice JSON seguente:
Aggiungere il Servizio SignalR stringa di connessione alle impostazioni dell'app per le funzioni
Ora hai quasi finito. L'ultimo passaggio consiste nell'impostare il Servizio SignalR stringa di connessione nelle impostazioni dell'app per le funzioni di Azure.
Nella portale di Azure passare all'istanza di SignalR distribuita in precedenza.
Selezionare Chiavi per visualizzare le stringhe di connessione per l'istanza del servizio SignalR.
Copiare il stringa di connessione primario ed eseguire il comando .
Eseguire l'app per le funzioni di Azure nell'ambiente locale:
Bash
func start
Dopo aver eseguito la funzione di Azure in locale, passare a http://localhost:7071/api/index. Nella pagina viene visualizzato il numero di stelle corrente per il repository Azure/azure-signalr di GitHub. Quando si star o unstar il repository in GitHub, il conteggio aggiornato verrà visualizzato ogni pochi secondi.
Se non si intende continuare a usare l'app, eliminare tutte le risorse create tramite questa guida di avvio rapido eseguendo i passaggi seguenti, per evitare qualsiasi addebito:
Nel portale di Azure selezionare Gruppi di risorse all'estrema sinistra e quindi selezionare il gruppo di risorse creato. In alternativa, è possibile usare la casella di ricerca per trovare il gruppo di risorse in base al nome.
Nella finestra che si apre selezionare il gruppo di risorse e quindi fare clic su Elimina gruppo di risorse.
Nella nuova finestra digita il nome del gruppo di risorse da eliminare e quindi fai clic su Elimina.
Codice di esempio
È possibile ottenere tutto il codice usato nell'articolo dal repository GitHub:
In questa guida introduttiva è stata creata ed eseguita un'applicazione serverless in tempo reale in localhost. Altre informazioni su come comunicare bidirezionalmente tra client e funzioni di Azure con Servizio SignalR.
Cambiare un meccanismo di aggiornamento di un'app Web JavaScript da un'architettura di polling a una basata su push in tempo reale con il Servizio SignalR, Azure Cosmos DB e Funzioni di Azure. Usare Vue.js e JavaScript per usare SignalR con Visual Studio Code.
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.