Criar Azure Functions com a extensão de associações de SQL para Visual Studio Code

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics

O suporte do Azure Functions para associações SQL está disponível em versão prévia para associações de entrada e saída, facilitando a conexão de um banco de dados SQL do Azure ou um banco de dados SQL Server ao Azure Functions. A extensão de associações SQL para Visual Studio Code (VS Code) facilita o processo de desenvolvimento de Azure Functions com associações SQL e é instalada automaticamente com o pacote de extensão extensão mssql para VS Code. Este artigo mostra como a extensão de associações SQL para Visual Studio Code pode ser usada para criar Azure Functions com associações SQL.

Observação

Atualmente, a extensão de associações SQL dá suporte apenas a Azure Functions de C#. O Azure Functions de JavaScript e de Python dá suporte a associações SQL, mas não tem suporte na extensão de associações SQL no momento.

Do Pesquisador de Objetos

Para criar uma Função do Azure de um Table ou View específico no pesquisador de objetos (OE), clique com o botão direito do mouse em uma tabela ou exibição de um servidor conectado no pesquisador de objetos do SQL Server e selecione Create Azure Function with SQL Binding.

Comando de OE da tabela: Captura de tela do menu de contexto do pesquisador de objetos para adicionar uma associação SQL da Tabela.

Comando de OE da exibição: Captura de tela do menu de contexto do pesquisador de objetos para adicionar uma associação SQL da Exibição.

Confira mais documentação para criar uma função do Azure com associações SQL do pesquisador de objetos do SQL Server aqui.

Da Paleta de comandos

Execute o comando MS SQL: Create Azure Function with SQL Binding na paleta de comandos para criar uma função com uma associação SQL.

Comando da paleta de comandos do VS Code `MS SQL: Create Azure Function with SQL Binding (preview).

Confira mais documentação para criar uma função do Azure com associações de SQL da paleta de comandos aqui.

Em uma Função do Azure existente

Abra a Função do Azure em C# em um editor e execute o comando MS SQL: Add SQL Binding na paleta de comandos para adicionar uma associação SQL a uma função existente.

Comando da paleta de comandos do VS Code `MS SQL: Add SQL Binding (preview).

Confira mais documentação aqui.

Código gerado para Azure Functions com associações de SQL

O código gerado para a função do Azure com associação de entrada SQL:

using System;
using System.Collections.Generic;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;

namespace Company.Function
{
    public static class dboEmployees
    {
        // Visit https://aka.ms/sqlbindingsinput to learn how to use this input binding
    [FunctionName("dboEmployees")]
        public static IActionResult Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
            [Sql("SELECT * FROM [dbo].[Employees]",
            CommandType = System.Data.CommandType.Text,
            ConnectionStringSetting = "SqlConnectionString")] IEnumerable<Object> result,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger with SQL Input Binding function processed a request.");

            return new OkObjectResult(result);
        }
    }
}

O código gerado para a função do Azure com associação de saída SQL:

using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;

namespace Company.Function
{
    public static class dboEmployees
    {
        // Visit [https://aka.ms/sqlbindingsoutput] to learn how to use this output binding
        [FunctionName("dboEmployees")]
        public static CreatedResult Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = "addtodoitem")] HttpRequest req,
            [Sql("[dbo].[Test2]", ConnectionStringSetting = "NewSQLConnectionString")] out ToDoItem output,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger with SQL Output Binding function processed a request.");

            output = new ToDoItem
            {
                Id = "1",
                Priority = 1,
                Description = "Hello World"
            };

            return new CreatedResult($"/api/addtodoitem", output);
        }
    }

    public class ToDoItem
    {
        public string Id { get; set; }
        public int Priority { get; set; }
        public string Description { get; set; }
    }
}

Próximas etapas