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 SQL do Azure e SQL Server.

Ação Tipo
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

Para poder usar essa extensão de associação em seu aplicativo, verifique se o arquivo host.json na raiz do projeto contém esta extensionBundle referência:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

Neste exemplo, o version valor instrui o host do [4.0.0, 5.0.0) Functions a usar uma versão de pacote pelo menos 4.0.0 menor que 5.0.0, que inclui todas as versões potenciais do 4.x. Essa notação mantém efetivamente seu aplicativo na versão secundária mais recente disponível do pacote de extensão v4.x.

Quando possível, você deve usar a versão principal do pacote de extensão mais recente e permitir que o runtime mantenha automaticamente a versão secundária mais recente. Você pode exibir o conteúdo do pacote mais recente na página de lançamento dos pacotes de extensão. Para obter mais informações, consulte os pacotes de extensão do Azure Functions.

Se o aplicativo precisar usar a funcionalidade de visualização, você deverá referenciar a versão mais recente do pacote de visualização. Para obter mais informações, consulte Trabalhar com pacotes de extensão de visualização.

Você pode exibir a funcionalidade de visualização na página de versão das Extensões SQL do Azure Functions.

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.

Atualizar pacotes

Adicione o pacote tipos DE SQL Java do Azure Functions ao seu projeto de funções com uma atualização para o pom.xml arquivo em seu projeto, como neste exemplo:

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-sql</artifactId>
    <version>2.1.0</version>
</dependency>

Conexões

A connectionStringSetting propriedade é definida como uma chave nas configurações da aplicação que retorna um valor usado pelo runtime Functions para se conectar ao banco de dados SQL do Azure ou SQL Server usado pela extensão. O valor da configuração da propriedade de conexão depende do tipo de conexão:

  • Conexão de identidade gerenciada: A connectionStringSetting propriedade retorna uma cadeia de conexão que é usada Authentication=Active Directory Managed Identity para autenticar sem segredos. Você pode usar uma identidade gerenciada atribuída pelo sistema ou pelo usuário. Para mais informações, veja Conectar um aplicativo de função ao SQL do Azure com identidade gerenciada e Definir conexões de identidade.
  • Referência Key Vault: A connectionStringSetting configuração de propriedade retorna uma referência ao Azure Key Vault para o local onde a cadeia de conexão é mantida centralmente. Para mais informações, veja Definir conexões do Key Vault.
  • Referência de App Configuration: A connectionStringSetting configuração de propriedade retorna uma referência ao Configuração de Aplicativos do Azure que retorna uma cadeia de conexão ou uma referência ao Key Vault. Para mais informações, veja Configuração de Aplicativos do Azure no artigo de conexões.
  • Connection string: A connectionStringSetting configuração de propriedade retorna a cadeia de conexão SQL real. Como a cadeia de conexão pode conter credenciais, você deve usar uma conexão de identidade gerenciada ou pelo menos armazenar a cadeia de conexão no Key Vault. Para mais informações, veja Definir conexões.

Para saber mais sobre conexões de bindings, veja Gerenciar conexões no Azure Functions.

A cadeia de conexão é passada para a Microsoft. Data.SqlClient e suporta todas as palavras-chave definidas na documentação do SqlClient ConnectionString. Palavras-chave notáveis incluem:

  • Authentication: Conecte-se ao SQL do Azure com o Microsoft Entra ID. Defina para Active Directory Managed Identity identidades gerenciadas. Para mais informações, veja Conectar um aplicativo de função ao SQL do Azure com identidade gerenciada.
  • Command Timeout: Espere um tempo especificado em segundos antes de terminar uma consulta (padrão 30 segundos).
  • ConnectRetryCount: Fazer automaticamente tentativas adicionais de reconexão, especialmente aplicáveis ao nível serverless do Banco de Dados SQL do Azure (padrão 1).
  • Pooling: Reutilizar conexões ao banco de dados para 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 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.
  • Considere usar 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