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.
Výstupní vazbu Azure Database for MySQL můžete použít k zápisu do databáze.
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
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 pro výstupní vazbu Azure Database for MySQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklad:
Příklad odkazuje na Product třídu a odpovídající tabulku databáze:
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
);
Trigger HTTP, zápis jednoho záznamu
Následující příklad ukazuje funkci jazyka C# , která přidá záznam do databáze pomocí dat zadaných v požadavku HTTP POST jako textu JSON.
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.OutputBindingSamples
{
public static class AddProduct
{
[FunctionName(nameof(AddProduct))]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "addproduct")]
[FromBody] Product prod,
[MySql("Products", "MySqlConnectionString")] out Product product)
{
product = prod;
return new CreatedResult($"/api/addproduct", product);
}
}
}
Další ukázky pro výstupní vazbu Azure Database for MySQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklad:
Příklad odkazuje na Product třídu a odpovídající tabulku databáze:
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() {
}
public Product(int productId, String name, int cost) {
ProductId = productId;
Name = name;
Cost = cost;
}
}
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Trigger HTTP, zápis záznamu do tabulky
Následující příklad ukazuje výstupní vazbu Azure Database for MySQL ve funkci Java, která přidá záznam do tabulky pomocí dat zadaných v požadavku HTTP POST jako textu JSON. Funkce přebírá další závislost na knihovně com.google.code.gson k analýze textu JSON.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
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.OutputBinding;
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.MySqlOutput;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.function.Common.Product;
import java.io.IOException;
import java.util.Optional;
public class AddProduct {
@FunctionName("AddProduct")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "addproduct")
HttpRequestMessage<Optional<String>> request,
@MySqlOutput(
name = "product",
commandText = "Products",
connectionStringSetting = "MySqlConnectionString")
OutputBinding<Product> product) throws JsonParseException, JsonMappingException, IOException {
String json = request.getBody().get();
ObjectMapper mapper = new ObjectMapper();
Product p = mapper.readValue(json, Product.class);
product.setValue(p);
return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(product).build();
}
}
Další ukázky pro výstupní vazbu Azure Database for MySQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklad:
Příklad odkazuje na tabulku databáze:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Trigger HTTP, zápis záznamů do tabulky
Následující příklad ukazuje výstupní vazbu Azure Database for MySQL, která přidává záznamy do tabulky pomocí dat zadaných v požadavku HTTP POST jako textu JSON.
const { app, output } = require('@azure/functions');
const mysqlOutput = output.generic({
type: 'mysql',
commandText: 'Products',
connectionStringSetting: 'MySqlConnectionString'
})
// Upsert the product, which will insert it into the Products table if the primary key (ProductId) for that item doesn't exist.
// If it does, update it to have the new name and cost.
app.http('AddProduct', {
methods: ['POST'],
authLevel: 'anonymous',
extraOutputs: [mysqlOutput],
handler: async (request, context) => {
// Note that this expects the body to be a JSON object or array of objects that have a property
// matching each of the columns in the table to upsert to.
const product = await request.json();
context.extraOutputs.set(mysqlOutput, product);
return {
status: 201,
body: JSON.stringify(product)
};
}
});
const { app, output } = require('@azure/functions');
const mysqlOutput = output.generic({
type: 'mysql',
commandText: 'Products',
connectionStringSetting: 'MySqlConnectionString'
})
// Upsert the product, which will insert it into the Products table if the primary key (ProductId) for that item doesn't exist.
// If it does, update it to have the new name and cost.
app.http('AddProduct', {
methods: ['POST'],
authLevel: 'anonymous',
extraOutputs: [mysqlOutput],
handler: async (request, context) => {
// Note that this expects the body to be a JSON object or array of objects that have a property
// matching each of the columns in the table to upsert to.
const product = await request.json();
context.extraOutputs.set(mysqlOutput, product);
return {
status: 201,
body: JSON.stringify(product)
};
}
});
Další ukázky pro výstupní vazbu Azure Database for MySQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklad:
Příklad odkazuje na tabulku databáze:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Trigger HTTP, zápis záznamů do tabulky
Následující příklad ukazuje výstupní vazbu Azure Database for MySQL v souboru function.json a funkci PowerShellu, která přidává záznamy do tabulky pomocí dat zadaných v požadavku HTTP POST jako textu JSON.
Následující příklad je svázání dat v souboru function.json:
{
"bindings": [
{
"authLevel": "function",
"name": "Request",
"direction": "in",
"type": "httpTrigger",
"methods": [
"post"
],
"route": "addproduct"
},
{
"name": "response",
"type": "http",
"direction": "out"
},
{
"name": "product",
"type": "mysql",
"direction": "out",
"commandText": "Products",
"connectionStringSetting": "MySqlConnectionString"
}
],
"disabled": false
}
V části Konfigurace jsou vysvětleny tyto vlastnosti.
Následující příklad je ukázkový kód PowerShellu pro funkci v souboru run.ps1:
using namespace System.Net
# Trigger binding data passed in via parameter block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Host "PowerShell function with MySql Output Binding processed a request."
# Note that this expects the body to be a JSON object or array of objects
# that have a property matching each of the columns in the table to upsert to.
$req_body = $Request.Body
# Assign the value that you want to pass to the MySQL output binding.
# The -Name value corresponds to the name property in the function.json file for the binding.
Push-OutputBinding -Name product -Value $req_body
# Assign the value to return as the HTTP response.
# The -Name value matches the name property in the function.json file for the binding.
Push-OutputBinding -Name response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $req_body
})
Další ukázky pro výstupní vazbu Azure Database for MySQL jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklad:
Příklad odkazuje na tabulku databáze:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Poznámka:
Musíte použít Azure Functions verze 1.22.0b4 pro Python.
Trigger HTTP, zápis záznamů do tabulky
Následující příklad ukazuje výstupní vazbu Azure Database for MySQL v souboru function.json a funkci Pythonu, která přidává záznamy do tabulky pomocí dat zadaných v požadavku HTTP POST jako textu JSON.
Následující příklad je ukázkový kód Pythonu pro soubor function_app.py:
import json
import azure.functions as func
app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
@app.generic_trigger(arg_name="req", type="httpTrigger", route="addproduct")
@app.generic_output_binding(arg_name="$return", type="http")
@app.generic_output_binding(arg_name="r", type="mysql",
command_text="Products",
connection_string_setting="MySqlConnectionString")
def mysql_output(req: func.HttpRequest, r: func.Out[func.MySqlRow]) \
-> func.HttpResponse:
body = json.loads(req.get_body())
row = func.MySqlRow.from_dict(body)
r.set(row)
return func.HttpResponse(
body=req.get_body(),
status_code=201,
mimetype="application/json"
)
Atributy
Knihovna jazyka C# pomocí atributu MySqlAttribute deklaruje vazby MySQL pro funkci, která má následující vlastnosti:
| Vlastnost atributu | Popis |
|---|---|
CommandText |
Povinný: Název tabulky, do které vazba zapisuje. |
ConnectionStringSetting |
Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec pro databázi, do které se zapisuje data. Tato hodnota není skutečným připojovacím řetězcem a musí se místo toho přeložit na proměnnou prostředí. |
Poznámky
V knihovně modulu runtime funkcí Java použijte poznámku @MySQLOutput k parametrům, jejichž hodnota pochází ze služby Azure Database for MySQL. Tato poznámka podporuje následující prvky:
| Element (Prvek) | Popis |
|---|---|
commandText |
Povinný: Název tabulky, do které vazba zapisuje. |
connectionStringSetting |
Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec pro databázi, do které se zapisuje data. Tato hodnota není skutečným připojovacím řetězcem a musí se místo toho přeložit na proměnnou prostředí. |
name |
Povinný: Jedinečný název vazby funkce. |
Konfigurace
Následující tabulka vysvětluje vlastnosti, které můžete nastavit u objektu options předaného output.generic() metodě:
| Vlastnost | Popis |
|---|---|
commandText |
Povinný: Název tabulky, do které vazba zapisuje. |
connectionStringSetting |
Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec pro databázi, do které se zapisuje data. Tato hodnota není skutečným připojovacím řetězcem a musí se místo toho přeložit na proměnnou prostředí. |
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json:
| Vlastnost | Popis |
|---|---|
type |
Povinný: Musí být nastavena na Mysqlhodnotu . |
direction |
Povinný: Musí být nastavena na outhodnotu . |
name |
Povinný: Název proměnné, která představuje entitu v kódu funkce. |
commandText |
Povinný: Název tabulky, do které vazba zapisuje. |
connectionStringSetting |
Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec pro databázi, do které se zapisuje data. Tato hodnota není skutečným připojovacím řetězcem a musí se místo toho přeložit na proměnnou prostředí. |
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values .
Poznámka:
Výstupní vazba podporuje všechny speciální znaky, včetně znaku dolaru ($), zpětného znaménka ('), spojovníku (-) a podtržítka (_). Další informace najdete v dokumentaci komunity MySQL.
Programovací jazyk může definovat atributy členů, které obsahují speciální znaky, které podporuje. Jazyk C# má například několik omezení pro definování proměnných.
V opačném případě můžete použít JObject výstupní vazbu, která pokrývá všechny speciální znaky. Můžete postupovat podle podrobného příkladu na GitHubu.
Využití
Vlastnost CommandText je název tabulky, ve které jsou uložena data. Název nastavení připojovacího řetězce odpovídá nastavení aplikace, které obsahuje připojovací řetězec ke službě Azure Database for MySQL.
Pokud při spuštění vstupní vazby MySQL dojde k výjimce, kód funkce se nespustí. Výsledkem může být kód chyby, například trigger HTTP, který vrací kód chyby 500.