Поделиться через


Создание функций Azure с помощью расширения привязок SQL для Visual Studio Code

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics

Для входных и выходных привязок SQL доступна предварительная версия поддержки Функциями Azure. Это упрощает для Функций Azure подключение к базе данных SQL Azure или базе данных SQL Server. Расширение привязок SQL для Visual Studio Code (VS Code) упрощает разработку функций Azure с привязками SQL и автоматически устанавливается с помощью пакета расширений MSSQL для VS Code. В этой статье показано, как с помощью расширения привязок SQL для Visual Studio Code создавать функции Azure с привязками SQL.

Примечание

Сейчас расширение привязок SQL поддерживает только функции Azure C#. Функции Azure JavaScript и Python поддерживают привязки SQL, но расширение привязок SQL пока не поддерживает такие функции.

Использование обозревателя объектов

Чтобы создать функцию Azure из определенного объекта Table или View, щелкните правой кнопкой мыши таблицу или представление с подключенного сервера в обозревателе объектов (OE) SQL Server и выберите Create Azure Function with SQL Binding..

Команда OE для таблицы:Снимок экрана: контекстное меню обозревателя объектов для добавления привязки SQL из таблицы.

Команда OE для представления:Снимок экрана: контекстное меню обозревателя объектов для добавления привязки SQL из представления.

Дополнительные сведения о создании функции Azure с привязками SQL с помощью обозревателя объектов SQL Server см. здесь.

Использование палитры команд

Выполните команду MS SQL: Create Azure Function with SQL Binding из палитры команд, чтобы создать новую функцию с привязкой SQL.

Команда палитры команд VS Code

Дополнительную документацию по созданию функции Azure с привязками SQL с помощью палитры команд см. здесь.

Существующая функция Azure

Откройте функцию Azure C# в редакторе, а затем выполните команду MS SQL: Add SQL Binding из палитры команд, чтобы добавить привязку SQL в существующую функцию.

Команда палитры команд VS Code

Дополнительную документацию см. здесь.

Созданный код для функций Azure с привязками SQL

Код, созданный для функции Azure с входной привязкой 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);
        }
    }
}

Код, созданный для функции Azure с выходной привязкой 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; }
    }
}

Дальнейшие действия