Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Выходная привязка Azure SQL позволяет вносить записи в базу данных.
Сведения об установке и настройке см. в обзорной статье.
Внимание
В этой статье используются вкладки для поддержки нескольких версий модели программирования Node.js. Модель версии 4 общедоступна и предназначена для более гибкого и интуитивно понятного интерфейса для разработчиков JavaScript и TypeScript. Дополнительные сведения о том, как работает модель версии 4, см. в руководстве разработчика по Функции Azure Node.js. Дополнительные сведения о различиях между версиями 3 и 4 см. в руководстве по миграции.
Примеры
Вы можете создать функцию C# с помощью одного из следующих режимов C#:
- Изолированная рабочая модель: скомпилированная функция C#, которая выполняется в рабочем процессе, изолированном от среды выполнения. Изолированный рабочий процесс необходим для поддержки функций C#, работающих в долгосрочной поддержке (LTS) и версиях, отличных от LTS для .NET и .NET Framework.
- Модель в процессе: скомпилированная функция C#, которая выполняется в том же процессе, что и среда выполнения Функций Azure.
- Скрипт C#: используется в основном при создании функций C# в портал Azure.
Внимание
Поддержка будет завершена для модели в процессе 10 ноября 2026 г. Настоятельно рекомендуется перенести приложения в изолированную рабочую модель для полной поддержки.
Дополнительные примеры выходной привязки Azure SQL доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
Примеры относятся к классу ToDoItem и соответствующей таблице базы данных:
namespace AzureSQL.ToDo
{
public class ToDoItem
{
public Guid Id { get; set; }
public int? order { get; set; }
public string title { get; set; }
public string url { get; set; }
public bool? completed { get; set; }
}
}
CREATE TABLE dbo.ToDo (
[Id] UNIQUEIDENTIFIER PRIMARY KEY,
[order] INT NULL,
[title] NVARCHAR(200) NOT NULL,
[url] NVARCHAR(200) NOT NULL,
[completed] BIT NOT NULL
);
Чтобы вернуть несколько выходных привязок в примерах , мы создадим пользовательский тип возвращаемого значения:
public static class OutputType
{
[SqlOutput("dbo.ToDo", connectionStringSetting: "SqlConnectionString")]
public static ToDoItem ToDoItem { get; set; }
public static HttpResponseData HttpResponse { get; set; }
}
Триггер HTTP, одна запись
В следующем примере показана функция C#, которая добавляет запись в базу данных, используя данные, предоставленные в HTTP-запросе POST в виде текста JSON. Возвращаемый объект — это OutputType класс, созданный для обработки http-ответа и выходной привязки SQL.
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Microsoft.Azure.Functions.Worker.Extensions.Sql;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
namespace AzureSQL.ToDo
{
public static class PostToDo
{
// create a new ToDoItem from body object
// uses output binding to insert new item into ToDo table
[FunctionName("PostToDo")]
public static async Task<OutputType> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "PostFunction")] HttpRequestData req,
FunctionContext executionContext)
{
var logger = executionContext.GetLogger("PostToDo");
logger.LogInformation("C# HTTP trigger function processed a request.");
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
ToDoItem toDoItem = JsonConvert.DeserializeObject<ToDoItem>(requestBody);
// generate a new id for the todo item
toDoItem.Id = Guid.NewGuid();
// set Url from env variable ToDoUri
toDoItem.url = Environment.GetEnvironmentVariable("ToDoUri")+"?id="+toDoItem.Id.ToString();
// if completed is not provided, default to false
if (toDoItem.completed == null)
{
toDoItem.completed = false;
}
return new OutputType()
{
ToDoItem = toDoItem,
HttpResponse = req.CreateResponse(System.Net.HttpStatusCode.Created)
}
}
}
public static class OutputType
{
[SqlOutput("dbo.ToDo", connectionStringSetting: "SqlConnectionString")]
public ToDoItem ToDoItem { get; set; }
public HttpResponseData HttpResponse { get; set; }
}
}
Триггер HTTP, запись в две таблицы
В следующем примере показана функция C#, которая добавляет записи в базу данных в двух разных таблицах (dbo.ToDo и dbo.RequestLog), используя данные, предоставленные в HTTP-запросе POST в виде текста JSON и нескольких выходных привязок.
CREATE TABLE dbo.RequestLog (
Id int identity(1,1) primary key,
RequestTimeStamp datetime2 not null,
ItemCount int not null
)
Чтобы использовать дополнительную выходную привязку, мы добавим класс и RequestLog изменим наш OutputType класс:
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Microsoft.Azure.Functions.Worker.Extensions.Sql;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
namespace AzureSQL.ToDo
{
public static class PostToDo
{
// create a new ToDoItem from body object
// uses output binding to insert new item into ToDo table
[FunctionName("PostToDo")]
public static async Task<OutputType> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "PostFunction")] HttpRequestData req,
FunctionContext executionContext)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
ToDoItem toDoItem = JsonConvert.DeserializeObject<ToDoItem>(requestBody);
// generate a new id for the todo item
toDoItem.Id = Guid.NewGuid();
// set Url from env variable ToDoUri
toDoItem.url = Environment.GetEnvironmentVariable("ToDoUri")+"?id="+toDoItem.Id.ToString();
// if completed is not provided, default to false
if (toDoItem.completed == null)
{
toDoItem.completed = false;
}
requestLog = new RequestLog();
requestLog.RequestTimeStamp = DateTime.Now;
requestLog.ItemCount = 1;
return new OutputType()
{
ToDoItem = toDoItem,
RequestLog = requestLog,
HttpResponse = req.CreateResponse(System.Net.HttpStatusCode.Created)
}
}
}
public class RequestLog {
public DateTime RequestTimeStamp { get; set; }
public int ItemCount { get; set; }
}
public static class OutputType
{
[SqlOutput("dbo.ToDo", connectionStringSetting: "SqlConnectionString")]
public ToDoItem ToDoItem { get; set; }
[SqlOutput("dbo.RequestLog", connectionStringSetting: "SqlConnectionString")]
public RequestLog RequestLog { get; set; }
public HttpResponseData HttpResponse { get; set; }
}
}
Дополнительные примеры выходной привязки Azure SQL доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
Примеры относятся к классу ToDoItem (в отдельном файле ToDoItem.java) и соответствующей таблице базы данных:
package com.function;
import java.util.UUID;
public class ToDoItem {
public UUID Id;
public int order;
public String title;
public String url;
public boolean completed;
public ToDoItem() {
}
public ToDoItem(UUID Id, int order, String title, String url, boolean completed) {
this.Id = Id;
this.order = order;
this.title = title;
this.url = url;
this.completed = completed;
}
}
CREATE TABLE dbo.ToDo (
[Id] UNIQUEIDENTIFIER PRIMARY KEY,
[order] INT NULL,
[title] NVARCHAR(200) NOT NULL,
[url] NVARCHAR(200) NOT NULL,
[completed] BIT NOT NULL
);
Триггер HTTP, запись записывается в таблицу
В следующем примере показана выходная привязка SQL в функции Java, которая добавляет запись в таблицу, используя данные, предоставленные в HTTP-запросе POST в виде текста JSON. Функция принимает еще одну зависимость от библиотеки com.google.code.gson для анализа текста JSON.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
package com.function;
import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.sql.annotation.SQLOutput;
import com.google.gson.Gson;
import java.util.Optional;
public class PostToDo {
@FunctionName("PostToDo")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
@SQLOutput(
name = "toDoItem",
commandText = "dbo.ToDo",
connectionStringSetting = "SqlConnectionString")
OutputBinding<ToDoItem> output) {
String json = request.getBody().get();
Gson gson = new Gson();
ToDoItem newToDo = gson.fromJson(json, ToDoItem.class);
newToDo.Id = UUID.randomUUID();
output.setValue(newToDo);
return request.createResponseBuilder(HttpStatus.CREATED).header("Content-Type", "application/json").body(output).build();
}
}
Триггер HTTP, запись в две таблицы
В следующем примере показана выходная привязка SQL в функции JavaS, которая добавляет записи в базу данных в двух разных таблицах (dbo.ToDo и dbo.RequestLog), используя данные, предоставленные в http-запросе POST в виде текста JSON и нескольких выходных привязок. Функция принимает еще одну зависимость от библиотеки com.google.code.gson для анализа текста JSON.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
Вторая таблица dbo.RequestLog соответствует следующему определению:
CREATE TABLE dbo.RequestLog (
Id INT IDENTITY(1,1) PRIMARY KEY,
RequestTimeStamp DATETIME2 NOT NULL DEFAULT(GETDATE()),
ItemCount INT NOT NULL
)
и класс Java в RequestLog.java:
package com.function;
import java.util.Date;
public class RequestLog {
public int Id;
public Date RequestTimeStamp;
public int ItemCount;
public RequestLog() {
}
public RequestLog(int Id, Date RequestTimeStamp, int ItemCount) {
this.Id = Id;
this.RequestTimeStamp = RequestTimeStamp;
this.ItemCount = ItemCount;
}
}
package com.function;
import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.sql.annotation.SQLOutput;
import com.google.gson.Gson;
import java.util.Optional;
public class PostToDoWithLog {
@FunctionName("PostToDoWithLog")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
@SQLOutput(
name = "toDoItem",
commandText = "dbo.ToDo",
connectionStringSetting = "SqlConnectionString")
OutputBinding<ToDoItem> output,
@SQLOutput(
name = "requestLog",
commandText = "dbo.RequestLog",
connectionStringSetting = "SqlConnectionString")
OutputBinding<RequestLog> outputLog,
final ExecutionContext context) {
context.getLogger().info("Java HTTP trigger processed a request.");
String json = request.getBody().get();
Gson gson = new Gson();
ToDoItem newToDo = gson.fromJson(json, ToDoItem.class);
newToDo.Id = UUID.randomUUID();
output.setValue(newToDo);
RequestLog newLog = new RequestLog();
newLog.ItemCount = 1;
outputLog.setValue(newLog);
return request.createResponseBuilder(HttpStatus.CREATED).header("Content-Type", "application/json").body(output).build();
}
}
Дополнительные примеры выходной привязки Azure SQL доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
Примеры относятся к таблице базы данных:
CREATE TABLE dbo.ToDo (
[Id] UNIQUEIDENTIFIER PRIMARY KEY,
[order] INT NULL,
[title] NVARCHAR(200) NOT NULL,
[url] NVARCHAR(200) NOT NULL,
[completed] BIT NOT NULL
);
Триггер HTTP, запись записей в таблицу
В следующем примере показана выходная привязка SQL, которая добавляет записи в таблицу, используя данные, предоставленные в HTTP-запросе POST в виде текста JSON.
import { app, HttpRequest, HttpResponseInit, InvocationContext, output } from '@azure/functions';
const sqlOutput = output.sql({
commandText: 'dbo.ToDo',
connectionStringSetting: 'SqlConnectionString',
});
export async function httpTrigger1(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
context.log('HTTP trigger and SQL output binding function processed a request.');
const body = await request.json();
context.extraOutputs.set(sqlOutput, body);
return { status: 201 };
}
app.http('httpTrigger1', {
methods: ['POST'],
authLevel: 'anonymous',
extraOutputs: [sqlOutput],
handler: httpTrigger1,
});
const { app, output } = require('@azure/functions');
const sqlOutput = output.sql({
commandText: 'dbo.ToDo',
connectionStringSetting: 'SqlConnectionString',
});
app.http('httpTrigger1', {
methods: ['POST'],
authLevel: 'anonymous',
extraOutputs: [sqlOutput],
handler: async (request, context) => {
context.log('HTTP trigger and SQL output binding function processed a request.');
const body = await request.json();
context.extraOutputs.set(sqlOutput, body);
return { status: 201 };
},
});
Триггер HTTP, запись в две таблицы
В следующем примере показана выходная привязка SQL, которая добавляет записи в базу данных в двух разных таблицах (dbo.ToDo и dbo.RequestLog), используя данные, предоставленные в HTTP-запросе POST в виде текста JSON и нескольких выходных привязок.
Вторая таблица dbo.RequestLog соответствует следующему определению:
CREATE TABLE dbo.RequestLog (
Id int identity(1,1) primary key,
RequestTimeStamp datetime2 not null,
ItemCount int not null
)
import { app, HttpRequest, HttpResponseInit, InvocationContext, output } from '@azure/functions';
const sqlTodoOutput = output.sql({
commandText: 'dbo.ToDo',
connectionStringSetting: 'SqlConnectionString',
});
const sqlRequestLogOutput = output.sql({
commandText: 'dbo.RequestLog',
connectionStringSetting: 'SqlConnectionString',
});
export async function httpTrigger1(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
context.log('HTTP trigger and SQL output binding function processed a request.');
const newLog = {
RequestTimeStamp: Date.now(),
ItemCount: 1,
};
context.extraOutputs.set(sqlRequestLogOutput, newLog);
const body = await request.json();
context.extraOutputs.set(sqlTodoOutput, body);
return { status: 201 };
}
app.http('httpTrigger1', {
methods: ['POST'],
authLevel: 'anonymous',
extraOutputs: [sqlTodoOutput, sqlRequestLogOutput],
handler: httpTrigger1,
});
const { app, output } = require('@azure/functions');
const sqlTodoOutput = output.sql({
commandText: 'dbo.ToDo',
connectionStringSetting: 'SqlConnectionString',
});
const sqlRequestLogOutput = output.sql({
commandText: 'dbo.RequestLog',
connectionStringSetting: 'SqlConnectionString',
});
app.http('httpTrigger1', {
methods: ['POST'],
authLevel: 'anonymous',
extraOutputs: [sqlTodoOutput, sqlRequestLogOutput],
handler: async (request, context) => {
context.log('HTTP trigger and SQL output binding function processed a request.');
const newLog = {
RequestTimeStamp: Date.now(),
ItemCount: 1,
};
context.extraOutputs.set(sqlRequestLogOutput, newLog);
const body = await request.json();
context.extraOutputs.set(sqlTodoOutput, body);
return { status: 201 };
},
});
Дополнительные примеры выходной привязки Azure SQL доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
Примеры относятся к таблице базы данных:
CREATE TABLE dbo.ToDo (
[Id] UNIQUEIDENTIFIER PRIMARY KEY,
[order] INT NULL,
[title] NVARCHAR(200) NOT NULL,
[url] NVARCHAR(200) NOT NULL,
[completed] BIT NOT NULL
);
Триггер HTTP, запись записей в таблицу
В следующем примере показана выходная привязка SQL в файле function.json и функция PowerShell, которая добавляет записи в таблицу, используя данные, предоставленные в запросе HTTP POST в виде текста JSON.
Ниже приведены данные привязки в файле function.json:
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"name": "todoItems",
"type": "sql",
"direction": "out",
"commandText": "dbo.ToDo",
"connectionStringSetting": "SqlConnectionString"
}
В разделе Конфигурация описываются эти свойства.
Ниже приведен пример кода PowerShell для функции в run.ps1 файле:
```powershell
using namespace System.Net
param($Request)
Write-Host "PowerShell function with SQL Output Binding processed a request."
# Update req_body with the body of the request
$req_body = $Request.Body
# Assign the value we want to pass to the SQL Output binding.
# The -Name value corresponds to the name property in the function.json for the binding
Push-OutputBinding -Name todoItems -Value $req_body
Push-OutputBinding -Name res -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $req_body
})
Триггер HTTP, запись в две таблицы
В следующем примере показана выходная привязка SQL в файле function.json и функция PowerShell, которая добавляет записи в базу данных в двух разных таблицах (dbo.ToDo и dbo.RequestLog), используя данные, предоставленные в запросе HTTP POST в виде текста JSON и нескольких выходных привязок.
Вторая таблица dbo.RequestLog соответствует следующему определению:
CREATE TABLE dbo.RequestLog (
Id int identity(1,1) primary key,
RequestTimeStamp datetime2 not null,
ItemCount int not null
)
Ниже приведены данные привязки в файле function.json:
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"name": "todoItems",
"type": "sql",
"direction": "out",
"commandText": "dbo.ToDo",
"connectionStringSetting": "SqlConnectionString"
},
{
"name": "requestLog",
"type": "sql",
"direction": "out",
"commandText": "dbo.RequestLog",
"connectionStringSetting": "SqlConnectionString"
}
В разделе Конфигурация описываются эти свойства.
Ниже приведен пример кода PowerShell для функции в run.ps1 файле:
using namespace System.Net
param($Request)
Write-Host "PowerShell function with SQL Output Binding processed a request."
# Update req_body with the body of the request
$req_body = $Request.Body
$new_log = @{
RequestTimeStamp = [DateTime]::Now
ItemCount = 1
}
Push-OutputBinding -Name todoItems -Value $req_body
Push-OutputBinding -Name requestLog -Value $new_log
Push-OutputBinding -Name res -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $req_body
})
Дополнительные примеры выходной привязки Azure SQL доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
Примеры относятся к таблице базы данных:
CREATE TABLE dbo.ToDo (
[Id] UNIQUEIDENTIFIER PRIMARY KEY,
[order] INT NULL,
[title] NVARCHAR(200) NOT NULL,
[url] NVARCHAR(200) NOT NULL,
[completed] BIT NOT NULL
);
Триггер HTTP, запись записей в таблицу
В следующем примере показана выходная привязка SQL в файле function.json и функция Python, которая добавляет записи в таблицу, используя данные, предоставленные в запросе HTTP POST в виде текста JSON.
Ниже приведен пример кода Python для файла function_app.py:
import json
import logging
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="AddToDo")
@app.route(route="addtodo")
@app.sql_output(arg_name="todo",
command_text="[dbo].[ToDo]",
connection_string_setting="SqlConnectionString")
def add_todo(req: func.HttpRequest, todo: func.Out[func.SqlRow]) -> func.HttpResponse:
body = json.loads(req.get_body())
row = func.SqlRow.from_dict(body)
todo.set(row)
return func.HttpResponse(
body=req.get_body(),
status_code=201,
mimetype="application/json"
)
Триггер HTTP, запись в две таблицы
В следующем примере показана выходная привязка SQL в файле function.json и функции Python, которая добавляет записи в базу данных в двух разных таблицах (dbo.ToDo и dbo.RequestLog), используя данные, предоставленные в запросе HTTP POST в виде текста JSON и нескольких выходных привязок.
Вторая таблица dbo.RequestLog соответствует следующему определению:
CREATE TABLE dbo.RequestLog (
Id int identity(1,1) primary key,
RequestTimeStamp datetime2 not null,
ItemCount int not null
)
Ниже приведен пример кода Python для файла function_app.py:
from datetime import datetime
import json
import logging
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="PostToDo")
@app.route(route="posttodo")
@app.sql_output(arg_name="todoItems",
command_text="[dbo].[ToDo]",
connection_string_setting="SqlConnectionString")
@app.sql_output(arg_name="requestLog",
command_text="[dbo].[RequestLog]",
connection_string_setting="SqlConnectionString")
def add_todo(req: func.HttpRequest, todoItems: func.Out[func.SqlRow], requestLog: func.Out[func.SqlRow]) -> func.HttpResponse:
logging.info('Python HTTP trigger and SQL output binding function processed a request.')
try:
req_body = req.get_json()
rows = func.SqlRowList(map(lambda r: func.SqlRow.from_dict(r), req_body))
except ValueError:
pass
requestLog.set(func.SqlRow({
"RequestTimeStamp": datetime.now().isoformat(),
"ItemCount": 1
}))
if req_body:
todoItems.set(rows)
return func.HttpResponse(
"OK",
status_code=201,
mimetype="application/json"
)
else:
return func.HttpResponse(
"Error accessing request body",
status_code=400
)
Атрибуты
Библиотека C# использует атрибут SqlAttribute для объявления привязок SQL в функции, которая имеет следующие свойства:
| Свойство атрибута | Описание |
|---|---|
| CommandText | Обязательный. Имя таблицы, записываемой в привязку. |
| ConnectionStringSetting | Обязательный. Имя параметра приложения, содержащего строку подключения для базы данных, в которую записываются данные. Это значение не является фактической строкой подключения и вместо этого должно разрешаться в переменную среды. |
Заметки
В библиотеке среды выполнения функций Java используйте заметку @SQLOutput (com.microsoft.azure.functions.sql.annotation.SQLOutput) для параметров, значение которых будет поступать из SQL Azure. Эта заметка поддерживает следующие элементы:
| Элемент | Описание |
|---|---|
| commandText | Обязательный. Имя таблицы, записываемой в привязку. |
| connectionStringSetting | Обязательный. Имя параметра приложения, содержащего строку подключения для базы данных, в которую записываются данные. Это значение не является фактической строкой подключения и вместо этого должно разрешаться в переменную среды. |
| имя | Обязательный. Уникальное имя привязки функции. |
Настройка
В следующей таблице описываются свойства, которые можно задать для options объекта, переданного методу output.sql() .
| Свойство | Описание |
|---|---|
| commandText | Обязательный. Имя таблицы, записываемой в привязку. |
| connectionStringSetting | Обязательный. Имя параметра приложения, содержащего строку подключения для базы данных, в которую записываются данные. Это значение не является фактической строкой подключения и вместо этого должно разрешаться в переменную среды. Необязательные ключевые слова в значении строки подключения доступны для уточнения возможности подключения привязок SQL. |
Настройка
В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json.
| Свойство в function.json | Описание |
|---|---|
| тип | Обязательный. Должен иметь значениеsql. |
| направление | Обязательный. Должен иметь значениеout. |
| имя | Обязательный. Имя переменной, представляющей сущность в коде функции. |
| commandText | Обязательный. Имя таблицы, записываемой в привязку. |
| connectionStringSetting | Обязательный. Имя параметра приложения, содержащего строку подключения для базы данных, в которую записываются данные. Это значение не является фактической строкой подключения и вместо этого должно разрешаться в переменную среды. Необязательные ключевые слова в значении строки подключения доступны для уточнения возможности подключения привязок SQL. |
Если разработка ведется на локальном компьютере, добавьте параметры приложения в файл local.settings.json в коллекции Values.
Использование
Свойство CommandText — это имя таблицы, в которой хранятся данные. Имя параметра строки подключения соответствует параметру приложения, который содержит строку подключения к экземплярам Azure SQL или SQL Server.
Внимание
Для оптимальной безопасности следует использовать идентификатор Microsoft Entra с управляемыми удостоверениями для подключений между функциями и База данных SQL Azure. Управляемые удостоверения обеспечивают безопасность приложения, устраняя секреты из развертываний приложений, например учетные данные в строка подключения, именах серверов и используемых портах. Вы можете узнать, как использовать управляемые удостоверения в этом руководстве, подключить приложение-функцию к SQL Azure с управляемыми удостоверениями и привязками SQL.
Выходные привязки используют инструкцию T-SQL MERGE , требующую разрешений SELECT в целевой базе данных.
Если исключение возникает при выполнении выходной привязки SQL, код функции перестает выполняться. Это может привести к возврату кода ошибки, например триггера HTTP, возвращающего код ошибки 500.
IAsyncCollector Если используется в функции .NET, код функции может обрабатывать исключения, вызываемые вызовомFlushAsync().