Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
При запуске функции База данных Azure для MySQL входная привязка извлекает данные из базы данных и передает его входным параметру функции.
Сведения о настройке и настройке см. в обзоре.
Внимание
В этой статье используются вкладки для поддержки нескольких версий модели программирования Node.js. Модель версии 4 общедоступна и предназначена для более гибкого и интуитивно понятного интерфейса для разработчиков JavaScript и TypeScript. Дополнительные сведения о том, как работает модель версии 4, см. в руководстве разработчика по Функции Azure Node.js. Дополнительные сведения о различиях между версиями 3 и 4 см. в руководстве по миграции.
Примеры
Вы можете создать функцию C# с помощью одного из следующих режимов C#:
- Изолированная рабочая модель: скомпилированная функция C#, которая выполняется в рабочем процессе, изолированном от среды выполнения. Изолированный рабочий процесс необходим для поддержки функций C#, работающих в долгосрочной поддержке (LTS) и версиях, отличных от LTS для .NET и .NET Framework.
- Модель в процессе: скомпилированная функция C#, которая выполняется в том же процессе, что и среда выполнения Функций Azure.
- Скрипт C#: используется в основном при создании функций C# в портал Azure.
Дополнительные примеры для База данных Azure для MySQL входной привязки доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
- Триггер HTTP, получение строки по идентификатору из строки запроса
- Триггер HTTP, получение нескольких записей из данных маршрута
- Триггер HTTP, удаление записей
Примеры относятся к классу Product и соответствующей таблице базы данных:
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
);
Триггер HTTP, получение строки по идентификатору из строки запроса
В следующем примере показана функция C#, которая получает один документ. Функция активируется HTTP-запросом , использующим строку запроса для указания идентификатора. Этот идентификатор используется для получения Product записи с указанным запросом.
Примечание.
Параметры строки запроса HTTP задаются с учетом регистра.
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;
}
}
}
Триггер HTTP, получение нескольких строк из параметра маршрута
В следующем примере показана функция C# , которая извлекает строки, возвращаемые запросом. Функция активируется HTTP-запросом , использующим данные маршрута для указания значения параметра запроса. Этот параметр используется для фильтрации Product записей в указанном запросе.
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;
}
}
}
Триггер HTTP, удаление записей
В следующем примере показана функция C# , которая выполняет хранимую процедуру с входными данными из параметра запроса HTTP-запроса.
Хранимая процедура DeleteProductsCost должна быть создана в базе данных MySQL. В этом примере хранимая процедура удаляет одну запись или все записи в зависимости от значения параметра.
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);
}
}
}
Дополнительные примеры для База данных Azure для MySQL входной привязки доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
- Триггер HTTP, получение нескольких записей
- Триггер HTTP, получение строки по идентификатору из строки запроса
- Триггер HTTP, удаление записей
Примеры относятся к классу Product и соответствующей таблице базы данных:
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
);
Триггер HTTP, получение нескольких записей
В следующем примере показана входная привязка базы данных Azure для MySQL в функции Java, которая активирует HTTP-запрос. Привязка считывается из запроса и возвращает результаты в ответе 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();
}
}
Триггер HTTP, получение строки по идентификатору из строки запроса
В следующем примере показана входная привязка базы данных Azure для MySQL в функции Java, которая активирует HTTP-запрос. Привязка считывается из запроса, отфильтрованного параметром из строки запроса, и возвращает строку в ответе 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();
}
}
Триггер HTTP, удаление записей
В следующем примере показана входная привязка базы данных Azure для MySQL в функции Java, которая активирует HTTP-запрос. Привязка выполняет хранимую процедуру с входными данными из параметра запроса HTTP-запроса.
Хранимая процедура DeleteProductsCost должна быть создана в базе данных. В этом примере хранимая процедура удаляет одну запись или все записи в зависимости от значения параметра.
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();
}
}
Дополнительные примеры для База данных Azure для MySQL входной привязки доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
- Триггер HTTP, получение нескольких записей
- Триггер HTTP, получение строки по идентификатору из строки запроса
- Триггер HTTP, удаление записей
Примеры относятся к таблице базы данных:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Триггер HTTP, получение нескольких записей
В следующем примере показана входная привязка базы данных Azure для MySQL, которая активирует HTTP-запрос. Привязка считывается из запроса и возвращает результаты в ответе 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
};
}
});
Триггер HTTP, получение строки по идентификатору из строки запроса
В следующем примере показана входная привязка базы данных Azure для MySQL, которая активирует HTTP-запрос. Привязка считывается из запроса, отфильтрованного параметром из строки запроса, и возвращает строку в ответе 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
};
}
});
Триггер HTTP, удаление записей
В следующем примере показана входная привязка базы данных Azure для MySQL, которая активирует HTTP-запрос. Привязка выполняет хранимую процедуру с входными данными из параметра запроса HTTP-запроса.
Хранимая процедура DeleteProductsCost должна быть создана в базе данных. В этом примере хранимая процедура удаляет одну запись или все записи в зависимости от значения параметра.
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
};
}
});
Дополнительные примеры для База данных Azure для MySQL входной привязки доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
- Триггер HTTP, получение нескольких записей
- Триггер HTTP, получение строки по идентификатору из строки запроса
- Триггер HTTP, удаление записей
Примеры относятся к таблице базы данных:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Триггер HTTP, получение нескольких записей
В следующем примере показана входная привязка базы данных Azure для MySQL в файле function.json и функция PowerShell, которая активирует HTTP-запрос. Привязка считывается из запроса и возвращает результаты в ответе HTTP.
В следующем примере приведены данные привязки в файле 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
}
В разделе "Конфигурация" описаны эти свойства.
Ниже приведен пример кода PowerShell для функции в файле 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
})
Триггер HTTP, получение строки по идентификатору из строки запроса
В следующем примере показана входная привязка базы данных Azure для MySQL в функции PowerShell, которая активирует HTTP-запрос. Привязка считывается из запроса, отфильтрованного параметром из строки запроса, и возвращает строку в ответе HTTP.
В следующем примере приведены данные привязки в файле 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
}
В разделе "Конфигурация" описаны эти свойства.
Ниже приведен пример кода PowerShell для функции в файле 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
})
Триггер HTTP, удаление записей
В следующем примере показана входная привязка базы данных Azure для MySQL в файле function.json и функция PowerShell, которая активирует HTTP-запрос. Привязка выполняет хранимую процедуру с входными данными из параметра запроса HTTP-запроса.
Хранимая процедура DeleteProductsCost должна быть создана в базе данных. В этом примере хранимая процедура удаляет одну запись или все записи в зависимости от значения параметра.
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
}
В разделе "Конфигурация" описаны эти свойства.
Ниже приведен пример кода PowerShell для функции в файле 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
}
Дополнительные примеры для База данных Azure для MySQL входной привязки доступны в репозитории GitHub.
Этот раздел содержит следующие примеры.
- Триггер HTTP, получение нескольких записей
- Триггер HTTP, получение строки по идентификатору из строки запроса
- Триггер HTTP, удаление записей
Примеры относятся к таблице базы данных:
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
Примечание.
Для Python необходимо использовать функции Azure версии 1.22.0b4.
Триггер HTTP, получение нескольких записей
В следующем примере показана входная привязка Базы данных Azure для MySQL в файле function.json и функции Python, которая активирует HTTP-запрос. Привязка считывается из запроса и возвращает результаты в ответе HTTP.
Ниже приведен пример кода Python для файла 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"
)
Триггер HTTP, получение строки по идентификатору из строки запроса
В следующем примере показана входная привязка базы данных Azure для MySQL в функции Python, которая активирует HTTP-запрос. Привязка считывается из запроса, отфильтрованного параметром из строки запроса, и возвращает строку в ответе HTTP.
Ниже приведен пример кода Python для файла 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"
)
Триггер HTTP, удаление записей
В следующем примере показана входная привязка Базы данных Azure для MySQL в файле function.json и функции Python, которая активирует HTTP-запрос. Привязка выполняет хранимую процедуру с входными данными из параметра запроса HTTP-запроса.
Хранимая процедура DeleteProductsCost должна быть создана в базе данных. В этом примере хранимая процедура удаляет одну запись или все записи в зависимости от значения параметра.
DROP PROCEDURE IF EXISTS DeleteProductsCost;
Create Procedure DeleteProductsCost(cost INT)
BEGIN
DELETE from Products where Products.cost = cost;
END
Ниже приведен пример кода Python для файла 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"
)
Атрибуты
Библиотека C# использует MySqlAttribute атрибут для объявления привязок MySQL в функции. Атрибут имеет следующие свойства:
| Свойство атрибута | Описание |
|---|---|
CommandText |
Обязательный. Команда запроса MySQL или имя хранимой процедуры, выполняемой привязкой. |
ConnectionStringSetting |
Обязательный. Имя параметра приложения, содержащего строку подключения для базы данных, с которой выполняется запрос или хранимая процедура. Это значение не является фактической строкой подключения и вместо этого должно разрешиться в имя переменной среды. |
CommandType |
Обязательный.
CommandType Значение, которое предназначено Text для запроса и StoredProcedure хранимой процедуры. |
Parameters |
Необязательно. Ноль или больше значений параметров, передаваемых команде во время выполнения в виде одной строки. Должно соответствовать формату @param1=param1,@param2=param2. Имя параметра и значение параметра не могут содержать запятую (,) или знак равенства (=). |
Заметки
В библиотеке среды выполнения функций Java используйте заметку @MySQLInput о параметрах, значения которых будут поступать из Базы данных Azure для MySQL. Эта заметка поддерживает следующие элементы:
| Элемент | Описание |
|---|---|
commandText |
Обязательный. Команда запроса MySQL или имя хранимой процедуры, выполняемой привязкой. |
connectionStringSetting |
Обязательный. Имя параметра приложения, содержащего строку подключения для базы данных, с которой выполняется запрос или хранимая процедура. Это значение не является фактической строкой подключения и вместо этого должно разрешиться в имя переменной среды. |
commandType |
Обязательный.
CommandType Значение, которое предназначено Text для запроса и StoredProcedure хранимой процедуры. |
name |
Обязательный. Уникальное имя привязки функции. |
parameters |
Необязательно. Ноль или больше значений параметров, передаваемых команде во время выполнения в виде одной строки. Должно соответствовать формату @param1=param1,@param2=param2. Имя параметра и значение параметра не могут содержать запятую (,) или знак равенства (=). |
Настройка
В следующей таблице описываются свойства, которые можно задать для объекта, переданного options методу input.generic() :
| Свойство | Описание |
|---|---|
commandText |
Обязательный. Команда запроса MySQL или имя хранимой процедуры, выполняемой привязкой. |
connectionStringSetting |
Обязательный. Имя параметра приложения, содержащего строку подключения для базы данных, с которой выполняется запрос или хранимая процедура. Это значение не является фактической строкой подключения и вместо этого должно разрешиться в имя переменной среды. Необязательные ключевые слова в значении строка подключения доступны для уточнения подключения к привязкам MySQL. |
commandType |
Обязательный.
CommandType Значение, которое предназначено Text для запроса и StoredProcedure хранимой процедуры. |
parameters |
Необязательно. Ноль или больше значений параметров, передаваемых команде во время выполнения в виде одной строки. Должно соответствовать формату @param1=param1,@param2=param2. Имя параметра и значение параметра не могут содержать запятую (,) или знак равенства (=). |
Настройка
В следующей таблице описываются свойства конфигурации привязки, заданные в файле function.json:
| Свойство | Описание |
|---|---|
type |
Обязательный. Должен иметь значениеmysql. |
direction |
Обязательный. Должен иметь значениеin. |
name |
Обязательный. Имя переменной, представляющей результаты запроса в коде функции. |
commandText |
Обязательный. Команда запроса MySQL или имя хранимой процедуры, выполняемой привязкой. |
connectionStringSetting |
Обязательный. Имя параметра приложения, содержащего строку подключения для базы данных, с которой выполняется запрос или хранимая процедура. Это значение не является фактической строкой подключения и вместо этого должно разрешиться в имя переменной среды. Необязательные ключевые слова в значении строка подключения доступны для уточнения подключения к привязкам MySQL. |
commandType |
Обязательный.
CommandType Значение, которое предназначено Text для запроса и StoredProcedure хранимой процедуры. |
parameters |
Необязательно. Ноль или больше значений параметров, передаваемых команде во время выполнения в виде одной строки. Должно соответствовать формату @param1=param1,@param2=param2. Имя параметра и значение параметра не могут содержать запятую (,) или знак равенства (=). |
Если разработка ведется на локальном компьютере, добавьте параметры приложения в файл local.settings.json в коллекции Values.
Использование
Конструктор атрибута принимает текст команды MySQL, тип команды, параметры и имя параметра строки подключения. Команда может быть запросом MySQL с типом System.Data.CommandType.Text команды или именем хранимой процедуры с типом System.Data.CommandType.StoredProcedureкоманды. Имя параметра строки подключения соответствует параметру приложения (в local.settings.json для локальной разработки), который содержит строку подключения к Базе данных Azure для MySQL.
Если исключение возникает при выполнении входной привязки базы данных Azure для MySQL, код функции перестает выполняться. Результатом может быть код ошибки, например триггер HTTP, возвращающий код ошибки 500.