Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo set di articoli illustra come autenticare e inviare messaggi in tempo reale ai client connessi a Azure SignalR Service usando associazioni SignalR Service in Azure Functions. Azure Functions runtime versione 2.x e successive supporta le associazioni di input e output per SignalR Service.
| Azione | TIPO |
|---|---|
| Gestire i messaggi da SignalR Service | Associazione di trigger |
| Restituire l'URL dell'endpoint di servizio e il token di accesso | Associazione di input |
| Inviare messaggi SignalR Service e gestire i gruppi | Associazione di output |
Installare l'estensione
Il pacchetto NuGet di estensione installato dipende dalla modalità C# usata nell'app per le funzioni:
Le funzioni sono eseguite in un processo di lavoro C# isolato. Per altre informazioni, vedere Guide per l'esecuzione di Azure Functions C# in un processo di lavoro isolato.
Aggiungere l'estensione al progetto installando questo pacchetto NuGet.
Installare il bundle
Per poter usare questa estensione di associazione nell'app, assicurarsi che il file host.json nella radice del progetto contenga questo extensionBundle riferimento:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
In questo esempio, il valore version indica all'host delle Funzioni di [4.0.0, 5.0.0) di usare una versione del pacchetto che sia almeno 4.0.0 ma inferiore a 5.0.0, includendo tutte le versioni comprese nella serie 4.x. Questa notazione mantiene l'app nella versione secondaria più recente disponibile del bundle di estensione v4.x.
Quando possibile, è consigliabile usare la versione principale del bundle di estensione più recente e consentire al runtime di mantenere automaticamente la versione secondaria più recente. È possibile visualizzare il contenuto del bundle più recente nella pagina di rilascio extension bundle. Per altre informazioni, vedere bundle di estensioni Azure Functions.
Dipendenza dell'app
Per usare le annotazioni SignalR Service nelle funzioni di Java, è necessario aggiungere una dipendenza all'elemento azure-functions-java-library-signalr (versione 1.0 o successiva) al file pom.xml.
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-signalr</artifactId>
<version>1.0.0</version>
</dependency>
Connessioni
È possibile usare connection string o Microsoft Entra identity per connettersi a Azure SignalR Service.
Stringa di connessione
Per istruzioni su come recuperare il connection string per la Azure SignalR Service, vedere stringhe Connection in Azure SignalR Service
Questo connection string deve essere archiviato in un'impostazione dell'applicazione con un nome AzureSignalRConnectionString. È possibile personalizzare il nome dell'impostazione dell'applicazione con la connectionStringSetting proprietà della configurazione dell'associazione.
Connessioni basate su identità
Se si usa la versione 1.7.0 o successiva, invece di usare un connection string con un segreto, è possibile che l'app usi un'identità Microsoft Entra.
Prima di tutto, è necessario assicurarsi che l'identità Microsoft Entra abbia il ruolo SignalR Service Proprietario.
Definire quindi le impostazioni con un prefisso AzureSignalRConnectionStringcomune. È possibile personalizzare il nome del prefisso con la connectionStringSetting proprietà della configurazione dell'associazione.
In questa modalità, le impostazioni includono gli elementi seguenti:
| Proprietà | Modello di variabile di ambiente | Descrizione | Richiesto | Valore di esempio |
|---|---|---|---|---|
| URI del servizio | AzureSignalRConnectionString__serviceUri |
URI dell'endpoint di servizio. Quando si configura solo l'URI del servizio, le estensioni tentano di usare il tipo DefaultAzureCredential per l'autenticazione con il servizio. | Sì | https://mysignalrsevice.service.signalr.net |
| Credenziali token | AzureSignalRConnectionString__credential |
Definisce come ottenere un token per la connessione. Questa impostazione deve essere impostata su managedidentity se la funzione Azure distribuita intende usare l'autenticazione dell'identità gestita. Questo valore è valido solo quando un'identità gestita è disponibile nell'ambiente di hosting. |
NO | managedidentity |
| ID client | AzureSignalRConnectionString__clientId |
Quando credential è impostato su managedidentity, questa proprietà può essere impostata per specificare l'identità assegnata dall'utente da usare per ottenere un token. La proprietà accetta un ID client corrispondente a un'identità assegnata dall'utente assegnata all'applicazione. Non è valido specificare sia un ID risorsa che un ID client. Se non specificata, viene usata l'identità assegnata dal sistema. Questa proprietà viene usata in modo diverso in scenari di sviluppo locale, quando non è consigliabile impostare credential. |
NO | 00000000-0000-0000-0000-000000000000 |
| ID risorsa | AzureSignalRConnectionString__managedIdentityResourceId |
Quando credential è impostato su managedidentity, questa proprietà può essere impostata per specificare l'identificatore della risorsa da usare quando si ottiene un token. La proprietà accetta un identificatore di risorsa corrispondente all'ID risorsa dell'identità gestita definita dall'utente. Non è valido specificare sia un ID risorsa che un ID client. Se non viene specificato nessuno dei due valori, viene usata l'identità assegnata dal sistema. Questa proprietà viene usata in modo diverso in scenari di sviluppo locale, quando non è consigliabile impostare credential. |
NO | /subscriptions/000000000-0000-0000-0000-00000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice |
Nota
Quando si usa il file local.settings.json in locale, Azure App Configuration o Key Vault per fornire impostazioni per le connessioni basate sull'identità, sostituire __ con : nel nome dell'impostazione per assicurarsi che i nomi vengano risolti correttamente.
Ad esempio: AzureSignalRConnectionString:serviceUri.
Impostazione di più endpoint
È anche possibile configurare più endpoint e specificare le impostazioni di identità per endpoint.
In questo caso, anteporre le impostazioni a Azure__SignalR__Endpoints__{endpointName}.
{endpointName} è un nome arbitrario assegnato dall'utente per associare un gruppo di impostazioni a un endpoint di servizio. Non è possibile personalizzare il prefisso Azure__SignalR__Endpoints__{endpointName} in base connectionStringSetting alla proprietà .
| Proprietà | Modello di variabile di ambiente | Descrizione | Richiesto | Valore di esempio |
|---|---|---|---|---|
| URI del servizio | Azure__SignalR__Endpoints__{endpointName}__serviceUri |
URI dell'endpoint del servizio. Quando si configura solo l'URI del servizio, le estensioni tentano di usare il tipo DefaultAzureCredential per l'autenticazione con il servizio. | Sì | https://mysignalrsevice1.service.signalr.net |
| Tipo di endpoint | Azure__SignalR__Endpoints__{endpointName}__type |
Indica se l'endpoint del servizio è primario o secondario. Se non specificato, per impostazione predefinita viene impostato su Primary. I valori validi sono Primary e Secondary, senza distinzione tra maiuscole e minuscole. |
NO | Secondary |
| Credenziali token | Azure__SignalR__Endpoints__{endpointName}__credential |
Definisce come ottenere un token per la connessione. Questa impostazione deve essere impostata su managedidentity se la funzione Azure distribuita intende usare l'autenticazione dell'identità gestita. Questo valore è valido solo quando un'identità gestita è disponibile nell'ambiente di hosting. |
NO | managedidentity |
| ID client | Azure__SignalR__Endpoints__{endpointName}__clientId |
Quando credential è impostato su managedidentity, questa proprietà può essere impostata per specificare l'identità assegnata dall'utente da usare per ottenere un token. La proprietà accetta un ID client corrispondente a un'identità assegnata dall'utente assegnata all'applicazione. Non è valido specificare sia un ID risorsa che un ID client. Se non specificata, viene usata l'identità assegnata dal sistema. Questa proprietà viene usata in modo diverso in scenari di sviluppo locale, quando non è consigliabile impostare credential. |
NO | 00000000-0000-0000-0000-000000000000 |
| ID risorsa | Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId |
Quando credential è impostato su managedidentity, questa proprietà può essere impostata per specificare l'identificatore della risorsa da usare quando si ottiene un token. La proprietà accetta un identificatore di risorsa corrispondente all'ID risorsa dell'identità gestita definita dall'utente. Non è valido specificare sia un ID risorsa che un ID client. Se non viene specificato nessuno dei due valori, viene usata l'identità assegnata dal sistema. Questa proprietà viene usata in modo diverso in scenari di sviluppo locale, quando non è consigliabile impostare credential. |
NO | /subscriptions/000000000-0000-0000-0000-00000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity |
Per altre informazioni su più endpoint, vedere Scale SignalR Service con più istanze
Per una sicurezza ottimale, l'app per le funzioni deve usare le identità gestite per la connessione al servizio SignalR Azure anziché usare un connection string, che contiene una chiave privata condivisa. Per altre informazioni, vedere Autorizzare le richieste per Azure SignalR Service risorse con identità gestite Microsoft Entra.
Passaggi successivi
Per informazioni dettagliate su come configurare e usare SignalR Service e Azure Functions insieme, vedere Azure Functions sviluppo e configurazione con Azure SignalR Service.