Sdílet prostřednictvím


Vstupní vazba Azure Database for MySQL pro Azure Functions

Při spuštění funkce vstupní vazba Azure Database for MySQL načte data z databáze a předá ji vstupnímu parametru funkce.

Informace o nastavení a konfiguraci najdete v přehledu.

Důležité

Tento článek používá karty pro podporu více verzí programovacího modelu Node.js. Model v4 je obecně dostupný a je navržený tak, aby měl flexibilnější a intuitivnější prostředí pro vývojáře v JavaScriptu a TypeScriptu. Další podrobnosti o tom, jak model v4 funguje, najdete v příručce pro vývojáře služby Azure Functions Node.js. Další informace o rozdílech mezi v3 a v4 najdete v průvodci migrací.

Příklady

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.

Další ukázky vstupní vazby Azure Database for MySQL jsou k dispozici v úložišti GitHub.

Tato část obsahuje následující příklady:

Příklady odkazují 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ískání řádku podle ID z řetězce dotazu

Následující příklad ukazuje funkci jazyka C#, která načte jeden záznam. Funkce se aktivuje požadavkem HTTP, který k zadání ID používá řetězec dotazu. Toto ID se používá k načtení záznamu Product se zadaným dotazem.

Poznámka:

Parametr řetězce dotazu HTTP rozlišují malá a velká písmena.

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;
        }
    }
}

Trigger HTTP, získání více řádků z parametru trasy

Následující příklad ukazuje funkci jazyka C# , která načte řádky, které vrátil dotaz. Funkce se aktivuje požadavkem HTTP, který používá směrovací data k určení hodnoty parametru dotazu. Tento parametr slouží k filtrování Product záznamů v zadaném dotazu.

using System.Collections.Generic;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.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;
        }
    }
}

Trigger HTTP, odstranění řádků

Následující příklad ukazuje funkci jazyka C# , která spouští uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.

Uložená procedura DeleteProductsCost musí být vytvořena v databázi MySQL. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.

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);
        }
    }
}

Další ukázky vstupní vazby Azure Database for MySQL jsou k dispozici v úložišti GitHub.

Tato část obsahuje následující příklady:

Příklady odkazují 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() {
    }
DROP TABLE IF EXISTS Products;

CREATE TABLE Products (
  ProductId int PRIMARY KEY,
  Name varchar(100) NULL,
  Cost int NULL
);

Trigger HTTP, získání více řádků

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL ve funkci Java, kterou aktivuje požadavek HTTP. Vazba se načte z dotazu a vrátí výsledky v odpovědi 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();
    }
}

Trigger HTTP, získání řádku podle ID z řetězce dotazu

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL ve funkci Java, kterou aktivuje požadavek HTTP. Vazba čte z dotazu filtrovaného parametrem z řetězce dotazu a vrátí řádek v odpovědi 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();
    }
}

Trigger HTTP, odstranění řádků

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL ve funkci Java, kterou aktivuje požadavek HTTP. Vazba spustí uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.

Uložená procedura DeleteProductsCost musí být vytvořena v databázi. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.

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();
    }
}

Další ukázky vstupní vazby Azure Database for MySQL jsou k dispozici v úložišti GitHub.

Tato část obsahuje následující příklady:

Příklady odkazují 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ískání více řádků

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL, kterou aktivuje požadavek HTTP. Vazba se načte z dotazu a vrátí výsledky v odpovědi 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
        };
    }
});

Trigger HTTP, získání řádku podle ID z řetězce dotazu

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL, kterou aktivuje požadavek HTTP. Vazba čte z dotazu filtrovaného parametrem z řetězce dotazu a vrátí řádek v odpovědi 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
        };
    }
});

Trigger HTTP, odstranění řádků

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL, kterou aktivuje požadavek HTTP. Vazba spustí uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.

Uložená procedura DeleteProductsCost musí být vytvořena v databázi. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.

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
        };
    }
});

Další ukázky vstupní vazby Azure Database for MySQL jsou k dispozici v úložišti GitHub.

Tato část obsahuje následující příklady:

Příklady odkazují 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ískání více řádků

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL v souboru function.json a funkci PowerShellu, kterou aktivuje požadavek HTTP. Vazba se načte z dotazu a vrátí výsledky v odpovědi HTTP.

Následující příklad je svázání dat v souboru 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
}

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

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
})

Trigger HTTP, získání řádku podle ID z řetězce dotazu

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL ve funkci PowerShellu, kterou aktivuje požadavek HTTP. Vazba čte z dotazu filtrovaného parametrem z řetězce dotazu a vrátí řádek v odpovědi HTTP.

Následující příklad je svázání dat v souboru 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
}

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

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
})

Trigger HTTP, odstranění řádků

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL v souboru function.json a funkci PowerShellu, kterou aktivuje požadavek HTTP. Vazba spustí uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.

Uložená procedura DeleteProductsCost musí být vytvořena v databázi. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.

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
}

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

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
}

Další ukázky vstupní vazby Azure Database for MySQL jsou k dispozici v úložišti GitHub.

Tato část obsahuje následující příklady:

Příklady odkazují 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ískání více řádků

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL v souboru function.json a funkci Pythonu, kterou aktivuje požadavek HTTP. Vazba se načte z dotazu a vrátí výsledky v odpovědi HTTP.

Následující příklad je ukázkový kód Pythonu pro soubor 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"
    )

Trigger HTTP, získání řádku podle ID z řetězce dotazu

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL ve funkci Pythonu, kterou aktivuje požadavek HTTP. Vazba čte z dotazu filtrovaného parametrem z řetězce dotazu a vrátí řádek v odpovědi HTTP.

Následující příklad je ukázkový kód Pythonu pro soubor 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"
    )

Trigger HTTP, odstranění řádků

Následující příklad ukazuje vstupní vazbu Azure Database for MySQL v souboru function.json a funkci Pythonu, kterou aktivuje požadavek HTTP. Vazba spustí uloženou proceduru se vstupem z parametru dotazu požadavku HTTP.

Uložená procedura DeleteProductsCost musí být vytvořena v databázi. V tomto příkladu uložená procedura odstraní jeden záznam nebo všechny záznamy v závislosti na hodnotě parametru.

DROP PROCEDURE IF EXISTS DeleteProductsCost;

Create Procedure DeleteProductsCost(cost INT)
BEGIN
  DELETE from Products where Products.cost = cost;
END

Následující příklad je ukázkový kód Pythonu pro soubor 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"
    )

Atributy

Knihovna jazyka C# pomocí atributu MySqlAttribute deklaruje vazby MySQL pro funkci. Atribut má následující vlastnosti:

Vlastnost atributu Popis
CommandText Povinný: Příkaz dotazu MySQL nebo název uložené procedury, kterou vazba provede.
ConnectionStringSetting Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec pro databázi, na které se dotaz nebo uložená procedura provádí. Tato hodnota není skutečným připojovací řetězec a musí se místo toho přeložit na název proměnné prostředí.
CommandType Povinný: Hodnota CommandType , která je Text určená pro dotaz a StoredProcedure uloženou proceduru.
Parameters Nepovinné. Nula nebo více hodnot parametrů předaných příkazu během provádění jako jeden řetězec. Musí dodržovat formát @param1=param1,@param2=param2. Název parametru a hodnota parametru nemohou obsahovat čárku (,) nebo rovnítko (=).

Poznámky

V knihovně modulu runtime funkcí Java použijte poznámku @MySQLInput k parametrům, jejichž hodnoty pocházejí ze služby Azure Database for MySQL. Tato poznámka podporuje následující prvky:

Element (Prvek) Popis
commandText Povinný: Příkaz dotazu MySQL nebo název uložené procedury, kterou vazba provede.
connectionStringSetting Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec pro databázi, na které se dotaz nebo uložená procedura provádí. Tato hodnota není skutečným připojovací řetězec a musí se místo toho přeložit na název proměnné prostředí.
commandType Povinný: Hodnota CommandType , která je Text určená pro dotaz a StoredProcedure uloženou proceduru.
name Povinný: Jedinečný název vazby funkce.
parameters Nepovinné. Nula nebo více hodnot parametrů předaných příkazu během provádění jako jeden řetězec. Musí dodržovat formát @param1=param1,@param2=param2. Název parametru a hodnota parametru nemohou obsahovat čárku (,) nebo rovnítko (=).

Konfigurace

Následující tabulka vysvětluje vlastnosti, které můžete nastavit u objektu options předaného input.generic() metodě:

Vlastnost Popis
commandText Povinný: Příkaz dotazu MySQL nebo název uložené procedury, kterou vazba provede.
connectionStringSetting Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec pro databázi, na které se dotaz nebo uložená procedura provádí. Tato hodnota není skutečným připojovací řetězec a musí se místo toho přeložit na název proměnné prostředí. Volitelná klíčová slova v hodnotě připojovací řetězec jsou k dispozici pro upřesnění připojení vazeb MySQL.
commandType Povinný: Hodnota CommandType , která je Text určená pro dotaz a StoredProcedure uloženou proceduru.
parameters Nepovinné. Nula nebo více hodnot parametrů předaných příkazu během provádění jako jeden řetězec. Musí dodržovat formát @param1=param1,@param2=param2. Název parametru a hodnota parametru nemohou obsahovat čárku (,) nebo rovnítko (=).

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 inhodnotu .
name Povinný: Název proměnné, která představuje výsledek dotazu v kódu funkce.
commandText Povinný: Příkaz dotazu MySQL nebo název uložené procedury, kterou vazba provede.
connectionStringSetting Povinný: Název nastavení aplikace, které obsahuje připojovací řetězec pro databázi, na které se dotaz nebo uložená procedura provádí. Tato hodnota není skutečným připojovací řetězec a musí se místo toho přeložit na název proměnné prostředí. Volitelná klíčová slova v hodnotě připojovací řetězec jsou k dispozici pro upřesnění připojení vazeb MySQL.
commandType Povinný: Hodnota CommandType , která je Text určená pro dotaz a StoredProcedure uloženou proceduru.
parameters Nepovinné. Nula nebo více hodnot parametrů předaných příkazu během provádění jako jeden řetězec. Musí dodržovat formát @param1=param1,@param2=param2. Název parametru a hodnota parametru nemohou obsahovat čárku (,) nebo rovnítko (=).

Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values .

Využití

Konstruktor atributu přebírá text příkazu MySQL, typ příkazu, parametry a název nastavení připojovacího řetězce. Příkazem může být dotaz MySQL s typem System.Data.CommandType.Text příkazu nebo názvem uložené procedury s typem System.Data.CommandType.StoredProcedurepříkazu . Název nastavení připojovacího řetězce odpovídá nastavení aplikace (v local.settings.json pro místní vývoj), které obsahuje připojovací řetězec ke službě Azure Database for MySQL.

Pokud při spuštění vstupní vazby Azure Database for MySQL dojde k výjimce, kód funkce se zastaví. Výsledkem může být kód chyby, například trigger HTTP, který vrací kód chyby 500.