Partilhar via


Enlaces do Serviço SignalR para as Funções do Azure

Este conjunto de artigos explica como autenticar e enviar mensagens em tempo real para clientes conectados ao Serviço SignalR do Azure usando associações do Serviço SignalR no Azure Functions. O tempo de execução do Azure Functions versão 2.x e superior dá suporte a ligações de entrada e saída para o Serviço SignalR.

Ação Type
Manipular mensagens do Serviço SignalR Vinculação de gatilho
Retornar a URL do ponto de extremidade do serviço e o token de acesso Vinculação de entrada
Enviar mensagens do Serviço SignalR e gerenciar grupos Vinculação de saída

Instalar a extensão

O pacote de extensão NuGet que você instala depende do modo C# que você está usando em seu aplicativo de função:

As funções são executadas em um processo de trabalho C# isolado. Para saber mais, consulte Guia para executar o C# Azure Functions em um processo de trabalho isolado.

Adicione a extensão ao seu projeto instalando este pacote NuGet.

Instalar pacote

A extensão do Serviço SignalR faz parte de um pacote de extensão, que é especificado no seu arquivo de projeto host.json. Quando você cria um projeto destinado à versão 3.x ou posterior, você já deve ter esse pacote instalado. Para saber mais, consulte Pacote de extensão.

Adicionar dependência

Para usar as anotações do Serviço SignalR em funções Java, você precisa adicionar uma dependência ao artefato azure-functions-java-library-signalr (versão 1.0 ou superior) ao seu arquivo pom.xml .

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-signalr</artifactId>
    <version>1.0.0</version>
</dependency>

Ligações

Você pode usar a cadeia de conexão ou a identidade do Microsoft Entra para se conectar ao Serviço Azure SignalR.

Connection string

Para obter instruções sobre como recuperar a cadeia de conexão para seu Serviço Azure SignalR, consulte Cadeias de conexão no Serviço Azure SignalR

Essa cadeia de conexão deve ser armazenada em uma configuração de aplicativo com um nome AzureSignalRConnectionString. Você pode personalizar o nome da configuração do aplicativo com a connectionStringSetting propriedade da configuração de vinculação.

Conexões baseadas em identidade

Se estiver a utilizar a versão 1.7.0 ou superior, em vez de utilizar uma cadeia de ligação com um segredo, pode fazer com que a aplicação utilize uma identidade Microsoft Entra.

Em primeiro lugar, você deve certificar-se de que sua identidade do Microsoft Entra tem a função SignalR Service Owner.

Em seguida, você definiria as configurações com um prefixo AzureSignalRConnectionStringcomum. Você pode personalizar o nome do prefixo com a connectionStringSetting propriedade da configuração de vinculação.

Neste modo, as configurações incluem os seguintes itens:

Property Modelo de variável de ambiente Description Obrigatório Valor de exemplo
URI de serviço AzureSignalRConnectionString__serviceUri O URI do seu ponto de extremidade de serviço. Quando você configura apenas "URI de serviço", as extensões tentam usar o tipo DefaultAzureCredential para autenticar com o serviço. Sim https://mysignalrsevice.service.signalr.net
Credencial de token AzureSignalRConnectionString__credential Define como um token deve ser obtido para a conexão. Essa configuração deve ser definida como managedidentity se sua Função do Azure implantada pretende usar a autenticação de identidade gerenciada. Esse valor só é válido quando uma identidade gerenciada está disponível no ambiente de hospedagem. Não managedidentity
ID de Cliente AzureSignalRConnectionString__clientId Quando credential é definido como managedidentity, essa propriedade pode ser definida para especificar a identidade atribuída pelo usuário a ser usada ao obter um token. A propriedade aceita um ID de cliente correspondente a uma identidade atribuída pelo usuário atribuída ao aplicativo. É inválido especificar uma ID de recurso e uma ID de cliente. Se não for especificado, a identidade atribuída ao sistema será usada. Esta propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não deveria ser definida. Não 00000000-0000-0000-0000-000000000000
ID do Recurso AzureSignalRConnectionString__managedIdentityResourceId Quando credential é definido como managedidentity, essa propriedade pode ser definida para especificar o Identificador de recurso a ser usado ao obter um token. A propriedade aceita um identificador de recurso correspondente ao ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar um ID de recurso e um ID de cliente. Se nenhum dos dois for especificado, a identidade atribuída ao sistema será usada. Esta propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não deveria ser definida. Não /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice

Nota

Ao usar local.settings.json o arquivo local, a Configuração do Aplicativo do Azure ou o Cofre da Chave para fornecer configurações para conexões baseadas em identidade, substitua __ por : no nome da configuração para garantir que os nomes sejam resolvidos corretamente.

Por exemplo, AzureSignalRConnectionString:serviceUri.

Configuração de vários endpoints

Você também pode configurar vários pontos de extremidade e especificar configurações de identidade por ponto de extremidade.

Nesse caso, prefixe suas configurações com Azure__SignalR__Endpoints__{endpointName}. O {endpointName} é um nome arbitrário atribuído por você para associar um grupo de configurações a um ponto de extremidade de serviço. O prefixo Azure__SignalR__Endpoints__{endpointName} não pode ser personalizado por connectionStringSetting propriedade.

Property Modelo de variável de ambiente Description Obrigatório Valor de exemplo
URI de serviço Azure__SignalR__Endpoints__{endpointName}__serviceUri O URI do seu ponto de extremidade de serviço. Quando você configura apenas "URI de serviço", as extensões tentam usar o tipo DefaultAzureCredential para autenticar com o serviço. Sim https://mysignalrsevice1.service.signalr.net
Tipo de Ponto Final Azure__SignalR__Endpoints__{endpointName}__type Indica se o ponto de extremidade do serviço é primário ou secundário. Se não for especificado, o padrão será Primary. Os valores válidos são Primary e , sem distinção entre maiúsculas e Secondaryminúsculas. Não Secondary
Credencial de token Azure__SignalR__Endpoints__{endpointName}__credential Define como um token deve ser obtido para a conexão. Essa configuração deve ser definida como managedidentity se sua Função do Azure implantada pretende usar a autenticação de identidade gerenciada. Esse valor só é válido quando uma identidade gerenciada está disponível no ambiente de hospedagem. Não managedidentity
ID de Cliente Azure__SignalR__Endpoints__{endpointName}__clientId Quando credential é definido como managedidentity, essa propriedade pode ser definida para especificar a identidade atribuída pelo usuário a ser usada ao obter um token. A propriedade aceita um ID de cliente correspondente a uma identidade atribuída pelo usuário atribuída ao aplicativo. É inválido especificar uma ID de recurso e uma ID de cliente. Se não for especificado, a identidade atribuída ao sistema será usada. Esta propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não deveria ser definida. Não 00000000-0000-0000-0000-000000000000
ID do Recurso Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId Quando credential é definido como managedidentity, essa propriedade pode ser definida para especificar o Identificador de recurso a ser usado ao obter um token. A propriedade aceita um identificador de recurso correspondente ao ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar um ID de recurso e um ID de cliente. Se nenhum dos dois for especificado, a identidade atribuída ao sistema será usada. Esta propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não deveria ser definida. Não /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity

Para obter mais informações sobre vários pontos de extremidade, consulte Dimensionar o serviço SignalR com várias instâncias

Próximos passos

Para obter detalhes sobre como configurar e usar o Serviço SignalR e o Azure Functions juntos, consulte Desenvolvimento e configuração do Azure Functions com o Serviço SignalR do Azure.