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 do Banco de Dados do Azure para MySQL recupera dados de um banco de dados e os passa para o parâmetro de entrada da função.
Para obter informações sobre 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 Azure Functions Node.js. Para saber mais sobre as diferenças entre v3 e v4, consulte o guia de migração.
Exemplos
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 Azure Functions.
- Script C#: usado principalmente quando você cria funções C# no portal do Azure.
Mais exemplos para a vinculação de entrada do Banco de Dados do Azure para MySQL estão disponíveis no repositório GitHub.
Esta seção contém os seguintes exemplos:
- Gatilho HTTP, obter uma linha por ID de uma 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 Product classe e a uma tabela de banco de dados correspondente:
namespace AzureMySqlSamples.Common
{
public class Product
{
public int? ProductId { get; set; }
public string Name { get; set; }
public int Cost { get; set; }
public override bool Equals(object obj)
}
}
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Gatilho HTTP, obter uma linha por ID de uma 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 Product registro com a consulta especificada.
Nota
O parâmetro HTTP query string diferencia maiúsculas de minúsculas.
using System.Collections.Generic;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.MySql;
using Microsoft.Azure.Functions.Worker.Http;
using AzureMySqlSamples.Common;
namespace AzureMySqlSamples.InputBindingIsolatedSamples
{
public static class GetProductById
{
[Function(nameof(GetProductById))]
public static IEnumerable<Product> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "getproducts/{productId}")]
HttpRequestData req,
[MySqlInput("select * from Products where ProductId = @productId",
"MySqlConnectionString",
parameters: "@ProductId={productId}")]
IEnumerable<Product> products)
{
return products;
}
}
}
Gatilho HTTP, obter várias linhas de um parâmetro de rota
O exemplo a seguir mostra uma função C# que recupera linhas retornadas 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 Product 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.MySql;
using Microsoft.Azure.Functions.Worker.Http;
using AzureMySqlSamples.Common;
namespace AzureMySqlSamples.InputBindingIsolatedSamples
{
public static class GetProducts
{
[Function(nameof(GetProducts))]
public static IEnumerable<Product> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "getproducts")]
HttpRequestData req,
[MySqlInput("select * from Products",
"MySqlConnectionString")]
IEnumerable<Product> products)
{
return products;
}
}
}
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra uma função C# que executa um procedimento armazenado com entrada do parâmetro query da solicitação HTTP.
O procedimento DeleteProductsCost armazenado deve ser criado no banco de dados MySQL. Neste exemplo, o procedimento armazenado exclui um único registro ou todos os registros, dependendo do valor do parâmetro.
DROP PROCEDURE IF EXISTS DeleteProductsCost;
Create Procedure DeleteProductsCost(cost INT)
BEGIN
DELETE from Products where Products.cost = cost;
END
namespace AzureMySqlSamples.InputBindingSamples
{
public static class GetProductsStoredProcedure
{
[FunctionName(nameof(GetProductsStoredProcedure))]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "getproducts-storedprocedure/{cost}")]
HttpRequest req,
[MySql("DeleteProductsCost",
"MySqlConnectionString",
commandType: System.Data.CommandType.StoredProcedure,
parameters: "@Cost={cost}")]
IEnumerable<Product> products)
{
return new OkObjectResult(products);
}
}
}
Mais exemplos para a vinculação de entrada do Banco de Dados do Azure para MySQL 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 uma linha por ID de uma cadeia de caracteres de consulta
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma Product classe e a uma tabela de banco de dados correspondente:
package com.function.Common;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Product {
@JsonProperty("ProductId")
private int ProductId;
@JsonProperty("Name")
private String Name;
@JsonProperty("Cost")
private int Cost;
public Product() {
}
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Gatilho HTTP, obter várias linhas
O exemplo a seguir mostra uma ligação de entrada do Banco de Dados do Azure para MySQL em uma função Java que uma solicitação HTTP dispara. A associação lê de uma consulta e retorna os resultados na resposta HTTP.
package com.function;
import com.function.Common.Product;
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.mysql.annotation.CommandType;
import com.microsoft.azure.functions.mysql.annotation.MySqlInput;
import java.util.Optional;
public class GetProducts {
@FunctionName("GetProducts")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "getproducts}")
HttpRequestMessage<Optional<String>> request,
@MySqlInput(
name = "products",
commandText = "SELECT * FROM Products",
commandType = CommandType.Text,
connectionStringSetting = "MySqlConnectionString")
Product[] products) {
return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(products).build();
}
}
Gatilho HTTP, obter uma linha por ID de uma cadeia de caracteres de consulta
O exemplo a seguir mostra uma ligação de entrada do Banco de Dados do Azure para MySQL em uma função Java que uma solicitação HTTP dispara. A associação lê uma consulta filtrada por um parâmetro da cadeia de caracteres de consulta e retorna a linha na resposta HTTP.
public class GetProductById {
@FunctionName("GetProductById")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "getproducts/{productid}")
HttpRequestMessage<Optional<String>> request,
@MySqlInput(
name = "products",
commandText = "SELECT * FROM Products WHERE ProductId= @productId",
commandType = CommandType.Text,
parameters = "@productId={productid}",
connectionStringSetting = "MySqlConnectionString")
Product[] products) {
return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(products).build();
}
}
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra uma ligação de entrada do Banco de Dados do Azure para MySQL em uma função Java que uma solicitação HTTP dispara. A associação executa um procedimento armazenado com entrada do parâmetro de consulta da solicitação HTTP.
O procedimento DeleteProductsCost 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.
DROP PROCEDURE IF EXISTS DeleteProductsCost;
Create Procedure DeleteProductsCost(cost INT)
BEGIN
DELETE from Products where Products.cost = cost;
END
public class DeleteProductsStoredProcedure {
@FunctionName("DeleteProductsStoredProcedure")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "Deleteproducts-storedprocedure/{cost}")
HttpRequestMessage<Optional<String>> request,
@MySqlInput(
name = "products",
commandText = "DeleteProductsCost",
commandType = CommandType.StoredProcedure,
parameters = "@Cost={cost}",
connectionStringSetting = "MySqlConnectionString")
Product[] products) {
return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(products).build();
}
}
Mais exemplos para a vinculação de entrada do Banco de Dados do Azure para MySQL 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 uma linha por ID de uma cadeia de caracteres de consulta
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma tabela de banco de dados:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Gatilho HTTP, obter várias linhas
O exemplo a seguir mostra uma associação de entrada do Banco de Dados do Azure para MySQL que uma solicitação HTTP dispara. A associação lê de uma consulta e retorna os resultados na resposta HTTP.
import { app, HttpRequest, HttpResponseInit, input, InvocationContext } from '@azure/functions';
const mysqlInput = input.generic({
commandText: 'select * from Products',
commandType: 'Text',
connectionStringSetting: 'MySqlConnectionString',
});
export async function httpTrigger1(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
context.log('HTTP trigger and MySQL input binding function processed a request.');
const products = context.extraInputs.get(mysqlInput);
return {
jsonBody: products,
};
}
app.http('httpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraInputs: [mysqlInput],
handler: httpTrigger1,
});
const { app, input } = require('@azure/functions');
const mysqlInput = input.generic({
type: 'mysql',
commandText: 'select * from Products where Cost = @Cost',
parameters: '@Cost={Cost}',
commandType: 'Text',
connectionStringSetting: 'MySqlConnectionString'
})
app.http('GetProducts', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
route: 'getproducts/{cost}',
extraInputs: [mysqlInput],
handler: async (request, context) => {
const products = JSON.stringify(context.extraInputs.get(mysqlInput));
return {
status: 200,
body: products
};
}
});
Gatilho HTTP, obter uma linha por ID de uma cadeia de caracteres de consulta
O exemplo a seguir mostra uma associação de entrada do Banco de Dados do Azure para MySQL que uma solicitação HTTP dispara. A associação lê uma consulta filtrada por um parâmetro da cadeia de caracteres de consulta e retorna a linha na resposta HTTP.
import { app, HttpRequest, HttpResponseInit, input, InvocationContext } from '@azure/functions';
const mysqlInput = input.generic({
commandText: 'select * from Products where ProductId= @productId',
commandType: 'Text',
parameters: '@productId={productid}',
connectionStringSetting: 'MySqlConnectionString',
});
export async function httpTrigger1(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
context.log('HTTP trigger and MySQL input binding function processed a request.');
const products = context.extraInputs.get(mysqlInput);
return {
jsonBody: products,
};
}
app.http('httpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraInputs: [mysqlInput],
handler: httpTrigger1,
});
const { app, input } = require('@azure/functions');
const mysqlInput = input.generic({
type: 'mysql',
commandText: 'select * from Products where ProductId= @productId',
commandType: 'Text',
parameters: '@productId={productid}',
connectionStringSetting: 'MySqlConnectionString'
})
app.http('GetProducts', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
route: 'getproducts/{productid}',
extraInputs: [mysqlInput],
handler: async (request, context) => {
const products = JSON.stringify(context.extraInputs.get(mysqlInput));
return {
status: 200,
body: products
};
}
});
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra uma associação de entrada do Banco de Dados do Azure para MySQL que uma solicitação HTTP dispara. A associação executa um procedimento armazenado com entrada do parâmetro de consulta da solicitação HTTP.
O procedimento DeleteProductsCost 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.
DROP PROCEDURE IF EXISTS DeleteProductsCost;
Create Procedure DeleteProductsCost(cost INT)
BEGIN
DELETE from Products where Products.cost = cost;
END
import { app, HttpRequest, HttpResponseInit, input, InvocationContext } from '@azure/functions';
const mysqlInput = input.generic({
commandText: 'DeleteProductsCost',
commandType: 'StoredProcedure',
parameters: '@Cost={cost}',
connectionStringSetting: 'MySqlConnectionString',
});
export async function httpTrigger1(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
context.log('HTTP trigger and MySQL input binding function processed a request.');
const products = context.extraInputs.get(mysqlInput);
return {
jsonBody: products,
};
}
app.http('httpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraInputs: [mysqlInput],
handler: httpTrigger1,
});
const { app, input } = require('@azure/functions');
const mysqlInput = input.generic({
type: 'mysql',
commandText: 'DeleteProductsCost',
commandType: 'StoredProcedure',
parameters: '@Cost={cost}',
connectionStringSetting: 'MySqlConnectionString'
})
app.http('httpTrigger1', {
methods: ['POST'],
authLevel: 'anonymous',
route: 'DeleteProductsByCost',
extraInputs: [mysqlInput],
handler: async (request, context) => {
const products = JSON.stringify(context.extraInputs.get(mysqlInput));
return {
status: 200,
body: products
};
}
});
Mais exemplos para a vinculação de entrada do Banco de Dados do Azure para MySQL 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 uma linha por ID de uma cadeia de caracteres de consulta
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma tabela de banco de dados:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Gatilho HTTP, obter várias linhas
O exemplo a seguir mostra um Banco de Dados do Azure para associação de entrada MySQL em um arquivo function.json e uma função do PowerShell que uma solicitação HTTP dispara. A associação lê de uma consulta e retorna os resultados na resposta HTTP.
O exemplo a seguir é a vinculação de dados no arquivo function.json:
{
"bindings": [
{
"authLevel": "function",
"name": "Request",
"type": "httpTrigger",
"direction": "in",
"methods": [
"get"
],
"route": "getproducts/{cost}"
},
{
"name": "response",
"type": "http",
"direction": "out"
},
{
"name": "products",
"type": "mysql",
"direction": "in",
"commandText": "select * from Products",
"commandType": "Text",
"connectionStringSetting": "MySqlConnectionString"
}
],
"disabled": false
}
A seção Configuração explica essas propriedades.
O exemplo a seguir é um exemplo de código do PowerShell para a função no arquivo run.ps1:
using namespace System.Net
param($Request, $TriggerMetadata, $products)
Write-Host "PowerShell function with MySql Input Binding processed a request."
Push-OutputBinding -Name response -Value ([HttpResponseContext]@{
StatusCode = [System.Net.HttpStatusCode]::OK
Body = $products
})
Gatilho HTTP, obter uma linha por ID de uma cadeia de caracteres de consulta
O exemplo a seguir mostra uma vinculação de entrada do Banco de Dados do Azure para MySQL em uma função do PowerShell que uma solicitação HTTP dispara. A associação lê uma consulta filtrada por um parâmetro da cadeia de caracteres de consulta e retorna a linha na resposta HTTP.
O exemplo a seguir é a vinculação de dados no arquivo function.json:
{
"bindings": [
{
"authLevel": "function",
"name": "Request",
"type": "httpTrigger",
"direction": "in",
"methods": [
"get"
],
"route": "getproducts/{productid}"
},
{
"name": "response",
"type": "http",
"direction": "out"
},
{
"name": "products",
"type": "mysql",
"direction": "in",
"commandText": "select * from Products where ProductId= @productId",
"commandType": "Text",
"parameters": "MySqlConnectionString",
"connectionStringSetting": "MySqlConnectionString"
}
],
"disabled": false
}
A seção Configuração explica essas propriedades.
O exemplo a seguir é um exemplo de código do PowerShell para a função no arquivo run.ps1:
using namespace System.Net
param($Request, $TriggerMetadata, $products)
Write-Host "PowerShell function with MySql Input Binding processed a request."
Push-OutputBinding -Name response -Value ([HttpResponseContext]@{
StatusCode = [System.Net.HttpStatusCode]::OK
Body = $products
})
Gatilho HTTP, excluir linhas
O exemplo a seguir mostra um Banco de Dados do Azure para associação de entrada MySQL em um arquivo function.json e uma função do PowerShell que uma solicitação HTTP dispara. A associação executa um procedimento armazenado com entrada do parâmetro de consulta da solicitação HTTP.
O procedimento DeleteProductsCost 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.
DROP PROCEDURE IF EXISTS DeleteProductsCost;
Create Procedure DeleteProductsCost(cost INT)
BEGIN
DELETE from Products where Products.cost = 'cost';
END
{
"bindings": [
{
"authLevel": "function",
"name": "Request",
"type": "httpTrigger",
"direction": "in",
"methods": [
"get"
],
"route": "deleteproducts-storedprocedure/{cost}"
},
{
"name": "response",
"type": "http",
"direction": "out"
},
{
"name": "products",
"type": "mysql",
"direction": "in",
"commandText": "DeleteProductsCost",
"commandType": "StoredProcedure",
"parameters": "@Cost={cost}",
"connectionStringSetting": "MySqlConnectionString"
}
],
"disabled": false
}
A seção Configuração explica essas propriedades.
O exemplo a seguir é um exemplo de código do PowerShell para a função no arquivo run.ps1:
using namespace System.Net
param($Request, $TriggerMetadata, $products)
Write-Host "PowerShell function with MySql Input Binding processed a request."
Push-OutputBinding -Name response -Value ([HttpResponseContext]@{
StatusCode = [System.Net.HttpStatusCode]::OK
Body = $products
}
Mais exemplos para a vinculação de entrada do Banco de Dados do Azure para MySQL 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 uma linha por ID de uma cadeia de caracteres de consulta
- Gatilho HTTP, excluir linhas
Os exemplos referem-se a uma tabela de banco de dados:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Nota
Você deve usar o Azure Functions versão 1.22.0b4 para Python.
Gatilho HTTP, obter várias linhas
O exemplo a seguir mostra uma ligação de entrada do Banco de Dados do Azure para MySQL em um arquivo function.json e uma função Python que uma solicitação HTTP dispara. A associação lê de uma consulta e retorna os resultados na resposta HTTP.
O exemplo a seguir é um exemplo de código Python para o arquivo function_app.py:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.generic_trigger(arg_name="req", type="httpTrigger", route="getproducts/{cost}")
@app.generic_output_binding(arg_name="$return", type="http")
@app.generic_input_binding(arg_name="products", type="mysql",
commandText= "select * from Products",
command_type="Text",
connection_string_setting="MySqlConnectionString")
def mysql_test(req: func.HttpRequest, products: func.MySqlRowList) -> func.HttpResponse:
rows = list(map(lambda r: json.loads(r.to_json()), products))
return func.HttpResponse(
json.dumps(rows),
status_code=200,
mimetype="application/json"
)
Gatilho HTTP, obter uma linha por ID de uma cadeia de caracteres de consulta
O exemplo a seguir mostra uma ligação de entrada do Banco de Dados do Azure para MySQL em uma função Python que uma solicitação HTTP dispara. A associação lê uma consulta filtrada por um parâmetro da cadeia de caracteres de consulta e retorna a linha na resposta HTTP.
O exemplo a seguir é um exemplo de código Python para o arquivo function_app.py:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.generic_trigger(arg_name="req", type="httpTrigger", route="getproducts/{cost}")
@app.generic_output_binding(arg_name="$return", type="http")
@app.generic_input_binding(arg_name="products", type="mysql",
commandText= "select * from Products where ProductId= @productId",
command_type="Text",
parameters= "@productId={productid}",
connection_string_setting="MySqlConnectionString")
def mysql_test(req: func.HttpRequest, products: func.MySqlRowList) -> func.HttpResponse:
rows = list(map(lambda r: json.loads(r.to_json()), products))
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 do Banco de Dados do Azure para MySQL em um arquivo function.json e uma função Python que uma solicitação HTTP dispara. A associação executa um procedimento armazenado com entrada do parâmetro de consulta da solicitação HTTP.
O procedimento DeleteProductsCost 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.
DROP PROCEDURE IF EXISTS DeleteProductsCost;
Create Procedure DeleteProductsCost(cost INT)
BEGIN
DELETE from Products where Products.cost = cost;
END
O exemplo a seguir é um exemplo de código Python para o arquivo function_app.py:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.generic_trigger(arg_name="req", type="httpTrigger", route="getproducts/{cost}")
@app.generic_output_binding(arg_name="$return", type="http")
@app.generic_input_binding(arg_name="products", type="mysql",
commandText= "DeleteProductsCost",
command_type="StoredProcedure",
parameters= "@Cost={cost}",
connection_string_setting="MySqlConnectionString")
def mysql_test(req: func.HttpRequest, products: func.MySqlRowList) -> func.HttpResponse:
rows = list(map(lambda r: json.loads(r.to_json()), products))
return func.HttpResponse(
json.dumps(rows),
status_code=200,
mimetype="application/json"
)
Atributos
A biblioteca C# usa o MySqlAttribute atributo para declarar as ligações do MySQL na função. O atributo tem as seguintes propriedades:
| Propriedade Attribute | Descrição |
|---|---|
CommandText |
Obrigatório. O comando de consulta MySQL ou o nome do procedimento armazenado que a associação executa. |
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 é 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 CommandType valor, que é Text para uma consulta e StoredProcedure para um procedimento armazenado. |
Parameters |
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 @MySQLInput anotação em parâmetros cujos valores viriam do Banco de Dados do Azure para MySQL. Esta anotação suporta os seguintes elementos:
| Elemento | Descrição |
|---|---|
commandText |
Obrigatório. O comando de consulta MySQL ou o nome do procedimento armazenado que a associação executa. |
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 é 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 CommandType valor, que é Text para uma consulta e StoredProcedure para um procedimento armazenado. |
name |
Obrigatório. O nome exclusivo da ligação de função. |
parameters |
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.generic() método:
| Propriedade | Descrição |
|---|---|
commandText |
Obrigatório. O comando de consulta MySQL ou o nome do procedimento armazenado que a associação executa. |
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 é 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 ligações do MySQL. |
commandType |
Obrigatório. Um CommandType valor, que é Text para uma consulta e StoredProcedure para um procedimento armazenado. |
parameters |
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 associação definidas no arquivo function.json:
| Propriedade | Descrição |
|---|---|
type |
Obrigatório. Deve ser definido como mysql. |
direction |
Obrigatório. Deve ser definido como in. |
name |
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 MySQL ou o nome do procedimento armazenado que a associação executa. |
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 é 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 ligações do MySQL. |
commandType |
Obrigatório. Um CommandType valor, que é Text para uma consulta e StoredProcedure para um procedimento armazenado. |
parameters |
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
O construtor do atributo usa o texto do comando MySQL, o tipo de comando, os parâmetros e o nome da configuração da cadeia de conexão. O comando pode ser uma consulta MySQL com o tipo System.Data.CommandType.Text de comando ou um nome de procedimento armazenado com o tipo System.Data.CommandType.StoredProcedurede comando. O nome da configuração da cadeia de conexão corresponde à configuração do aplicativo (em local.settings.json para desenvolvimento local) que contém a cadeia de conexão para o Banco de Dados do Azure para MySQL.
Se ocorrer uma exceção quando uma ligação de entrada do Banco de Dados do Azure para MySQL for executada, o código da função será executado. O resultado pode ser um código de erro, como um gatilho HTTP que retorna um código de erro 500.