Visão geral das associações de SQL do Azure para o Azure Functions
Este conjunto de artigos explica como trabalhar com as associações de SQL do Azure no Azure Functions. O Azure Functions dá suporte a associações de entrada, associações de saída e um gatilho de função para os produtos Azure SQL e SQL Server.
Ação | Type |
---|---|
Disparar uma função quando uma alteração for detectada em uma tabela SQL | Gatilho do SQL |
Ler dados de um banco de dados | Associação de entrada |
Salvar dados em um banco de dados | 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.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql
Para usar uma versão prévia do pacote Microsoft.Azure.Functions.Worker.Extensions.Sql, adicione o sinalizador --prerelease
ao comando. Você pode exibir a funcionalidade de visualização na página de versão das Extensões SQL do Azure Functions.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql --prerelease
Observação
Alterações significativas entre versões prévias das associações do SQL do Azure para a Azure Functions exigem que todas as funções direcionadas ao mesmo banco de dados usem a mesma versão do pacote de extensão SQL.
Instalar pacote
A extensão de associações de SQL faz parte do pacote de extensão da v4, que é especificado no arquivo de projeto host.json.
O pacote de extensão é especificado pelo seguinte código em seu arquivo host.json
:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
runtime do Functions
Instalar pacote
A extensão de associações de SQL faz parte do pacote de extensão da v4, que é especificado no arquivo de projeto host.json.
O pacote de extensão é especificado pelo seguinte código em seu arquivo host.json
:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Instalar pacote
A extensão de associações de SQL faz parte do pacote de extensão da v4, que é especificado no arquivo de projeto host.json.
O pacote de extensão é especificado pelo seguinte código em seu arquivo host.json
:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Atualizar pacotes
Adicione a biblioteca Java para associações SQL ao seu projeto de funções com uma atualização para o arquivo pom.xml
em seu projeto do Java Azure Functions, conforme visto no seguinte trecho de código:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0</version>
</dependency>
Você pode usar o pacote de extensão de visualização com uma atualização para o arquivo pom.xml
em seu projeto do Azure Functions do Java, conforme visto no snippet a seguir:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0-preview</version>
</dependency>
Cadeia de Conexão SQL
Importante
É altamente recomendável que as identidades gerenciadas sejam usadas para acessar um Banco de Dados SQL do Azure com o Azure Functions. As identidades gerenciadas tornam seu aplicativo mais seguro, eliminando segredos das implantações de aplicativos, como credenciais nas cadeias de conexão, nomes de servidor e portas que estão sendo usadas. Você pode aprender a usar identidades gerenciadas neste tutorial, Conectar um aplicativo de funções ao SQL do Azure com identidade gerenciada e associações SQL.
As associações do SQL do Azure para o Azure Functions têm uma propriedade obrigatória para a cadeia de conexão em todas as associações e em todos os gatilhos. Elas transmitem a cadeia de conexão para a biblioteca Microsoft.Data.SqlClient e dão suporte à cadeia de conexão, conforme definido na Documentação de ConnectionString do SqlClient. Palavras-chave notáveis incluem:
- A
Authentication
permite que uma função se conecte ao SQL do Azure com o Microsoft Entra ID, incluindo a Identidade Gerenciada do Active Directory Command Timeout
permite que uma função aguarde a quantidade especificada de tempo em segundos antes de encerrar uma consulta (padrão de 30 segundos)ConnectRetryCount
permite que uma função faça tentativas de reconexão adicionais automaticamente, especialmente aplicáveis à camada sem servidor do Banco de Dados SQL do Azure (padrão 1)Pooling
permite que uma função reutilize as conexões com o banco de dados, o que pode melhorar o desempenho (padrãotrue
). As configurações adicionais para o pool de conexões incluemConnection Lifetime
,Max Pool Size
eMin Pool Size
. Saiba mais sobre o pool de conexões na documentação do ADO.NET
Considerações
- A associação do SQL do Azure dá suporte à versão 4.x e posterior do runtime do Functions.
- O código-fonte das associações do SQL do Azure pode ser encontrado neste repositório GitHub.
- Essa associação requer conectividade com um banco de dados do SQL do Azure ou do SQL Server.
- As associações de saída em tabelas com colunas de tipos de dados
NTEXT
,TEXT
ouIMAGE
não têm suporte e os upserts de dados falharão. Esses tipos serão removidos em uma versão futura do SQL Server e não serão compatíveis com a funçãoOPENJSON
usada por essa associação do Azure Functions. - Use identidades gerenciadas em vez de nomes de usuário e senhas.
- Concider usando um valor de chave do Azure para armazenar as configurações do aplicativo.
Amostras
Além dos exemplos para C#, Java, JavaScript, PowerShell e Python disponíveis no Repositório GitHub de associações de SQL do Azure, outros estão disponíveis nos Exemplos do Azure:
- Exemplo da API ToDo do C# com as associações SQL do Azure
- Usar associações de SQL no Azure Stream Analytics
- Enviar dados do SQL do Azure com Python