Associações do Serviço SignalR para o Azure Functions
Este conjunto de artigos explica como autenticar e enviar mensagens em tempo real para clientes conectados ao Serviço do Azure SignalR usando associações do Serviço do SignalR no Azure Functions. O Azure Functions Runtime versão 2. x e superior dá suporte a associações de entrada e saída para o Serviço do SignalR.
Ação | Tipo |
---|---|
Processar mensagens no Serviço SignalR | Associação de gatilho |
Exibir a URL do ponto de extremidade de serviço e o token de acesso | Associação de entrada |
Enviar mensagens do Serviço do SignalR e gerenciar grupos | Associação de saída |
Instalar a extensão
O pacote NuGet da extensão instalado depende do modo C# usado no aplicativo de funções:
As funções são executadas em um processo de trabalho do C# isolado. Para saber mais, confira o Guia para executar C# do Azure Functions em um processo de trabalho isolado.
Adicione a extensão ao seu projeto instalando este pacote do NuGet.
Instalar pacote
A extensão do Serviço do SignalR faz parte de um pacote de extensão, que é especificado no arquivo de projeto host.json. Quando você cria um projeto para a versão 3. x ou posterior, esse pacote já deve estar instalado. Para saber mais, confira pacotes de extensão.
Adicionar dependência
Para usar as anotações do Serviço do 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 arquivo pom.xml.
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-signalr</artifactId>
<version>1.0.0</version>
</dependency>
conexões
Você pode usar a cadeia de conexão ou a identidade do Microsoft Entra para se conectar ao Serviço do Azure SignalR.
Cadeia de conexão
Para obter instruções sobre como recuperar a cadeia de conexão para o Serviço do Azure SignalR, consulte Cadeias de conexão no Serviço do 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 associação.
Conexões baseadas em identidade
Se você estiver usando a versão 1.7.0 ou superior, em vez de usar uma cadeia de conexão com um segredo, poderá fazer com que o aplicativo use uma identidade do Microsoft Entra.
Em primeiro lugar, você deve verificar se sua identidade do Microsoft Entra tem a função Proprietário do Serviço SignalR.
Em seguida, você definiria as configurações com um prefixo AzureSignalRConnectionString
comum . Você pode personalizar o nome do prefixo com a connectionStringSetting
propriedade da configuração de associação.
Nesse modo, as configurações incluem os seguintes itens:
Propriedade | Modelo de variável de ambiente | Descrição | Obrigatório | Valor de exemplo |
---|---|---|---|---|
URI de serviço | AzureSignalRConnectionString__serviceUri |
O URI do ponto de extremidade de serviço. Quando você configura apenas o "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 o Azure Function implantado pretender 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 do Cliente | AzureSignalRConnectionString__clientId |
Quando credential estiver definido como managedidentity , essa propriedade poderá ser definida para especificar a identidade atribuída pelo usuário a ser usada ao obter um token. A propriedade aceita uma 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 especificada, a identidade atribuída pelo sistema será usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido. |
Não | 00000000-0000-0000-0000-000000000000 |
ID de Recurso | AzureSignalRConnectionString__managedIdentityResourceId |
Quando credential estiver definido como managedidentity , essa propriedade pode ser definida para especificar o identificador de recurso a ser usado na obtenção de um token. A propriedade aceita um identificador de recurso correspondente à ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar uma ID de recurso e uma ID de cliente. Se nenhuma delas for especificada, a identidade atribuída pelo sistema será usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido. |
Não | /subscriptions/00000000-0000-0000-0000-00000000000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice |
Observação
Ao usar local.settings.json
o arquivo no local, na Configuração de Aplicativos do Azure ou no Key Vault 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 pontos de extremidade
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.
Propriedade | Modelo de variável de ambiente | Descrição | Obrigatório | Valor de exemplo |
---|---|---|---|---|
URI de serviço | Azure__SignalR__Endpoints__{endpointName}__serviceUri |
O URI do ponto de extremidade de serviço. Quando você configura apenas o "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 de Extremidade | Azure__SignalR__Endpoints__{endpointName}__type |
Indica se o ponto de extremidade de serviço é primário ou secundário. Se não for especificado, ele assume Primary como padrão. Os valores válidos são Primary e Secondary , e não diferenciam maiúsculas de minú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 o Azure Function implantado pretender 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 do Cliente | Azure__SignalR__Endpoints__{endpointName}__clientId |
Quando credential estiver definido como managedidentity , essa propriedade poderá ser definida para especificar a identidade atribuída pelo usuário a ser usada ao obter um token. A propriedade aceita uma 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 especificada, a identidade atribuída pelo sistema será usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido. |
Não | 00000000-0000-0000-0000-000000000000 |
ID de Recurso | Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId |
Quando credential estiver definido como managedidentity , essa propriedade pode ser definida para especificar o identificador de recurso a ser usado na obtenção de um token. A propriedade aceita um identificador de recurso correspondente à ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar uma ID de recurso e uma ID de cliente. Se nenhuma delas for especificada, a identidade atribuída pelo sistema será usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido. |
Não | /subscriptions/00000000-0000-0000-0000-0000000000000000000/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óximas etapas
Para obter detalhes sobre como configurar e usar o Serviço do SignalR e o Azure Functions juntos, veja Desenvolvimento e configuração do Azure Functions com o Serviço do Azure SignalR.