Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure SQL çıkış bağlaması bir veritabanına yazmanızı sağlar.
Kurulum ve yapılandırma ayrıntıları hakkında bilgi için genel bakışa bakın.
Önemli
Bu makalede, Node.js programlama modelinin birden çok sürümünü desteklemek için sekmeler kullanılır. Genel kullanıma sunulan v4 modeli, JavaScript ve TypeScript geliştiricileri için daha esnek ve sezgisel bir deneyime sahip olacak şekilde tasarlanmıştır. v4 modelinin nasıl çalıştığı hakkında daha fazla bilgi için Azure İşlevleri Node.js geliştirici kılavuzuna bakın. v3 ile v4 arasındaki farklar hakkında daha fazla bilgi edinmek için geçiş kılavuzuna bakın.
Azure SQL çıkış bağlamasını kullanmanın tam bir uçtan uca örneği için bkz. Azure İşlevleri kullanarak değişiklikleri Azure SQL Veritabanı için
Örnekler
Go desteği şu anda bu bağlama için mevcut değil.
Aşağıdaki C# modlarından birini kullanarak bir C# işlevi oluşturabilirsiniz:
- Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. .NET ve .NET Framework için uzun vadeli destek (LTS) ve LTS olmayan sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış bir çalışan işlemi gereklidir.
- İşlem içi model: Azure İşlevleri çalışma zamanıyla aynı işlemde çalışan derlenmiş C# işlevi.
- C# betiği: Öncelikle Azure portalında C# işlevleri oluşturduğunuzda kullanılır.
Önemli
İşlem içi model desteği 10 Kasım 2026'da sona erecektir. Tam destek için uygulamalarınızı yalıtılmış çalışan modeline geçirmenizi kesinlikle öneririz.
GitHub deposunda Azure SQL çıkış bağlaması için daha fazla örnek mevcuttur.
Bu bölüm aşağıdaki örnekleri içerir:
Örnekler bir ToDoItem sınıfa ve buna karşılık gelen bir veritabanı tablosuna başvurur:
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
);
Örneklerimizde birden çok çıkış bağlaması döndürmek için özel bir dönüş türü oluştururuz:
public static class OutputType
{
[SqlOutput("dbo.ToDo", connectionStringSetting: "SqlConnectionString")]
public static ToDoItem ToDoItem { get; set; }
public static HttpResponseData HttpResponse { get; set; }
}
HTTP tetikleyicisi, bir kayıt yazma
Aşağıdaki örnekte, BIR HTTP POST isteğinde JSON gövdesi olarak sağlanan verileri kullanarak veritabanına kayıt ekleyen bir C# işlevi gösterilmektedir. Dönüş nesnesi, hem HTTP yanıtını OutputType hem de SQL çıkış bağlamasını işlemek için oluşturduğumuz sınıftır.
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 tetikleyicisi, iki tabloya yazma
Aşağıdaki örnekte, gösterilmektedir.
CREATE TABLE dbo.RequestLog (
Id int identity(1,1) primary key,
RequestTimeStamp datetime2 not null,
ItemCount int not null
)
Ek çıkış bağlaması kullanmak için RequestLog sınıfımızı ekler ve değiştiririz 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; }
}
}
GitHub deposunda Azure SQL çıkış bağlaması için daha fazla örnek mevcuttur.
Bu bölüm aşağıdaki örnekleri içerir:
Örnekler bir sınıfa (ayrı bir ToDoItem dosyada ToDoItem.java) ve buna karşılık gelen bir veritabanı tablosuna başvurur:
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 tetikleyicisi, tabloya kayıt yazma
Aşağıdaki örnekte, HTTP POST isteğinde JSON gövdesi olarak sağlanan verileri kullanarak tabloya kayıt ekleyen bir Java işlevindeki SQL çıkış bağlaması gösterilmektedir. İşlev, JSON gövdesini ayrıştırmak için com.google.code.gson kitaplığına başka bir bağımlılık alır.
<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 tetikleyicisi, iki tabloya yazma
Aşağıdaki örnekte, bir HTTP POST isteğinde JSON gövdesi ve birden çok çıkış bağlaması olarak sağlanan verileri kullanarak iki farklı tablodaki (dbo.ToDo ve dbo.RequestLog) bir veritabanına kayıt ekleyen bir JavaS işlevindeki SQL çıkış bağlaması gösterilmektedir. İşlev, JSON gövdesini ayrıştırmak için com.google.code.gson kitaplığına başka bir bağımlılık alır.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
İkinci tablo olan dbo.RequestLog, aşağıdaki tanıma karşılık gelir:
CREATE TABLE dbo.RequestLog (
Id INT IDENTITY(1,1) PRIMARY KEY,
RequestTimeStamp DATETIME2 NOT NULL DEFAULT(GETDATE()),
ItemCount INT NOT NULL
)
ve içindeki RequestLog.javaJava sınıfı:
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();
}
}
GitHub deposunda Azure SQL çıkış bağlaması için daha fazla örnek mevcuttur.
Bu bölüm aşağıdaki örnekleri içerir:
Örnekler bir veritabanı tablosuna başvurur:
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 tetikleyicisi, tabloya kayıt yazma
Aşağıdaki örnekte, BIR HTTP POST isteğinde JSON gövdesi olarak sağlanan verileri kullanarak bir tabloya kayıt ekleyen bir SQL çıkış bağlaması gösterilmektedir.
HTTP tetikleyicisi, iki tabloya yazma
Aşağıdaki örnekte, BIR HTTP POST isteğinde JSON gövdesi ve birden çok çıkış bağlaması olarak sağlanan verileri kullanarak iki farklı tablodaki (dbo.ToDo ve dbo.RequestLog) bir veritabanına kayıt ekleyen bir SQL çıkış bağlaması gösterilmektedir.
İkinci tablo olan dbo.RequestLog, aşağıdaki tanıma karşılık gelir:
CREATE TABLE dbo.RequestLog (
Id int identity(1,1) primary key,
RequestTimeStamp datetime2 not null,
ItemCount int not null
)
GitHub deposunda Azure SQL çıkış bağlaması için daha fazla örnek mevcuttur.
Bu bölüm aşağıdaki örnekleri içerir:
Örnekler bir veritabanı tablosuna başvurur:
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 tetikleyicisi, tabloya kayıt yazma
Aşağıdaki örnekte, bir function.json dosyasındaki SQL çıkış bağlaması ve HTTP POST isteğinde JSON gövdesi olarak sağlanan verileri kullanarak bir tabloya kayıt ekleyen bir PowerShell işlevi gösterilmektedir.
Function.json dosyasındaki verileri bağlama aşağıdadır:
{
"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"
}
Yapılandırma bölümünde bu özellikler açıklanır.
Aşağıda, dosyadaki işlev için örnek PowerShell kodu verilmiştir 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 tetikleyicisi, iki tabloya yazma
Aşağıdaki örnekte, bir function.json dosyasındaki SQL çıkış bağlaması ve HTTP POST isteğinde JSON gövdesi ve birden çok çıkış bağlaması olarak sağlanan verileri kullanarak iki farklı tablodaki (dbo.ToDo ve dbo.RequestLog) bir veritabanına kayıt ekleyen bir PowerShell işlevi gösterilmektedir.
İkinci tablo olan dbo.RequestLog, aşağıdaki tanıma karşılık gelir:
CREATE TABLE dbo.RequestLog (
Id int identity(1,1) primary key,
RequestTimeStamp datetime2 not null,
ItemCount int not null
)
Function.json dosyasındaki verileri bağlama aşağıdadır:
{
"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"
}
Yapılandırma bölümünde bu özellikler açıklanır.
Aşağıda, dosyadaki işlev için örnek PowerShell kodu verilmiştir 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
})
GitHub deposunda Azure SQL çıkış bağlaması için daha fazla örnek mevcuttur.
Bu bölüm aşağıdaki örnekleri içerir:
Örnekler bir veritabanı tablosuna başvurur:
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 tetikleyicisi, tabloya kayıt yazma
Aşağıdaki örnekte, bir function.json dosyasındaki SQL çıkış bağlaması ve HTTP POST isteğinde JSON gövdesi olarak sağlanan verileri kullanarak tabloya kayıt ekleyen bir Python işlevi gösterilmektedir.
aşağıda function_app.py dosyası için örnek python kodu verilmiştir:
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 tetikleyicisi, iki tabloya yazma
Aşağıdaki örnekte, bir function.json dosyasındaki SQL çıkış bağlaması ve HTTP POST isteğinde JSON gövdesi ve birden çok çıkış bağlaması olarak sağlanan verileri kullanarak iki farklı tablodaki (dbo.ToDo ve dbo.RequestLog) bir veritabanına kayıt ekleyen bir Python işlevi gösterilmektedir.
İkinci tablo olan dbo.RequestLog, aşağıdaki tanıma karşılık gelir:
CREATE TABLE dbo.RequestLog (
Id int identity(1,1) primary key,
RequestTimeStamp datetime2 not null,
ItemCount int not null
)
aşağıda function_app.py dosyası için örnek python kodu verilmiştir:
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
)
Özellikler
C# kitaplığı, aşağıdaki özelliklere sahip olan işlevdeki SQL bağlamalarını bildirmek için SqlAttribute özniteliğini kullanır:
| Öznitelik özelliği | Açıklama |
|---|---|
| CommandText | Gerekli. Bağlama tarafından yazılmakta olan tablonun adı. |
| ConnectionStringSetting | Gerekli. Verilerin yazıldığı veritabanının bağlantı dizesi içeren bir uygulama ayarının adı. Bu değer gerçek bağlantı dizesi değildir ve bunun yerine bir ortam değişkenine çözümlenmesi gerekir. |
Ek Açıklamalar
Java işlevleri çalışma zamanı kitaplığında, değeri Azure SQL'den gelen parametrelerde ek açıklamayı (@SQLOutput) kullanıncom.microsoft.azure.functions.sql.annotation.SQLOutput. Bu ek açıklama aşağıdaki öğeleri destekler:
| Öğe | Açıklama |
|---|---|
| commandText | Gerekli. Bağlama tarafından yazılmakta olan tablonun adı. |
| connectionStringSetting | Gerekli. Verilerin yazıldığı veritabanının bağlantı dizesi içeren bir uygulama ayarının adı. Bu değer gerçek bağlantı dizesi değildir ve bunun yerine bir ortam değişkenine çözümlenmesi gerekir. |
| ad | Gerekli. İşlev bağlamasının benzersiz adı. |
Yapılandırma
Aşağıdaki tabloda, yöntemine geçirilen options nesnede output.sql() ayarlayabileceğiniz özellikler açıklanmaktadır.
| Özellik | Açıklama |
|---|---|
| commandText | Gerekli. Bağlama tarafından yazılmakta olan tablonun adı. |
| connectionStringSetting | Gerekli. Verilerin yazıldığı veritabanının bağlantı dizesi içeren bir uygulama ayarının adı. Bu değer gerçek bağlantı dizesi değildir ve bunun yerine bir ortam değişkenine çözümlenmesi gerekir. sql bağlamaları bağlantısını daraltmak için bağlantı dizesi değerindeki isteğe bağlı anahtar sözcükler kullanılabilir. |
Yapılandırma
Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.
| function.json özelliği | Açıklama |
|---|---|
| türü | Gerekli. olarak ayarlanmalıdır sql. |
| yön | Gerekli. olarak ayarlanmalıdır out. |
| ad | Gerekli. İşlev kodundaki varlığı temsil eden değişkenin adı. |
| commandText | Gerekli. Bağlama tarafından yazılmakta olan tablonun adı. |
| connectionStringSetting | Gerekli. Verilerin yazıldığı veritabanının bağlantı dizesi içeren bir uygulama ayarının adı. Bu değer gerçek bağlantı dizesi değildir ve bunun yerine bir ortam değişkenine çözümlenmesi gerekir. sql bağlamaları bağlantısını daraltmak için bağlantı dizesi değerindeki isteğe bağlı anahtar sözcükler kullanılabilir. |
Yerel olarak geliştirme yaparken uygulama ayarlarınızı koleksiyondaki local.settings.json dosyasınaValues ekleyin.
Kullanım
CommandText özelliği, verilerin depolandığı tablonun adıdır.
Çıkış bağlamaları, hedef veritabanında SELECT izinleri gerektiren T-SQL MERGE deyimini kullanır.
SQL çıkış bağlaması yürütürken bir özel durum oluşursa işlev kodu yürütmeyi durdurur. Bu davranış, 500 hata kodu döndüren HTTP tetikleyicisi gibi bir hata kodunun döndürülmesiyle sonuçlanabilir.
IAsyncCollector bir .NET işlevinde kullanılıyorsa işlev kodu çağrısı FlushAsync()tarafından atılan özel durumları işleyebilir.
Bağlantılar
Bu özellik, connectionStringSetting uygulama ayarlarında bir anahtara ayarlanır ve bu anahtar, Functions çalışma zamanında uzantının kullandığı Azure SQL veya SQL Server veritabanına bağlanmak için kullanılan bir değeri döndürür. Bağlantı özellik ayarının değeri, bağlantı türüne bağlıdır:
-
Yönetilen kimlik bağlantısı: Özellik,
connectionStringSettingsırlar olmadan kimlik doğrulama için kullanılanAuthentication=Active Directory Managed Identitybir bağlantı dizesi döndürür. Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği kullanabilirsiniz. Daha fazla bilgi için bkz. Yönetilen kimlik ile bir fonksiyon uygulamasını Azure SQL'e bağla ve Identify identity bağlantılarını tanımla. -
Key Vault referansı: Özellik
connectionStringSettingayarı, bağlantı dizesi'in merkezi olarak korunduğu konuma Azure Key Vault referansı döner. Daha fazla bilgi için Define Key Vault bağlantılarını tanımla. -
App Configuration referansı: Özellik
connectionStringSettingayarı, bağlantı dizesi veya Key Vault referansı döndüren bir Azure Uygulama Yapılandırması referansı döndürür. Daha fazla bilgi için connections makalesindeki Azure Uygulama Yapılandırması'a bakınız. -
Connection string: Özellik
connectionStringSettingayarı gerçek SQL bağlantı dizesi'i döndürür. Çünkü bağlantı dizesi kimlik bilgilerini içerebilir, bu yüzden yönetilen bir kimlik bağlantısı kullanmalı veya en azından bağlantı dizesi'i Key Vault'ta saklamalısınız. Daha fazla bilgi için bkz. Bağlantıları tanımlar.
Bağlama bağlantıları hakkında daha fazla bilgi edinmek için Manage connections in Azure İşlevleri bölümüne bakınız.
bağlantı dizesi Microsoft'a iletiliyor. Data.SqlClient ve SqlClient ConnectionString dokümantasyonunda tanımlanan tüm anahtar kelimeleri destekler. Önemli anahtar sözcükler şunlardır:
-
Authentication: Connect to Azure SQL with Microsoft Entra ID. Yönetilen kimlikler için ayarlandıActive Directory Managed Identity. Daha fazla bilgi için bkz. Connect a function app to Azure SQL with managed identity. -
Command Timeout: Bir sorguyu sonlandırmadan önce belirli bir süreyi saniyeler içinde bekleyin (varsayılan 30 saniye). -
ConnectRetryCount: Otomatik olarak ek yeniden bağlantı girişimleri yapın, özellikle Azure SQL Veritabanı serverless tier (default 1) için geçerlidir. -
Pooling: Performansı artırmak için veritabanına bağlantıları yeniden kullanın (varsayılantrue). Bağlantı havuzu için ek ayarlar arasındaConnection Lifetime,Max Pool SizeveMin Pool Sizebulunur. ADO.NET dokümantasyonunda daha fazla bilgi edinebilirsiniz.