Compartilhar via


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ão true). As configurações adicionais para o pool de conexões incluem Connection Lifetime, Max Pool Size e Min 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 ou IMAGE 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ção OPENJSON 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:

Próximas etapas