Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat fungsi berjalan, pengikatan input Azure SQL mengambil data dari database dan meneruskannya ke parameter input fungsi tersebut.
Untuk informasi tentang pengaturan dan detail konfigurasi, lihat gambaran umum.
Penting
Artikel ini menggunakan tab untuk mendukung beberapa versi model pemrograman Node.js. Model v4 umumnya tersedia dan dirancang untuk memiliki pengalaman yang lebih fleksibel dan intuitif untuk pengembang JavaScript dan TypeScript. Untuk detail selengkapnya tentang cara kerja model v4, lihat panduan pengembang Node.js Azure Functions. Untuk mempelajari selengkapnya tentang perbedaan antara v3 dan v4, lihat panduan migrasi.
Contoh
Dukungan Go saat ini tidak tersedia untuk pengikatan ini.
Anda dapat membuat fungsi C# dengan menggunakan salah satu mode C# berikut:
- Model pekerja terisolasi: Fungsi C# terkompilasi yang berjalan dalam proses pekerja yang terisolasi dari runtime. Proses pekerja terisolasi diperlukan untuk mendukung fungsi C# yang berjalan pada versi dukungan jangka panjang (LTS) dan non-LTS untuk .NET dan .NET Framework.
- Model dalam proses: Fungsi C# terkompilasi yang berjalan dalam proses yang sama dengan runtime Azure Functions.
- Skrip C#: Digunakan terutama saat Anda membuat fungsi C# di portal Azure.
Penting
Dukungan akan berakhir untuk model dalam proses pada 10 November 2026. Kami sangat menyarankan Agar Anda memigrasikan aplikasi Anda ke model pekerja yang terisolasi untuk dukungan penuh.
Contoh lainnya untuk pengikatan input Azure SQL tersedia di repositori GitHub.
Bagian ini berisi contoh-contoh berikut:
- Pemicu HTTP, dapatkan baris menurut ID dari string kueri
- Pemicu HTTP, dapatkan beberapa baris dari data rute
- Pemicu HTTP, hapus baris
Contoh mengacu pada ToDoItem kelas dan tabel database yang sesuai:
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
);
Pemicu HTTP, dapatkan baris berdasarkan ID dari string kueri
Contoh berikut memperlihatkan fungsi C# yang mengambil satu catatan. Fungsi ini dipicu oleh permintaan HTTP yang menggunakan string kueri untuk menentukan ID. ID tersebut digunakan untuk mengambil ToDoItem catatan dengan kueri yang ditentukan.
Catatan
Parameter string kueri HTTP peka huruf besar/kecil.
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Sql;
using Microsoft.Azure.Functions.Worker.Http;
namespace AzureSQLSamples
{
public static class GetToDoItem
{
[FunctionName("GetToDoItem")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "gettodoitem")]
HttpRequest req,
[SqlInput(commandText: "select [Id], [order], [title], [url], [completed] from dbo.ToDo where Id = @Id",
commandType: System.Data.CommandType.Text,
parameters: "@Id={Query.id}",
connectionStringSetting: "SqlConnectionString")]
IEnumerable<ToDoItem> toDoItem)
{
return new OkObjectResult(toDoItem.FirstOrDefault());
}
}
}
Pemicu HTTP, dapatkan beberapa baris dari parameter rute
Contoh berikut memperlihatkan fungsi C# yang mengambil dokumen yang dikembalikan oleh kueri. Fungsi ini dipicu oleh permintaan HTTP yang menggunakan data rute untuk menentukan nilai parameter kueri. Parameter tersebut digunakan untuk memfilter ToDoItem catatan dalam kueri yang ditentukan.
using System.Collections.Generic;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Sql;
using Microsoft.Azure.Functions.Worker.Http;
namespace AzureSQLSamples
{
public static class GetToDoItems
{
[FunctionName("GetToDoItems")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "gettodoitems/{priority}")]
HttpRequest req,
[SqlInput(commandText: "select [Id], [order], [title], [url], [completed] from dbo.ToDo where [Priority] > @Priority",
commandType: System.Data.CommandType.Text,
parameters: "@Priority={priority}",
connectionStringSetting: "SqlConnectionString")]
IEnumerable<ToDoItem> toDoItems)
{
return new OkObjectResult(toDoItems);
}
}
}
Pemicu HTTP, hapus baris
Contoh berikut menunjukkan fungsi C# yang menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.
Prosedur tersimpan dbo.DeleteToDo harus dibuat di database SQL. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman tergantung pada nilai parameter.
CREATE PROCEDURE [dbo].[DeleteToDo]
@Id NVARCHAR(100)
AS
DECLARE @UID UNIQUEIDENTIFIER = TRY_CAST(@ID AS UNIQUEIDENTIFIER)
IF @UId IS NOT NULL AND @Id != ''
BEGIN
DELETE FROM dbo.ToDo WHERE Id = @UID
END
ELSE
BEGIN
DELETE FROM dbo.ToDo WHERE @ID = ''
END
SELECT [Id], [order], [title], [url], [completed] FROM dbo.ToDo
GO
namespace AzureSQL.ToDo
{
public static class DeleteToDo
{
// delete all items or a specific item from querystring
// returns remaining items
// uses input binding with a stored procedure DeleteToDo to delete items and return remaining items
[FunctionName("DeleteToDo")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "delete", Route = "DeleteFunction")] HttpRequest req,
ILogger log,
[SqlInput(commandText: "DeleteToDo", commandType: System.Data.CommandType.StoredProcedure,
parameters: "@Id={Query.id}", connectionStringSetting: "SqlConnectionString")]
IEnumerable<ToDoItem> toDoItems)
{
return new OkObjectResult(toDoItems);
}
}
}
Contoh lainnya untuk pengikatan input Azure SQL tersedia di repositori GitHub.
Bagian ini berisi contoh-contoh berikut:
- Pemicu HTTP, dapatkan beberapa baris
- Pemicu HTTP, dapatkan baris menurut ID dari string kueri
- Pemicu HTTP, hapus baris
Contoh merujuk ke ToDoItem kelas (dalam file ToDoItem.javaterpisah ) dan tabel database yang sesuai:
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
);
Pemicu HTTP, dapatkan beberapa baris
Contoh berikut menunjukkan pengikatan input SQL dalam fungsi Java yang dipicu oleh permintaan HTTP . Ini membaca dari kueri dan mengembalikan hasil dalam respons HTTP.
package com.function;
import com.microsoft.azure.functions.HttpMethod;
import com.microsoft.azure.functions.HttpRequestMessage;
import com.microsoft.azure.functions.HttpResponseMessage;
import com.microsoft.azure.functions.HttpStatus;
import com.microsoft.azure.functions.annotation.AuthorizationLevel;
import com.microsoft.azure.functions.annotation.FunctionName;
import com.microsoft.azure.functions.annotation.HttpTrigger;
import com.microsoft.azure.functions.sql.annotation.SQLInput;
import java.util.Optional;
public class GetToDoItems {
@FunctionName("GetToDoItems")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@SQLInput(
name = "toDoItems",
commandText = "SELECT * FROM dbo.ToDo",
commandType = "Text",
connectionStringSetting = "SqlConnectionString")
ToDoItem[] toDoItems) {
return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(toDoItems).build();
}
}
Pemicu HTTP, dapatkan baris berdasarkan ID dari string kueri
Contoh berikut menunjukkan pengikatan input SQL dalam fungsi Java yang dipicu oleh permintaan HTTP . Ini membaca dari kueri, yang difilter oleh parameter dari string kueri, dan mengembalikan baris dalam respons HTTP.
public class GetToDoItem {
@FunctionName("GetToDoItem")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@SQLInput(
name = "toDoItems",
commandText = "SELECT * FROM dbo.ToDo",
commandType = "Text",
parameters = "@Id={Query.id}",
connectionStringSetting = "SqlConnectionString")
ToDoItem[] toDoItems) {
ToDoItem toDoItem = toDoItems[0];
return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(toDoItem).build();
}
}
Pemicu HTTP, hapus baris
Contoh berikut menunjukkan pengikatan input SQL dalam fungsi Java yang dipicu oleh permintaan HTTP . Ini menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.
Prosedur tersimpan dbo.DeleteToDo harus dibuat di database. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman tergantung pada nilai parameter.
CREATE PROCEDURE [dbo].[DeleteToDo]
@Id NVARCHAR(100)
AS
DECLARE @UID UNIQUEIDENTIFIER = TRY_CAST(@ID AS UNIQUEIDENTIFIER)
IF @UId IS NOT NULL AND @Id != ''
BEGIN
DELETE FROM dbo.ToDo WHERE Id = @UID
END
ELSE
BEGIN
DELETE FROM dbo.ToDo WHERE @ID = ''
END
SELECT [Id], [order], [title], [url], [completed] FROM dbo.ToDo
GO
public class DeleteToDo {
@FunctionName("DeleteToDo")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@SQLInput(
name = "toDoItems",
commandText = "dbo.DeleteToDo",
commandType = "StoredProcedure",
parameters = "@Id={Query.id}",
connectionStringSetting = "SqlConnectionString")
ToDoItem[] toDoItems) {
return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(toDoItems).build();
}
}
Contoh lainnya untuk pengikatan input Azure SQL tersedia di repositori GitHub.
Bagian ini berisi contoh-contoh berikut:
- Pemicu HTTP, dapatkan beberapa baris
- Pemicu HTTP, dapatkan baris menurut ID dari string kueri
- Pemicu HTTP, hapus baris
Contoh merujuk ke tabel database:
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
);
Pemicu HTTP, dapatkan beberapa baris
Contoh berikut menunjukkan pengikatan input SQL yang dipicu oleh permintaan HTTP . Ini membaca dari kueri dan mengembalikan hasil dalam respons HTTP.
Pemicu HTTP, dapatkan baris berdasarkan ID dari string kueri
Contoh berikut menunjukkan pengikatan input SQL yang dipicu oleh permintaan HTTP . Ini membaca dari kueri, yang difilter oleh parameter dari string kueri, dan mengembalikan baris dalam respons HTTP.
Pemicu HTTP, hapus baris
Contoh berikut menunjukkan pengikatan input SQL yang dipicu oleh permintaan HTTP . Ini menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.
Prosedur tersimpan dbo.DeleteToDo harus dibuat di database. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman tergantung pada nilai parameter.
CREATE PROCEDURE [dbo].[DeleteToDo]
@Id NVARCHAR(100)
AS
DECLARE @UID UNIQUEIDENTIFIER = TRY_CAST(@ID AS UNIQUEIDENTIFIER)
IF @UId IS NOT NULL AND @Id != ''
BEGIN
DELETE FROM dbo.ToDo WHERE Id = @UID
END
ELSE
BEGIN
DELETE FROM dbo.ToDo WHERE @ID = ''
END
SELECT [Id], [order], [title], [url], [completed] FROM dbo.ToDo
GO
Contoh lainnya untuk pengikatan input Azure SQL tersedia di repositori GitHub.
Bagian ini berisi contoh-contoh berikut:
- Pemicu HTTP, dapatkan beberapa baris
- Pemicu HTTP, dapatkan baris menurut ID dari string kueri
- Pemicu HTTP, hapus baris
Contoh merujuk ke tabel database:
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
);
Pemicu HTTP, dapatkan beberapa baris
Contoh berikut menunjukkan pengikatan input SQL dalam file function.json dan fungsi PowerShell yang dipicu oleh permintaan HTTP . Ini membaca dari kueri dan mengembalikan hasil dalam respons HTTP.
Berikut ini adalah mengikat data dalam file function.json:
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"name": "todoItems",
"type": "sql",
"direction": "in",
"commandText": "select [Id], [order], [title], [url], [completed] from dbo.ToDo",
"commandType": "Text",
"connectionStringSetting": "SqlConnectionString"
}
Bagian konfigurasi menjelaskan properti ini.
Berikut ini adalah contoh kode PowerShell untuk fungsi dalam run.ps1 file:
using namespace System.Net
param($Request, $todoItems)
Write-Host "PowerShell function with SQL Input Binding processed a request."
Push-OutputBinding -Name res -Value ([HttpResponseContext]@{
StatusCode = [System.Net.HttpStatusCode]::OK
Body = $todoItems
})
Pemicu HTTP, dapatkan baris berdasarkan ID dari string kueri
Contoh berikut menunjukkan pengikatan input SQL dalam fungsi PowerShell yang dipicu oleh permintaan HTTP . Ini membaca dari kueri, yang difilter oleh parameter dari string kueri, dan mengembalikan baris dalam respons HTTP.
Berikut ini adalah mengikat data dalam file function.json:
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"name": "todoItem",
"type": "sql",
"direction": "in",
"commandText": "select [Id], [order], [title], [url], [completed] from dbo.ToDo where Id = @Id",
"commandType": "Text",
"parameters": "@Id = {Query.id}",
"connectionStringSetting": "SqlConnectionString"
}
Bagian konfigurasi menjelaskan properti ini.
Berikut ini adalah contoh kode PowerShell untuk fungsi dalam run.ps1 file:
using namespace System.Net
param($Request, $todoItem)
Write-Host "PowerShell function with SQL Input Binding processed a request."
Push-OutputBinding -Name res -Value ([HttpResponseContext]@{
StatusCode = [System.Net.HttpStatusCode]::OK
Body = $todoItem
})
Pemicu HTTP, hapus baris
Contoh berikut menunjukkan pengikatan input SQL dalam file function.json dan fungsi PowerShell yang dipicu oleh permintaan HTTP . Ini menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.
Prosedur tersimpan dbo.DeleteToDo harus dibuat di database. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman tergantung pada nilai parameter.
CREATE PROCEDURE [dbo].[DeleteToDo]
@Id NVARCHAR(100)
AS
DECLARE @UID UNIQUEIDENTIFIER = TRY_CAST(@ID AS UNIQUEIDENTIFIER)
IF @UId IS NOT NULL AND @Id != ''
BEGIN
DELETE FROM dbo.ToDo WHERE Id = @UID
END
ELSE
BEGIN
DELETE FROM dbo.ToDo WHERE @ID = ''
END
SELECT [Id], [order], [title], [url], [completed] FROM dbo.ToDo
GO
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"name": "todoItems",
"type": "sql",
"direction": "in",
"commandText": "DeleteToDo",
"commandType": "StoredProcedure",
"parameters": "@Id = {Query.id}",
"connectionStringSetting": "SqlConnectionString"
}
Bagian konfigurasi menjelaskan properti ini.
Berikut ini adalah contoh kode PowerShell untuk fungsi dalam run.ps1 file:
using namespace System.Net
param($Request, $todoItems)
Write-Host "PowerShell function with SQL Input Binding processed a request."
Push-OutputBinding -Name res -Value ([HttpResponseContext]@{
StatusCode = [System.Net.HttpStatusCode]::OK
Body = $todoItems
})
Contoh lainnya untuk pengikatan input Azure SQL tersedia di repositori GitHub.
Bagian ini berisi contoh-contoh berikut:
- Pemicu HTTP, dapatkan beberapa baris
- Pemicu HTTP, dapatkan baris menurut ID dari string kueri
- Pemicu HTTP, hapus baris
Contoh merujuk ke tabel database:
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
);
Pemicu HTTP, dapatkan beberapa baris
Contoh berikut menunjukkan pengikatan input SQL dalam file function.json dan fungsi Python yang dipicu oleh permintaan HTTP . Ini membaca dari kueri dan mengembalikan hasil dalam respons HTTP.
Kode python berikut adalah contoh file function_app.py:
import json
import logging
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="GetToDo")
@app.route(route="gettodo")
@app.sql_input(arg_name="todo",
command_text="select [Id], [order], [title], [url], [completed] from dbo.ToDo",
command_type="Text",
connection_string_setting="SqlConnectionString")
def get_todo(req: func.HttpRequest, todo: func.SqlRowList) -> func.HttpResponse:
rows = list(map(lambda r: json.loads(r.to_json()), todo))
return func.HttpResponse(
json.dumps(rows),
status_code=200,
mimetype="application/json"
)
Pemicu HTTP, dapatkan baris berdasarkan ID dari string kueri
Contoh berikut menunjukkan pengikatan input SQL dalam fungsi Python yang dipicu oleh permintaan HTTP . Ini membaca dari kueri, yang difilter oleh parameter dari string kueri, dan mengembalikan baris dalam respons HTTP.
Kode python berikut adalah contoh file function_app.py:
import json
import logging
import azure.functions as func
from azure.functions.decorators.core import DataType
app = func.FunctionApp()
@app.function_name(name="GetToDo")
@app.route(route="gettodo/{id}")
@app.sql_input(arg_name="todo",
command_text="select [Id], [order], [title], [url], [completed] from dbo.ToDo where Id = @Id",
command_type="Text",
parameters="@Id={id}",
connection_string_setting="SqlConnectionString")
def get_todo(req: func.HttpRequest, todo: func.SqlRowList) -> func.HttpResponse:
rows = list(map(lambda r: json.loads(r.to_json()), todo))
return func.HttpResponse(
json.dumps(rows),
status_code=200,
mimetype="application/json"
)
Pemicu HTTP, hapus baris
Contoh berikut menunjukkan pengikatan input SQL dalam file function.json dan fungsi Python yang dipicu oleh permintaan HTTP . Ini menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.
Prosedur tersimpan dbo.DeleteToDo harus dibuat di database. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman tergantung pada nilai parameter.
CREATE PROCEDURE [dbo].[DeleteToDo]
@Id NVARCHAR(100)
AS
DECLARE @UID UNIQUEIDENTIFIER = TRY_CAST(@ID AS UNIQUEIDENTIFIER)
IF @UId IS NOT NULL AND @Id != ''
BEGIN
DELETE FROM dbo.ToDo WHERE Id = @UID
END
ELSE
BEGIN
DELETE FROM dbo.ToDo WHERE @ID = ''
END
SELECT [Id], [order], [title], [url], [completed] FROM dbo.ToDo
GO
Kode python berikut adalah contoh file function_app.py:
import json
import logging
import azure.functions as func
from azure.functions.decorators.core import DataType
app = func.FunctionApp()
@app.function_name(name="DeleteToDo")
@app.route(route="deletetodo/{id}")
@app.sql_input(arg_name="todo",
command_text="DeleteToDo",
command_type="StoredProcedure",
parameters="@Id={id}",
connection_string_setting="SqlConnectionString")
def get_todo(req: func.HttpRequest, todo: func.SqlRowList) -> func.HttpResponse:
rows = list(map(lambda r: json.loads(r.to_json()), todo))
return func.HttpResponse(
json.dumps(rows),
status_code=200,
mimetype="application/json"
)
Atribut
Pustaka C# menggunakan atribut SqlAttribute untuk mendeklarasikan pengikatan SQL pada fungsi , yang memiliki properti berikut:
| Properti atribut | Deskripsi |
|---|---|
| CommandText | Harus diisi. Perintah kueri Transact-SQL atau nama prosedur tersimpan yang dijalankan oleh pengikatan. |
| ConnectionStringSetting | Harus diisi. Nama pengaturan aplikasi yang berisi string koneksi untuk database tempat kueri atau prosedur tersimpan dijalankan. Nilai ini bukan string koneksi yang sebenarnya dan harus diselesaikan ke nama variabel lingkungan. |
| CommandType | Harus diisi. Nilai CommandType, yaitu Teks untuk kueri dan StoredProcedure untuk prosedur tersimpan. |
| Parameter | Opsional. Nilai parameter nol atau lebih yang diteruskan ke perintah selama eksekusi sebagai string tunggal. Harus mengikuti format @param1=param1,@param2=param2. Nama parameter dan nilai parameter tidak boleh berisi tanda koma (,) atau sama dengan (=). |
Anotasi
Di pustaka runtime fungsi Java, gunakan @SQLInput anotasi (com.microsoft.azure.functions.sql.annotation.SQLInput) pada parameter yang nilainya akan berasal dari Azure SQL. Anotasi ini mendukung elemen berikut:
| Elemen | Deskripsi |
|---|---|
| commandText | Harus diisi. Perintah kueri Transact-SQL atau nama prosedur tersimpan yang dijalankan oleh pengikatan. |
| connectionStringSetting | Harus diisi. Nama pengaturan aplikasi yang berisi string koneksi untuk database tempat kueri atau prosedur tersimpan dijalankan. Nilai ini bukan string koneksi yang sebenarnya dan harus diselesaikan ke nama variabel lingkungan. |
| commandType | Harus diisi. Nilai CommandType , yaitu "Teks" untuk kueri dan "StoredProcedure" untuk prosedur tersimpan. |
| nama | Harus diisi. Nama unik pengikatan fungsi. |
| parameter | Opsional. Nilai parameter nol atau lebih yang diteruskan ke perintah selama eksekusi sebagai string tunggal. Harus mengikuti format @param1=param1,@param2=param2. Nama parameter dan nilai parameter tidak boleh berisi tanda koma (,) atau sama dengan (=). |
Konfigurasi
Tabel berikut menjelaskan properti yang bisa Anda atur pada objek yang options diteruskan ke input.sql() metode .
| Properti | Deskripsi |
|---|---|
| commandText | Harus diisi. Perintah kueri Transact-SQL atau nama prosedur tersimpan yang dijalankan oleh pengikatan. |
| connectionStringSetting | Harus diisi. Nama pengaturan aplikasi yang berisi string koneksi untuk database tempat kueri atau prosedur tersimpan dijalankan. Nilai ini bukan string koneksi yang sebenarnya dan harus diselesaikan ke nama variabel lingkungan. Kata kunci opsional dalam nilai string koneksi tersedia untuk menyempurnakan konektivitas pengikatan SQL. |
| commandType | Harus diisi. Nilai CommandType, yaitu Teks untuk kueri dan StoredProcedure untuk prosedur tersimpan. |
| parameter | Opsional. Nilai parameter nol atau lebih yang diteruskan ke perintah selama eksekusi sebagai string tunggal. Harus mengikuti format @param1=param1,@param2=param2. Nama parameter dan nilai parameter tidak boleh berisi tanda koma (,) atau sama dengan (=). |
Konfigurasi
Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda atur di file function.json.
| Properti function.json | Deskripsi |
|---|---|
| jenis | Harus diisi. Harus diatur ke sql. |
| arah | Harus diisi. Harus diatur ke in. |
| nama | Harus diisi. Nama variabel yang mewakili kueri dalam kode fungsi. |
| commandText | Harus diisi. Perintah kueri Transact-SQL atau nama prosedur tersimpan yang dijalankan oleh pengikatan. |
| connectionStringSetting | Harus diisi. Nama pengaturan aplikasi yang berisi string koneksi untuk database tempat kueri atau prosedur tersimpan dijalankan. Nilai ini bukan string koneksi yang sebenarnya dan harus diselesaikan ke nama variabel lingkungan. Kata kunci opsional dalam nilai string koneksi tersedia untuk menyempurnakan konektivitas pengikatan SQL. |
| commandType | Harus diisi. Nilai CommandType, yaitu Teks untuk kueri dan StoredProcedure untuk prosedur tersimpan. |
| parameter | Opsional. Nilai parameter nol atau lebih yang diteruskan ke perintah selama eksekusi sebagai string tunggal. Harus mengikuti format @param1=param1,@param2=param2. Nama parameter dan nilai parameter tidak boleh berisi tanda koma (,) atau sama dengan (=). |
Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values.
Penggunaan
Definisi pengikatan mencakup teks perintah SQL, jenis perintah, parameter, dan nama pengaturan string koneksi. Perintah dapat menjadi kueri Transact-SQL (T-SQL) dengan tipe perintah System.Data.CommandType.Text atau nama prosedur yang disimpan dengan tipe perintah System.Data.CommandType.StoredProcedure.
Kueri yang dijalankan oleh pengikatan input diparameterkan di Microsoft.Data.SqlClient untuk mengurangi risiko injeksi SQL dari nilai parameter yang diteruskan ke pengikatan.
Jika pengecualian terjadi ketika pengikatan input SQL dijalankan, maka kode fungsi tidak dijalankan. Perilaku ini dapat mengakibatkan kode kesalahan dikembalikan, seperti pemicu HTTP yang mengembalikan kode kesalahan 500.
Connections
connectionStringSetting Properti diatur ke kunci dalam pengaturan aplikasi yang mengembalikan nilai yang digunakan oleh runtime Functions untuk menyambungkan ke database Azure SQL atau SQL Server yang digunakan oleh ekstensi. Nilai pengaturan properti koneksi bergantung pada jenis koneksi:
-
Koneksi identitas terkelola: Properti mengembalikan
connectionStringSettingstring koneksi yang digunakanAuthentication=Direktori Aktif Managed Identityuntuk mengautentikasi tanpa rahasia. Anda dapat menggunakan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna. Untuk informasi selengkapnya, lihat Menyambungkan aplikasi fungsi ke Azure SQL dengan identitas terkelola dan Menentukan koneksi identitas. -
Referensi Key Vault: Pengaturan
connectionStringSettingproperti mengembalikan referensi Azure Key Vault ke lokasi tempat string koneksi dipelihara secara terpusat. Untuk informasi selengkapnya, lihat Menentukan koneksi Key Vault. -
Referensi Konfigurasi Aplikasi: Pengaturan
connectionStringSettingproperti mengembalikan referensi Azure App Configuration yang mengembalikan string koneksi atau referensi Key Vault. Untuk informasi selengkapnya, lihat Azure App Configuration di artikel koneksi. -
Connection string: Pengaturan
connectionStringSettingproperti mengembalikan string koneksi SQL yang sebenarnya. Karena string koneksi mungkin berisi kredensial, Anda harus menggunakan koneksi identitas terkelola atau setidaknya menyimpan string koneksi di Key Vault. Untuk informasi selengkapnya, lihat Menentukan koneksi.
Untuk mempelajari selengkapnya tentang koneksi pengikatan, lihat Mengelola koneksi di Azure Functions.
string koneksi diteruskan ke Microsoft. Data.SqlClient dan mendukung semua kata kunci yang ditentukan dalam dokumentasi SqlClient ConnectionString. Kata kunci penting meliputi:
-
Authentication: Sambungkan ke Azure SQL dengan Microsoft Entra ID. Atur keDirektori Aktif Managed Identityuntuk identitas terkelola. Untuk informasi selengkapnya, lihat Menyambungkan aplikasi fungsi ke Azure SQL dengan identitas terkelola. -
Command Timeout: Tunggu jumlah waktu tertentu dalam hitungan detik sebelum mengakhiri kueri (default 30 detik). -
ConnectRetryCount: Secara otomatis melakukan upaya penyambungan ulang tambahan, terutama berlaku untuk tingkat nirserver Azure SQL Database (default 1). -
Pooling: Gunakan kembali koneksi ke database untuk meningkatkan performa (defaulttrue). Pengaturan tambahan untuk pengumpulan koneksi meliputiConnection Lifetime,Max Pool Size, danMin Pool Size. Pelajari selengkapnya di dokumentasi ADO.NET.