Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Lorsqu’une fonction s’exécute, la liaison d’entrée Azure Database pour MySQL récupère les données d’une base de données et les transmet au paramètre d’entrée de la fonction.
Pour plus d’informations sur l’installation et la configuration, consultez la vue d’ensemble.
Important
Cet article utilise des onglets pour prendre en charge plusieurs versions du modèle de programmation Node.js. Le modèle v4 est en disponibilité générale. Il est conçu pour offrir une expérience plus flexible et intuitive aux développeurs JavaScript et TypeScript. Pour plus d’informations sur le fonctionnement du modèle v4, reportez-vous au guide du développeur Azure Functions Node.js. Si vous souhaitez obtenir plus d’informations sur les différences entre v3 et v4, consultez le guide de migration.
Exemples
Vous pouvez créer une fonction C# à l’aide de l’un des modes C# suivants :
- Modèle worker isolé : fonction C# compilée exécutée dans un processus worker isolé du runtime. Un processus de travail isolé est nécessaire pour prendre en charge les fonctions C# s’exécutant sur la prise en charge à long terme (LTS) et les versions non LTS pour .NET et .NET Framework.
- Modèle in-process : fonction C# compilée qui s’exécute dans le même processus que le runtime Azure Functions.
- Script C# : principalement utilisé lors de la création de fonctions C# dans le portail Azure.
D’autres exemples pour la liaison d’entrée Azure Database pour MySQL sont disponibles dans le référentiel GitHub.
Cette section contient les exemples suivants :
- Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
- Déclencheur HTTP, obtention de plusieurs lignes à partir de données d’itinéraire
- Déclencheur HTTP, supprimer les lignes
Les exemples font référence à une classe Product et à une table de base de données correspondante :
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
);
Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
L’exemple suivant illustre une fonction C# qui récupère un dossier unique. La fonction est déclenchée par une requête HTTP qui utilise une chaîne de requête pour spécifier l’ID. Cet ID est utilisé pour récupérer un Productenregistrement avec la requête spécifiée.
Notes
Le paramètre de chaîne de requête HTTP respecte la casse.
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;
}
}
}
Déclencheur HTTP, obtenir plusieurs lignes à partir d’un paramètre de routage
L’exemple suivant montre une fonction C# qui récupère les lignes retournées par la requête. La fonction est déclenchée par une requête HTTP qui utilise des données de routage pour spécifier la valeur d’un paramètre de requête. Ce paramètre est utilisé pour filtrer les enregistrements Product dans la requête spécifiée.
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;
}
}
}
déclencheur HTTP, supprimer les lignes
L’exemple suivant montre une fonction C# qui exécute une procédure stockée avec une entrée à partir du paramètre de requête de la requête HTTP.
La procédure DeleteProductsCost stockée doit être créée sur la base de données MySQL. Dans cet exemple, la procédure stockée supprime un enregistrement unique ou tous les enregistrements, en fonction de la valeur du paramètre.
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);
}
}
}
D’autres exemples pour la liaison d’entrée Azure Database pour MySQL sont disponibles dans le référentiel GitHub.
Cette section contient les exemples suivants :
- Déclencheur HTTP, obtenir plusieurs lignes
- Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
- Déclencheur HTTP, supprimer les lignes
Les exemples font référence à une classe Product et à une table de base de données correspondante :
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
);
Déclencheur HTTP, obtenir plusieurs lignes
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans une fonction Java déclenchée par une requête HTTP. La liaison lit à partir d’une requête et retourne les résultats dans la réponse 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();
}
}
Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans une fonction Java déclenchée par une requête HTTP. La liaison lit à partir d’une requête filtrée par un paramètre de la chaîne de requête et retourne la ligne dans la réponse 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();
}
}
déclencheur HTTP, supprimer les lignes
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans une fonction Java déclenchée par une requête HTTP. La liaison exécute une procédure stockée avec une entrée à partir du paramètre de requête de la requête HTTP.
La procédure stockée DeleteProductsCost doit être créée sur la base de données. Dans cet exemple, la procédure stockée supprime un enregistrement unique ou tous les enregistrements, en fonction de la valeur du paramètre.
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();
}
}
D’autres exemples pour la liaison d’entrée Azure Database pour MySQL sont disponibles dans le référentiel GitHub.
Cette section contient les exemples suivants :
- Déclencheur HTTP, obtenir plusieurs lignes
- Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
- Déclencheur HTTP, supprimer les lignes
Les exemples font référence à une table de base de données :
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Déclencheur HTTP, obtenir plusieurs lignes
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL déclenchée par une requête HTTP. La liaison lit à partir d’une requête et retourne les résultats dans la réponse 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
};
}
});
Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL déclenchée par une requête HTTP. La liaison lit à partir d’une requête filtrée par un paramètre de la chaîne de requête et retourne la ligne dans la réponse 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
};
}
});
déclencheur HTTP, supprimer les lignes
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL déclenchée par une requête HTTP. La liaison exécute une procédure stockée avec une entrée à partir du paramètre de requête de la requête HTTP.
La procédure stockée DeleteProductsCost doit être créée sur la base de données. Dans cet exemple, la procédure stockée supprime un enregistrement unique ou tous les enregistrements, en fonction de la valeur du paramètre.
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
};
}
});
D’autres exemples pour la liaison d’entrée Azure Database pour MySQL sont disponibles dans le référentiel GitHub.
Cette section contient les exemples suivants :
- Déclencheur HTTP, obtenir plusieurs lignes
- Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
- Déclencheur HTTP, supprimer les lignes
Les exemples font référence à une table de base de données :
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Déclencheur HTTP, obtenir plusieurs lignes
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans un fichier function.json et une fonction PowerShell déclenchée par une requête HTTP. La liaison lit à partir d’une requête et retourne les résultats dans la réponse HTTP.
L’exemple suivant montre une liaison de données dans le fichier 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
}
La section Configuration décrit ces propriétés.
L’exemple suivant est un exemple de code PowerShell pour la fonction dans le fichier 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
})
Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans une fonction PowerShell déclenchée par une requête HTTP. La liaison lit à partir d’une requête filtrée par un paramètre de la chaîne de requête et retourne la ligne dans la réponse HTTP.
L’exemple suivant montre une liaison de données dans le fichier 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
}
La section Configuration décrit ces propriétés.
L’exemple suivant est un exemple de code PowerShell pour la fonction dans le fichier 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
})
déclencheur HTTP, supprimer les lignes
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans un fichier function.json et une fonction PowerShell déclenchée par une requête HTTP. La liaison exécute une procédure stockée avec une entrée à partir du paramètre de requête de la requête HTTP.
La procédure stockée DeleteProductsCost doit être créée sur la base de données. Dans cet exemple, la procédure stockée supprime un enregistrement unique ou tous les enregistrements, en fonction de la valeur du paramètre.
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
}
La section Configuration décrit ces propriétés.
L’exemple suivant est un exemple de code PowerShell pour la fonction dans le fichier 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
}
D’autres exemples pour la liaison d’entrée Azure Database pour MySQL sont disponibles dans le référentiel GitHub.
Cette section contient les exemples suivants :
- Déclencheur HTTP, obtenir plusieurs lignes
- Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
- Déclencheur HTTP, supprimer les lignes
Les exemples font référence à une table de base de données :
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Notes
Vous devez utiliser Azure Functions version 1.22.0b4 pour Python.
Déclencheur HTTP, obtenir plusieurs lignes
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans un fichier function.json et une fonction Python déclenchée par une requête HTTP. La liaison lit à partir d’une requête et retourne les résultats dans la réponse HTTP.
L’exemple suivant est un exemple de code Python pour le fichier 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"
)
Déclencheur HTTP, obtenir une ligne par ID à partir d’une chaîne de requête
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans une fonction Python déclenchée par une requête HTTP. La liaison lit à partir d’une requête filtrée par un paramètre de la chaîne de requête et retourne la ligne dans la réponse HTTP.
L’exemple suivant est un exemple de code Python pour le fichier 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"
)
déclencheur HTTP, supprimer les lignes
L’exemple suivant montre une liaison d’entrée Azure Database pour MySQL dans un fichier function.json et une fonction Python déclenchée par une requête HTTP. La liaison exécute une procédure stockée avec une entrée à partir du paramètre de requête de la requête HTTP.
La procédure stockée DeleteProductsCost doit être créée sur la base de données. Dans cet exemple, la procédure stockée supprime un enregistrement unique ou tous les enregistrements, en fonction de la valeur du paramètre.
DROP PROCEDURE IF EXISTS DeleteProductsCost;
Create Procedure DeleteProductsCost(cost INT)
BEGIN
DELETE from Products where Products.cost = cost;
END
L’exemple suivant est un exemple de code Python pour le fichier 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"
)
Attributs
La bibliothèque C# utilise l’attribut MySqlAttribute pour déclarer les liaisons MySQL sur la fonction. L’attribut a les propriétés suivantes :
| Propriété d’attribut | Descriptif |
|---|---|
CommandText |
Obligatoire. Commande de requête MySQL ou nom de la procédure stockée exécutée par la liaison. |
ConnectionStringSetting |
Obligatoire. Nom d’un paramètre d’application qui contient la chaîne de connexion de la base de données sur laquelle la requête ou la procédure stockée est exécutée. Cette valeur n’est pas la chaîne de connexion réelle ; au lieu de cela, elle doit être résolue en un nom de variable d’environnement. |
CommandType |
Obligatoire. Valeur CommandType , qui concerne Text une requête et StoredProcedure une procédure stockée. |
Parameters |
facultatif. Zéro ou plusieurs valeurs de paramètre passées à la commande lors de l’exécution, sous la forme d’une seule chaîne. Doit respecter le format @param1=param1,@param2=param2. Le nom du paramètre et la valeur du paramètre ne peuvent pas contenir de virgule (,) ou un signe égal (=). |
Commentaires
Dans la bibliothèque d’exécution de fonctions Java, utilisez l’annotation sur les paramètres dont les @MySQLInput valeurs proviennent d’Azure Database pour MySQL. Cette annotation prend en charge les éléments suivants :
| Élément | Descriptif |
|---|---|
commandText |
Obligatoire. Commande de requête MySQL ou nom de la procédure stockée exécutée par la liaison. |
connectionStringSetting |
Obligatoire. Nom d’un paramètre d’application qui contient la chaîne de connexion de la base de données sur laquelle la requête ou la procédure stockée est exécutée. Cette valeur n’est pas la chaîne de connexion réelle ; au lieu de cela, elle doit être résolue en un nom de variable d’environnement. |
commandType |
Obligatoire. Valeur CommandType , qui concerne Text une requête et StoredProcedure une procédure stockée. |
name |
Obligatoire. Nom unique de la liaison de fonction. |
parameters |
facultatif. Zéro ou plusieurs valeurs de paramètre passées à la commande lors de l’exécution, sous la forme d’une seule chaîne. Doit respecter le format @param1=param1,@param2=param2. Le nom du paramètre et la valeur du paramètre ne peuvent pas contenir de virgule (,) ou un signe égal (=). |
Paramétrage
Le tableau suivant explique les propriétés que vous pouvez définir sur l’objet options passé à la input.generic() méthode :
| Propriété | Descriptif |
|---|---|
commandText |
Obligatoire. Commande de requête MySQL ou nom de la procédure stockée exécutée par la liaison. |
connectionStringSetting |
Obligatoire. Nom d’un paramètre d’application qui contient la chaîne de connexion de la base de données sur laquelle la requête ou la procédure stockée est exécutée. Cette valeur n’est pas la chaîne de connexion réelle ; au lieu de cela, elle doit être résolue en un nom de variable d’environnement. Les mots clés facultatifs dans la valeur chaîne de connexion sont disponibles pour affiner la connectivité des liaisons MySQL. |
commandType |
Obligatoire. Valeur CommandType , qui concerne Text une requête et StoredProcedure une procédure stockée. |
parameters |
facultatif. Zéro ou plusieurs valeurs de paramètre passées à la commande lors de l’exécution, sous la forme d’une seule chaîne. Doit respecter le format @param1=param1,@param2=param2. Le nom du paramètre et la valeur du paramètre ne peuvent pas contenir de virgule (,) ou un signe égal (=). |
Paramétrage
Le tableau suivant décrit les propriétés de configuration de liaison que vous avez définies dans le fichier function.json :
| Propriété | Descriptif |
|---|---|
type |
Obligatoire. Cette propriété doit être définie sur mysql. |
direction |
Obligatoire. Cette propriété doit être définie sur in. |
name |
Obligatoire. Nom de la variable qui représente les résultats de la requête dans le code de la fonction. |
commandText |
Obligatoire. Commande de requête MySQL ou nom de la procédure stockée exécutée par la liaison. |
connectionStringSetting |
Obligatoire. Nom d’un paramètre d’application qui contient la chaîne de connexion de la base de données sur laquelle la requête ou la procédure stockée est exécutée. Cette valeur n’est pas la chaîne de connexion réelle ; au lieu de cela, elle doit être résolue en un nom de variable d’environnement. Les mots clés facultatifs dans la valeur chaîne de connexion sont disponibles pour affiner la connectivité des liaisons MySQL. |
commandType |
Obligatoire. Valeur CommandType , qui concerne Text une requête et StoredProcedure une procédure stockée. |
parameters |
facultatif. Zéro ou plusieurs valeurs de paramètre passées à la commande lors de l’exécution, sous la forme d’une seule chaîne. Doit respecter le format @param1=param1,@param2=param2. Le nom du paramètre et la valeur du paramètre ne peuvent pas contenir de virgule (,) ou un signe égal (=). |
Lorsque vous développez en local, ajoutez vos paramètres d’application dans le fichier local.settings.json de la collection Values.
Utilisation
Le constructeur de l’attribut prend le texte de la commande MySQL, le type de commande, les paramètres et le nom du paramètre de chaîne de connexion. La commande peut être une requête MySQL avec le type de System.Data.CommandType.Text commande ou un nom de procédure stockée avec le type System.Data.CommandType.StoredProcedurede commande. Le nom du paramètre de chaîne de connexion correspond au paramètre d’application (dans local.settings.json pour le développement local) qui contient la chaîne de connexion à Azure Database pour MySQL.
Si une exception se produit lorsqu’une liaison d’entrée Azure Database pour MySQL est exécutée, le code de fonction cesse de s’exécuter. Le résultat peut être un code d’erreur, tel qu’un déclencheur HTTP qui retourne un code d’erreur 500.