Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Quando uma função é executada, a associação de entrada SQL do Azure recupera dados de um banco de dados e os passa para o parâmetro de entrada da função.
Para obter informações sobre detalhes de instalação e configuração, consulte a visão geral.
Importante
Este artigo usa guias para oferecer suporte a várias versões do modelo de programação Node.js. O modelo v4 está geralmente disponível e foi projetado para ter uma experiência mais flexível e intuitiva para desenvolvedores JavaScript e TypeScript. Para obter mais detalhes sobre como o modelo v4 funciona, consulte o Guia do desenvolvedor do Funções do Azure Node.js. Para saber mais sobre as diferenças entre v3 e v4, consulte o guia de migração.
Exemplos
O suporte Go não está atualmente disponível para esta ligação.
Você pode criar uma função C# usando um dos seguintes modos C#:
- Modelo de trabalho isolado: função C# compilada que é executada em um processo de trabalho isolado do tempo de execução. Um processo de trabalho isolado é necessário para dar suporte a funções C# executadas em versões LTS (long-term support) e não-LTS para .NET e .NET Framework.
- Modelo em processo: função C# compilada que é executada no mesmo processo que o tempo de execução do Funções do Azure.
- Script C#: usado principalmente quando você cria funções C# no portal do Azure.
Importante
O suporte para o modelo em processo terminará em 10 de novembro de 2026. É altamente recomendável que você migre seus aplicativos para o modelo de trabalho isolado para obter suporte total.
Mais exemplos para a associação de entrada SQL do Azure estão disponíveis no repositório GitHub.
Esta seção contém os seguintes exemplos:
- Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
- Gatilho HTTP, obter várias linhas de dados de rota
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma ToDoItem classe e a uma tabela de banco de dados correspondente:
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
);
Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
O exemplo a seguir mostra uma função C# que recupera um único registro. A função é acionada por uma solicitação HTTP que usa uma cadeia de caracteres de consulta para especificar a ID. Esse ID é usado para recuperar um ToDoItem registro com a consulta especificada.
Nota
O parâmetro HTTP query string diferencia maiúsculas de minúsculas.
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());
}
}
}
Gatilho HTTP, obter várias linhas do parâmetro route
O exemplo a seguir mostra uma função C# que recupera documentos retornados pela consulta. A função é acionada por uma solicitação HTTP que usa dados de rota para especificar o valor de um parâmetro de consulta. Esse parâmetro é usado para filtrar os ToDoItem registros na consulta especificada.
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);
}
}
}
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra uma função C# que executa um procedimento armazenado com entrada do parâmetro HTTP request query.
O procedimento dbo.DeleteToDo armazenado deve ser criado no banco de dados SQL. Neste exemplo, o procedimento armazenado exclui um único registro ou todos os registros, dependendo do valor do parâmetro.
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);
}
}
}
Mais exemplos para a associação de entrada SQL do Azure estão disponíveis no repositório GitHub.
Esta seção contém os seguintes exemplos:
- Gatilho HTTP, obter várias linhas
- Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma ToDoItem classe (em um arquivo ToDoItem.javaseparado) e a uma tabela de banco de dados correspondente:
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
);
Gatilho HTTP, obter várias linhas
O exemplo a seguir mostra uma ligação de entrada SQL em uma função Java que é acionada por uma solicitação HTTP . Ele lê a partir de uma consulta e retorna os resultados na resposta 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();
}
}
Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
O exemplo a seguir mostra uma ligação de entrada SQL em uma função Java que é acionada por uma solicitação HTTP . Ele lê de uma consulta, que é filtrada por um parâmetro da cadeia de caracteres de consulta, e retorna a linha na resposta 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();
}
}
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra uma ligação de entrada SQL em uma função Java que é acionada por uma solicitação HTTP . Ele executa um procedimento armazenado com entrada do parâmetro HTTP request query.
O procedimento dbo.DeleteToDo armazenado deve ser criado no banco de dados. Neste exemplo, o procedimento armazenado exclui um único registro ou todos os registros, dependendo do valor do parâmetro.
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();
}
}
Mais exemplos para a associação de entrada SQL do Azure estão disponíveis no repositório GitHub.
Esta seção contém os seguintes exemplos:
- Gatilho HTTP, obter várias linhas
- Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma tabela de banco de dados:
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
);
Gatilho HTTP, obter várias linhas
O exemplo a seguir mostra uma associação de entrada SQL que é acionada por uma solicitação HTTP . Ele lê a partir de uma consulta e retorna os resultados na resposta HTTP.
Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
O exemplo a seguir mostra uma associação de entrada SQL que é acionada por uma solicitação HTTP . Ele lê de uma consulta, que é filtrada por um parâmetro da cadeia de caracteres de consulta, e retorna a linha na resposta HTTP.
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra uma associação de entrada SQL que é acionada por uma solicitação HTTP . Ele executa um procedimento armazenado com entrada do parâmetro HTTP request query.
O procedimento dbo.DeleteToDo armazenado deve ser criado no banco de dados. Neste exemplo, o procedimento armazenado exclui um único registro ou todos os registros, dependendo do valor do parâmetro.
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
Mais exemplos para a associação de entrada SQL do Azure estão disponíveis no repositório GitHub.
Esta seção contém os seguintes exemplos:
- Gatilho HTTP, obter várias linhas
- Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma tabela de banco de dados:
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
);
Gatilho HTTP, obter várias linhas
O exemplo a seguir mostra uma associação de entrada SQL em um arquivo function.json e uma função do PowerShell que é acionada por uma solicitação HTTP . Ele lê a partir de uma consulta e retorna os resultados na resposta HTTP.
O seguinte é a vinculação de dados no arquivo 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"
}
A seção de configuração explica essas propriedades.
A seguir está um exemplo de código do PowerShell para a função no run.ps1 arquivo:
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
})
Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
O exemplo a seguir mostra uma associação de entrada SQL em uma função do PowerShell que é acionada por uma solicitação HTTP . Ele lê de uma consulta, que é filtrada por um parâmetro da cadeia de caracteres de consulta, e retorna a linha na resposta HTTP.
O seguinte é a vinculação de dados no arquivo 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"
}
A seção de configuração explica essas propriedades.
A seguir está um exemplo de código do PowerShell para a função no run.ps1 arquivo:
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
})
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra uma associação de entrada SQL em um arquivo function.json e uma função do PowerShell que é acionada por uma solicitação HTTP . Ele executa um procedimento armazenado com entrada do parâmetro HTTP request query.
O procedimento dbo.DeleteToDo armazenado deve ser criado no banco de dados. Neste exemplo, o procedimento armazenado exclui um único registro ou todos os registros, dependendo do valor do parâmetro.
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"
}
A seção de configuração explica essas propriedades.
A seguir está um exemplo de código do PowerShell para a função no run.ps1 arquivo:
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
})
Mais exemplos para a associação de entrada SQL do Azure estão disponíveis no repositório GitHub.
Esta seção contém os seguintes exemplos:
- Gatilho HTTP, obter várias linhas
- Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma tabela de banco de dados:
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
);
Gatilho HTTP, obter várias linhas
O exemplo a seguir mostra uma ligação de entrada SQL em um arquivo function.json e uma função Python que é acionada por uma solicitação HTTP . Ele lê a partir de uma consulta e retorna os resultados na resposta HTTP.
O seguinte código python é um arquivo de function_app.py de exemplo:
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"
)
Gatilho HTTP, obter linha por ID da cadeia de caracteres de consulta
O exemplo a seguir mostra uma ligação de entrada SQL em uma função Python que é acionada por uma solicitação HTTP . Ele lê de uma consulta, que é filtrada por um parâmetro da cadeia de caracteres de consulta, e retorna a linha na resposta HTTP.
O seguinte código python é um arquivo de function_app.py de exemplo:
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"
)
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra uma ligação de entrada SQL em um arquivo function.json e uma função Python que é acionada por uma solicitação HTTP . Ele executa um procedimento armazenado com entrada do parâmetro HTTP request query.
O procedimento dbo.DeleteToDo armazenado deve ser criado no banco de dados. Neste exemplo, o procedimento armazenado exclui um único registro ou todos os registros, dependendo do valor do parâmetro.
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
O seguinte código python é um arquivo de function_app.py de exemplo:
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"
)
Atributos
A biblioteca C# usa o atributo SqlAttribute para declarar as associações SQL na função, que tem as seguintes propriedades:
| Propriedade Attribute | Descrição |
|---|---|
| CommandText | Obrigatório. O comando de consulta Transact-SQL ou o nome do procedimento armazenado executado pela associação. |
| ConnectionStringSetting | Obrigatório. O nome de uma configuração de aplicativo que contém a cadeia de conexão para o banco de dados no qual a consulta ou o procedimento armazenado está sendo executado. Esse valor não é a cadeia de conexão real e, em vez disso, deve ser resolvido para um nome de variável de ambiente. |
| Tipo de comando | Obrigatório. Um valor CommandType , que é Text para uma consulta e StoredProcedure para um procedimento armazenado. |
| Parâmetros | Opcional. Zero ou mais valores de parâmetro passados para o comando durante a execução como uma única cadeia de caracteres. Deve seguir o formato @param1=param1,@param2=param2. O nome do parâmetro e o valor do parâmetro não podem conter uma vírgula (,) ou um sinal de igual (=). |
Anotações
Na biblioteca de tempo de execução de funções Java, use a @SQLInput anotação (com.microsoft.azure.functions.sql.annotation.SQLInput) em parâmetros cujo valor viria do SQL do Azure. Esta anotação suporta os seguintes elementos:
| Elemento | Descrição |
|---|---|
| commandText | Obrigatório. O comando de consulta Transact-SQL ou o nome do procedimento armazenado executado pela associação. |
| connectionStringSetting | Obrigatório. O nome de uma configuração de aplicativo que contém a cadeia de conexão para o banco de dados no qual a consulta ou o procedimento armazenado está sendo executado. Esse valor não é a cadeia de conexão real e, em vez disso, deve ser resolvido para um nome de variável de ambiente. |
| commandType | Obrigatório. Um valor CommandType , que é "Text" para uma consulta e "StoredProcedure" para um procedimento armazenado. |
| Designação | Obrigatório. O nome exclusivo da ligação de função. |
| Parâmetros | Opcional. Zero ou mais valores de parâmetro passados para o comando durante a execução como uma única cadeia de caracteres. Deve seguir o formato @param1=param1,@param2=param2. O nome do parâmetro e o valor do parâmetro não podem conter uma vírgula (,) ou um sinal de igual (=). |
Configuração
A tabela a seguir explica as propriedades que você pode definir no options objeto passado para o input.sql() método.
| Propriedade | Descrição |
|---|---|
| commandText | Obrigatório. O comando de consulta Transact-SQL ou o nome do procedimento armazenado executado pela associação. |
| connectionStringSetting | Obrigatório. O nome de uma configuração de aplicativo que contém a cadeia de conexão para o banco de dados no qual a consulta ou o procedimento armazenado está sendo executado. Esse valor não é a cadeia de conexão real e, em vez disso, deve ser resolvido para um nome de variável de ambiente. Palavras-chave opcionais no valor da cadeia de conexão estão disponíveis para refinar a conectividade de associações SQL. |
| commandType | Obrigatório. Um valor CommandType , que é Text para uma consulta e StoredProcedure para um procedimento armazenado. |
| Parâmetros | Opcional. Zero ou mais valores de parâmetro passados para o comando durante a execução como uma única cadeia de caracteres. Deve seguir o formato @param1=param1,@param2=param2. O nome do parâmetro e o valor do parâmetro não podem conter uma vírgula (,) ou um sinal de igual (=). |
Configuração
A tabela a seguir explica as propriedades de configuração de vinculação definidas no arquivo function.json.
| function.json propriedade | Descrição |
|---|---|
| tipo | Obrigatório. Deve ser definido como sql. |
| direção | Obrigatório. Deve ser definido como in. |
| Designação | Obrigatório. O nome da variável que representa a consulta resulta em código de função. |
| commandText | Obrigatório. O comando de consulta Transact-SQL ou o nome do procedimento armazenado executado pela associação. |
| connectionStringSetting | Obrigatório. O nome de uma configuração de aplicativo que contém a cadeia de conexão para o banco de dados no qual a consulta ou o procedimento armazenado está sendo executado. Esse valor não é a cadeia de conexão real e, em vez disso, deve ser resolvido para um nome de variável de ambiente. Palavras-chave opcionais no valor da cadeia de conexão estão disponíveis para refinar a conectividade de associações SQL. |
| commandType | Obrigatório. Um valor CommandType , que é Text para uma consulta e StoredProcedure para um procedimento armazenado. |
| Parâmetros | Opcional. Zero ou mais valores de parâmetro passados para o comando durante a execução como uma única cadeia de caracteres. Deve seguir o formato @param1=param1,@param2=param2. O nome do parâmetro e o valor do parâmetro não podem conter uma vírgula (,) ou um sinal de igual (=). |
Quando estiver desenvolvendo localmente, adicione as configurações do aplicativo no arquivo local.settings.json na Values coleção.
Utilização
A definição de associação inclui o texto do comando SQL, o tipo de comando, os parâmetros e o nome da configuração da cadeia de conexão. O comando pode ser uma consulta Transact-SQL (T-SQL) com o tipo System.Data.CommandType.Text de comando ou o nome do procedimento armazenado com o tipo System.Data.CommandType.StoredProcedurede comando.
As consultas executadas pela associação de entrada são parametrizadas em Microsoft.Data.SqlClient para reduzir o risco de injeção de SQL dos valores de parâmetro passados para a associação.
Se ocorrer uma exceção quando uma associação de entrada SQL for executada, o código da função não será executado. Esse comportamento pode resultar em um código de erro sendo retornado, como um gatilho HTTP retornando um código de erro 500.
Connections
A connectionStringSetting propriedade é definida como uma chave nas definições da aplicação que devolve um valor usado pelo runtime Functions para se ligar à base de dados SQL do Azure ou SQL Server usada pela extensão. O valor da definição de propriedade de ligação depende do tipo de ligação:
-
Ligação de identidade gerida: A
connectionStringSettingpropriedade devolve uma cadeia de ligação que é usadaAuthentication=Active Directory Managed Identitypara autenticar sem segredos. Você pode usar uma identidade gerenciada atribuída pelo sistema ou pelo usuário. Para mais informações, consulte Ligar uma aplicação de função ao SQL do Azure com identidade gerida e Definir conexões de identidade. -
Referência Key Vault: A
connectionStringSettingdefinição de propriedade devolve uma referência Azure Key Vault ao local onde a cadeia de ligação é mantida centralmente. Para mais informações, consulte Definir ligações ao Key Vault. -
Referência de App Configuration: A
connectionStringSettingdefinição de propriedade devolve uma referência Azure App Configuration que devolve uma cadeia de ligação ou uma referência ao Key Vault. Para mais informações, consulte Azure App Configuration no artigo de ligações. -
Connection string: A
connectionStringSettingdefinição de propriedade devolve a cadeia de ligação SQL real. Como a cadeia de ligação pode conter credenciais, deve usar uma ligação de identidade gerida ou pelo menos armazenar a cadeia de ligação no Key Vault. Para mais informações, veja Definir ligações.
Para saber mais sobre ligações de bindings, consulte Gerir ligações no Funções do Azure.
A cadeia de ligação é passada para a Microsoft. Data.SqlClient e suporta todas as palavras-chave definidas na documentação do SqlClient ConnectionString. Palavras-chave notáveis incluem:
-
Authentication: Liga-se ao SQL do Azure com o Microsoft Entra ID. Definir paraActive Directory Managed Identityidentidades geridas. Para mais informações, consulte Ligar uma aplicação de funções ao SQL do Azure com identidade gerida. -
Command Timeout: Esperar um tempo especificado em segundos antes de terminar uma consulta (por defeito 30 segundos). -
ConnectRetryCount: Fazer automaticamente tentativas adicionais de reconexão, especialmente aplicável ao nível serverless do Base de Dados SQL do Azure (padrão 1). -
Pooling: Reutilizar ligações à base de dados para melhorar o desempenho (por defeitotrue). As configurações adicionais para pool de conexões incluemConnection Lifetime,Max Pool SizeeMin Pool Size. Saiba mais na documentação do ADO.NET.