Condividi tramite


Associazioni del servizio SignalR per Funzioni di Azure

Questo set di articoli illustra come autenticare e inviare messaggi in tempo reale ai client connessi a Servizio Azure SignalR usando associazioni Servizio SignalR in Funzioni di Azure. Funzioni di Azure runtime versione 2.x e successive supporta le associazioni di input e output per Servizio SignalR.

Azione Type
Gestire i messaggi da Servizio SignalR Associazione di trigger
Restituire l'URL dell'endpoint di servizio e il token di accesso Associazione di input
Inviare messaggi Servizio SignalR 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 Guida per l'esecuzione di Funzioni di Azure C# in un processo di lavoro isolato.

Aggiungere l'estensione al progetto installando questo pacchetto NuGet.

Installare il bundle

L'estensione Servizio SignalR fa parte di un bundle di estensione, specificato nel file di progetto host.json. Quando si crea un progetto destinato alla versione 3.x o successiva, è necessario avere già installato questo bundle. Per altre informazioni, vedere bundle di estensioni.

Dipendenza dell'app

Per usare le annotazioni Servizio SignalR nelle funzioni Java, è necessario aggiungere una dipendenza all'artefatto 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 stringa di connessione o l'identità di Microsoft Entra per connettersi a Servizio Azure SignalR.

Stringa di connessione

Per istruzioni su come recuperare le stringa di connessione per il Servizio Azure SignalR, vedere Stringhe di connessione in Servizio Azure SignalR

Questo stringa di connessione 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 stringa di connessione con un segreto, è possibile che l'app usi un'identità Microsoft Entra.

Prima di tutto, è necessario assicurarsi che l'identità di Microsoft Entra abbia il ruolo Servizio SignalR 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. 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 di 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 local.settings.json il file in locale, app Azure Configurazione o Key Vault per specificare le 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. 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 di 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 Ridimensionare Servizio SignalR con più istanze

Passaggi successivi

Per informazioni dettagliate su come configurare e usare Servizio SignalR e Funzioni di Azure insieme, vedere Funzioni di Azure sviluppo e configurazione con Servizio Azure SignalR.