Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Při spuštění funkce vstupní vazba Azure SQL načte data z databáze a předá ji vstupnímu parametru funkce.
Informace o nastavení a konfiguraci najdete v přehledu.
Důležité
Tento článek používá karty pro podporu více verzí programovacího modelu Node.js. Model v4 je obecně dostupný a je navržený tak, aby měl flexibilnější a intuitivnější prostředí pro vývojáře v JavaScriptu a TypeScriptu. Další podrobnosti o tom, jak model v4 funguje, najdete v příručce pro vývojáře služby Azure Functions Node.js. Další informace o rozdílech mezi v3 a v4 najdete v průvodci migrací.
Příklady
Podpora Go pro toto vázání momentálně není dostupná.
Funkci jazyka C# můžete vytvořit pomocí jednoho z následujících režimů jazyka C#:
- Izolovaný model pracovního procesu: Kompilovaná funkce jazyka C#, která běží v pracovním procesu, který je izolovaný od modulu runtime. Izolovaný pracovní proces se vyžaduje pro podporu funkcí jazyka C# běžících na dlouhodobé podpoře (LTS) a jiných verzích než LTS pro .NET a rozhraní .NET Framework.
- Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime Azure Functions.
- Skript jazyka C#: Používá se především při vytváření funkcí jazyka C# na webu Azure Portal.
Důležité
Podpora modelu v procesu skončí 10. listopadu 2026. Důrazně doporučujeme migrovat aplikace do izolovaného modelu pracovního procesu pro plnou podporu.
Další ukázky vstupní vazby Azure SQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
- Trigger HTTP, získání řádku podle ID z řetězce dotazu
- Trigger HTTP, získání více řádků ze směrovacích dat
- Trigger HTTP, odstranění řádků
Příklady odkazují na ToDoItem třídu a odpovídající tabulku databáze:
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
);
Trigger HTTP, získání řádku podle ID z řetězce dotazu
Následující příklad ukazuje funkci jazyka C#, která načte jeden záznam. Funkce se aktivuje požadavkem HTTP, který k zadání ID používá řetězec dotazu. Toto ID se používá k načtení záznamu ToDoItem se zadaným dotazem.
Poznámka:
Parametr řetězce dotazu HTTP rozlišují malá a velká písmena.
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());
}
}
}
Trigger HTTP, získání více řádků z parametru trasy
Následující příklad ukazuje funkci jazyka C#, která načítá dokumenty vrácené dotazem. Funkce se aktivuje požadavkem HTTP, který používá směrovací data k určení hodnoty parametru dotazu. Tento parametr slouží k filtrování ToDoItem záznamů v zadaném dotazu.
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);
}
}
}
Trigger HTTP, odstranění řádků
Následující příklad ukazuje funkci jazyka C#, která spouští uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.
Uložená procedura dbo.DeleteToDo musí být vytvořena v databázi SQL. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.
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);
}
}
}
Další ukázky vstupní vazby Azure SQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
- Trigger HTTP, získání více řádků
- Trigger HTTP, získání řádku podle ID z řetězce dotazu
- Trigger HTTP, odstranění řádků
Příklady odkazují na ToDoItem třídu (v samostatném souboru ToDoItem.java) a odpovídající tabulku databáze:
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
);
Trigger HTTP, získání více řádků
Následující příklad ukazuje vstupní vazbu SQL ve funkci Java aktivované požadavkem HTTP . Načte z dotazu a vrátí výsledky v odpovědi 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();
}
}
Trigger HTTP, získání řádku podle ID z řetězce dotazu
Následující příklad ukazuje vstupní vazbu SQL ve funkci Java aktivované požadavkem HTTP . Načte z dotazu, který je filtrován parametrem z řetězce dotazu, a vrátí řádek v odpovědi 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();
}
}
Trigger HTTP, odstranění řádků
Následující příklad ukazuje vstupní vazbu SQL ve funkci Java aktivované požadavkem HTTP . Spustí uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.
Uložená procedura dbo.DeleteToDo musí být vytvořena v databázi. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.
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();
}
}
Další ukázky vstupní vazby Azure SQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
- Trigger HTTP, získání více řádků
- Trigger HTTP, získání řádku podle ID z řetězce dotazu
- Trigger HTTP, odstranění řádků
Příklady odkazují na tabulku databáze:
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
);
Trigger HTTP, získání více řádků
Následující příklad ukazuje vstupní vazbu SQL aktivovanou požadavkem HTTP . Načte z dotazu a vrátí výsledky v odpovědi HTTP.
Trigger HTTP, získání řádku podle ID z řetězce dotazu
Následující příklad ukazuje vstupní vazbu SQL aktivovanou požadavkem HTTP . Načte z dotazu, který je filtrován parametrem z řetězce dotazu, a vrátí řádek v odpovědi HTTP.
Trigger HTTP, odstranění řádků
Následující příklad ukazuje vstupní vazbu SQL aktivovanou požadavkem HTTP . Spustí uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.
Uložená procedura dbo.DeleteToDo musí být vytvořena v databázi. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.
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
Další ukázky vstupní vazby Azure SQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
- Trigger HTTP, získání více řádků
- Trigger HTTP, získání řádku podle ID z řetězce dotazu
- Trigger HTTP, odstranění řádků
Příklady odkazují na tabulku databáze:
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
);
Trigger HTTP, získání více řádků
Následující příklad ukazuje vstupní vazbu SQL v souboru function.json a funkci PowerShellu aktivovanou požadavkem HTTP . Načte z dotazu a vrátí výsledky v odpovědi HTTP.
V souboru function.json jsou svázná data:
{
"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"
}
Oddíl konfigurace vysvětluje tyto vlastnosti.
Následuje ukázkový kód PowerShellu pro funkci v run.ps1 souboru:
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
})
Trigger HTTP, získání řádku podle ID z řetězce dotazu
Následující příklad ukazuje vstupní vazbu SQL ve funkci PowerShellu, která se aktivuje požadavkem HTTP . Načte z dotazu, který je filtrován parametrem z řetězce dotazu, a vrátí řádek v odpovědi HTTP.
V souboru function.json jsou svázná data:
{
"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"
}
Oddíl konfigurace vysvětluje tyto vlastnosti.
Následuje ukázkový kód PowerShellu pro funkci v run.ps1 souboru:
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
})
Trigger HTTP, odstranění řádků
Následující příklad ukazuje vstupní vazbu SQL v souboru function.json a funkci PowerShellu aktivovanou požadavkem HTTP . Spustí uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.
Uložená procedura dbo.DeleteToDo musí být vytvořena v databázi. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.
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"
}
Oddíl konfigurace vysvětluje tyto vlastnosti.
Následuje ukázkový kód PowerShellu pro funkci v run.ps1 souboru:
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
})
Další ukázky vstupní vazby Azure SQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
- Trigger HTTP, získání více řádků
- Trigger HTTP, získání řádku podle ID z řetězce dotazu
- Trigger HTTP, odstranění řádků
Příklady odkazují na tabulku databáze:
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
);
Trigger HTTP, získání více řádků
Následující příklad ukazuje vstupní vazbu SQL v souboru function.json a funkci Pythonu aktivovanou požadavkem HTTP . Načte z dotazu a vrátí výsledky v odpovědi HTTP.
Následující kód Pythonu je ukázkový soubor 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"
)
Trigger HTTP, získání řádku podle ID z řetězce dotazu
Následující příklad ukazuje vstupní vazbu SQL ve funkci Pythonu, která se aktivuje požadavkem HTTP . Načte z dotazu, který je filtrován parametrem z řetězce dotazu, a vrátí řádek v odpovědi HTTP.
Následující kód Pythonu je ukázkový soubor 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"
)
Trigger HTTP, odstranění řádků
Následující příklad ukazuje vstupní vazbu SQL v souboru function.json a funkci Pythonu aktivovanou požadavkem HTTP . Spustí uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.
Uložená procedura dbo.DeleteToDo musí být vytvořena v databázi. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.
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
Následující kód Pythonu je ukázkový soubor 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"
)
Atributy
Knihovna jazyka C# pomocí atributu SqlAttribute deklaruje vazby SQL funkce, která má následující vlastnosti:
| Vlastnost atributu | Popis |
|---|---|
| CommandText | Povinný: Příkaz dotazu Transact-SQL nebo název uložené procedury spuštěné vazbou. |
| ConnectionStringSetting | Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec databáze, pro kterou se spouští dotaz nebo uložená procedura. Tato hodnota není skutečným připojovací řetězec a musí se místo toho přeložit na název proměnné prostředí. |
| CommandType | Povinný: Hodnota CommandType , což je Text pro dotaz a StoredProcedure pro uloženou proceduru. |
| Parametry | Nepovinné. Nula nebo více hodnot parametrů předaných příkazu během provádění jako jeden řetězec. Musí dodržovat formát @param1=param1,@param2=param2. Název parametru a hodnota parametru nemohou obsahovat čárku (,) ani znaménko rovná se (=). |
Poznámky
V knihovně modulu runtime funkcí Java použijte @SQLInput anotaci (com.microsoft.azure.functions.sql.annotation.SQLInput) u parametrů, jejichž hodnota pochází z Azure SQL. Tato poznámka podporuje následující prvky:
| Element (Prvek) | Popis |
|---|---|
| commandText | Povinný: Příkaz dotazu Transact-SQL nebo název uložené procedury spuštěné vazbou. |
| connectionStringSetting | Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec databáze, pro kterou se spouští dotaz nebo uložená procedura. Tato hodnota není skutečným připojovací řetězec a musí se místo toho přeložit na název proměnné prostředí. |
| commandType | Povinný: Hodnota CommandType, která je "Text" pro dotaz a "StoredProcedure" pro uloženou proceduru. |
| Jméno | Povinný: Jedinečný název vazby funkce. |
| parametry | Nepovinné. Nula nebo více hodnot parametrů předaných příkazu během provádění jako jeden řetězec. Musí dodržovat formát @param1=param1,@param2=param2. Název parametru a hodnota parametru nemohou obsahovat čárku (,) ani znaménko rovná se (=). |
Konfigurace
Následující tabulka vysvětluje vlastnosti, které můžete nastavit u objektu předaného options metodě input.sql() .
| Vlastnost | Popis |
|---|---|
| commandText | Povinný: Příkaz dotazu Transact-SQL nebo název uložené procedury spuštěné vazbou. |
| connectionStringSetting | Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec databáze, pro kterou se spouští dotaz nebo uložená procedura. Tato hodnota není skutečným připojovací řetězec a musí se místo toho přeložit na název proměnné prostředí. Volitelná klíčová slova v hodnotě připojovací řetězec jsou k dispozici pro upřesnění připojení vazeb SQL. |
| commandType | Povinný: Hodnota CommandType , což je Text pro dotaz a StoredProcedure pro uloženou proceduru. |
| parametry | Nepovinné. Nula nebo více hodnot parametrů předaných příkazu během provádění jako jeden řetězec. Musí dodržovat formát @param1=param1,@param2=param2. Název parametru a hodnota parametru nemohou obsahovat čárku (,) ani znaménko rovná se (=). |
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json.
| vlastnost function.json | Popis |
|---|---|
| typ | Povinný: Musí být nastavena na sqlhodnotu . |
| směr | Povinný: Musí být nastavena na inhodnotu . |
| Jméno | Povinný: Název proměnné, která představuje výsledek dotazu v kódu funkce. |
| commandText | Povinný: Příkaz dotazu Transact-SQL nebo název uložené procedury spuštěné vazbou. |
| connectionStringSetting | Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec databáze, pro kterou se spouští dotaz nebo uložená procedura. Tato hodnota není skutečným připojovací řetězec a musí se místo toho přeložit na název proměnné prostředí. Volitelná klíčová slova v hodnotě připojovací řetězec jsou k dispozici pro upřesnění připojení vazeb SQL. |
| commandType | Povinný: Hodnota CommandType , což je Text pro dotaz a StoredProcedure pro uloženou proceduru. |
| parametry | Nepovinné. Nula nebo více hodnot parametrů předaných příkazu během provádění jako jeden řetězec. Musí dodržovat formát @param1=param1,@param2=param2. Název parametru a hodnota parametru nemohou obsahovat čárku (,) ani znaménko rovná se (=). |
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values .
Využití
Definice vazby zahrnuje text příkazu SQL, typ příkazu, parametry a název nastavení připojovací řetězec. Příkazem může být dotaz Transact-SQL (T-SQL) s typem System.Data.CommandType.Text příkazu nebo názvem uložené procedury s typem System.Data.CommandType.StoredProcedurepříkazu .
Dotazy prováděné vstupní vazbou jsou parametrizovány v Microsoft.Data.SqlClient, aby se snížilo riziko injektáže SQL z hodnot parametrů předaných do vazby.
Pokud při spuštění vstupní vazby SQL dojde k výjimce, kód funkce se nespustí. Toto chování může mít za následek vrácení kódu chyby, například trigger HTTP vracející kód chyby 500.
Connections
Vlastnost connectionStringSetting je nastavena na klíč v nastavení aplikace, který vrací hodnotu používanou runtime Functions k připojení k databázi Azure SQL nebo SQL Server používané rozšířením. Hodnota nastavení vlastnosti spojení závisí na typu spojení:
-
Spravované identity connection: Vlastnost
connectionStringSettingvrací připojovací řetězec, který používáAuthentication=služba Active Directory Managed Identityautentizaci bez tajemství. Můžete použít spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem. Pro více informací viz Připojit funkční aplikaci k Azure SQL s řízenou identitou a Definovat spojení identity. -
Key Vault reference: Nastavení
connectionStringSettingvlastnosti vrací Azure Key Vault reference na místo, kde je připojovací řetězec centrálně udržován. Pro více informací viz Definujte spojení Key Vault. -
App Configuration reference: Nastavení
connectionStringSettingvlastnosti vrací referenci Azure App Configuration, která vrací připojovací řetězec nebo Key Vault reference. Pro více informací viz Azure App Configuration v článku o připojeních. -
Connection string: Nastavení
connectionStringSettingvlastnosti vrací skutečný SQL připojovací řetězec. Protože připojovací řetězec může obsahovat přihlašovací údaje, měli byste použít managed identity connection nebo alespoň uložit připojovací řetězec v Key Vault. Pro více informací viz Definujte souvislosti.
Chcete-li se dozvědět více o vazbách spojení, viz Správa spojení v Azure Functions.
připojovací řetězec je předán Microsoftu. Data.SqlClient a podporuje všechna klíčová slova definovaná v dokumentaci SqlClient ConnectionString. Mezi klíčová slova patří:
-
Authentication: Connect to Azure SQL with Microsoft Entra ID. Nastaveno naslužba Active Directory Managed Identitypro spravované identity. Pro více informací viz Připojit funkční aplikaci k Azure SQL pomocí spravované identity. -
Command Timeout: Čekejte stanovený čas v několika sekundách před ukončením dotazu (výchozí 30 sekund). -
ConnectRetryCount: Automaticky provádět další pokusy o opětovné připojení, zejména pro serverless úroveň Azure SQL Database (výchozí 1). -
Pooling: Opětovné použití spojení s databází pro zlepšení výkonu (výchozítrue). Mezi další nastavení sdružování připojení patříConnection Lifetime,Max Pool SizeaMin Pool Size. Více informací najdete v dokumentaci ADO.NET.