함수가 실행되면 Azure Database for MySQL 입력 바인딩은 데이터베이스에서 데이터를 검색하여 함수의 입력 매개 변수에 전달합니다.
설정 및 구성에 대한 자세한 내용은 개요를 참조하세요.
중요합니다
이 문서에서는 탭을 사용하여 여러 버전의 Node.js 프로그래밍 모델을 지원합니다. v4 모델은 일반적으로 사용 가능하며 JavaScript 및 TypeScript 개발자를 위해 보다 유연하고 직관적인 환경을 제공하도록 설계되었습니다. v4 모델의 작동 방식에 대한 자세한 내용은 Azure Functions Node.js 개발자 가이드를 참조하세요. v3과 v4의 차이점에 대해 자세히 알아보려면 마이그레이션 가이드를 참조하세요.
예제
다음 C# 모드 중 하나를 사용하여 C# 함수를 만들 수 있습니다.
- 격리된 작업자 모델: 런타임에서 격리된 작업자 프로세스에서 실행되는 컴파일된 C# 함수입니다. .NET 및 .NET Framework용 LTS(장기 지원) 및 비 LTS 버전에서 실행되는 C# 함수를 지원하려면 격리된 작업자 프로세스가 필요합니다.
- In-process 모델: Azure Functions 런타임과 동일한 프로세스에서 실행되는 컴파일된 C# 함수입니다.
- C# 스크립트: Azure Portal에서 C# 함수를 만들 때 주로 사용됩니다.
Azure Database for MySQL 입력 바인딩에 대한 추가 샘플은 GitHub 리포지토리에서 사용할 수 있습니다.
이 섹션에는 다음 예제가 포함되어 있습니다.
예는 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 트리거, 쿼리 문자열에서 ID로 행 가져오기
다음 예는 단일 레코드를 검색하는 C# 함수를 보여 줍니다. 함수는 쿼리 문자열을 사용하여 ID를 지정하는 HTTP 요청에 의해 트리거됩니다. 해당 ID는 지정된 쿼리로 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 트리거, 행 삭제
다음 예제에서는 HTTP 요청의 쿼리 매개 변수에서 입력된 저장 프로시저를 실행하는 C# 함수 를 보여 줍니다.
MySQL 데이터베이스에 저장 프로시저 DeleteProductsCost
를 만들어야 합니다. 이 예제에서 저장 프로시저는 매개 변수 값에 따라 단일 레코드 또는 모든 레코드를 삭제합니다.
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 Database for MySQL 입력 바인딩에 대한 추가 샘플은 GitHub 리포지토리에서 사용할 수 있습니다.
이 섹션에는 다음 예제가 포함되어 있습니다.
예는 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 트리거, 여러 행 가져오기
다음 예제에서는 HTTP 요청이 트리거하는 Java 함수의 Azure Database for MySQL 입력 바인딩을 보여 줍니다. 바인딩은 쿼리에서 읽고 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 트리거, 쿼리 문자열에서 ID로 행 가져오기
다음 예제에서는 HTTP 요청이 트리거하는 Java 함수의 Azure Database for MySQL 입력 바인딩을 보여 줍니다. 바인딩은 쿼리 문자열에서 매개 변수로 필터링된 쿼리에서 읽고 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 트리거, 행 삭제
다음 예제에서는 HTTP 요청이 트리거하는 Java 함수의 Azure Database for MySQL 입력 바인딩을 보여 줍니다. 바인딩은 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 Database for MySQL 입력 바인딩에 대한 추가 샘플은 GitHub 리포지토리에서 사용할 수 있습니다.
이 섹션에는 다음 예제가 포함되어 있습니다.
예제는 데이터베이스 테이블을 참조하세요.
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
HTTP 트리거, 여러 행 가져오기
다음 예제에서는 HTTP 요청이 트리거하는 Azure Database for MySQL 입력 바인딩 을 보여 줍니다. 바인딩은 쿼리에서 읽고 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 트리거, 쿼리 문자열에서 ID로 행 가져오기
다음 예제에서는 HTTP 요청이 트리거하는 Azure Database for MySQL 입력 바인딩 을 보여 줍니다. 바인딩은 쿼리 문자열에서 매개 변수로 필터링된 쿼리에서 읽고 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 트리거, 행 삭제
다음 예제에서는 HTTP 요청이 트리거하는 Azure Database for MySQL 입력 바인딩 을 보여 줍니다. 바인딩은 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 Database for MySQL 입력 바인딩에 대한 추가 샘플은 GitHub 리포지토리에서 사용할 수 있습니다.
이 섹션에는 다음 예제가 포함되어 있습니다.
예제는 데이터베이스 테이블을 참조하세요.
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
HTTP 트리거, 여러 행 가져오기
다음 예제에서는 function.json 파일의 Azure Database for MySQL 입력 바인딩 및 HTTP 요청이 트리거하는 PowerShell 함수 를 보여 줍니다. 바인딩은 쿼리에서 읽고 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
}
구성 섹션에서는 이러한 속성에 대해 설명합니다.
다음 예제는 run.ps1 파일의 함수에 대한 샘플 PowerShell 코드입니다.
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 트리거, 쿼리 문자열에서 ID로 행 가져오기
다음 예제에서는 HTTP 요청이 트리거하는 PowerShell 함수의 Azure Database for MySQL 입력 바인딩을 보여 줍니다. 바인딩은 쿼리 문자열에서 매개 변수로 필터링된 쿼리에서 읽고 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
}
구성 섹션에서는 이러한 속성에 대해 설명합니다.
다음 예제는 run.ps1 파일의 함수에 대한 샘플 PowerShell 코드입니다.
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 트리거, 행 삭제
다음 예제에서는 function.json 파일의 Azure Database for MySQL 입력 바인딩 및 HTTP 요청이 트리거하는 PowerShell 함수 를 보여 줍니다. 바인딩은 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
}
구성 섹션에서는 이러한 속성에 대해 설명합니다.
다음 예제는 run.ps1 파일의 함수에 대한 샘플 PowerShell 코드입니다.
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 Database for MySQL 입력 바인딩에 대한 추가 샘플은 GitHub 리포지토리에서 사용할 수 있습니다.
이 섹션에는 다음 예제가 포함되어 있습니다.
예제는 데이터베이스 테이블을 참조하세요.
DROP TABLE IF EXISTS Products;
CREATE TABLE Products (
ProductId int PRIMARY KEY,
Name varchar(100) NULL,
Cost int NULL
);
참고 항목
Python용 Azure Functions 버전 1.22.0b4를 사용해야 합니다.
HTTP 트리거, 여러 행 가져오기
다음 예제에서는 function.json 파일의 Azure Database for MySQL 입력 바인딩 및 HTTP 요청이 트리거하는 Python 함수 를 보여 줍니다. 바인딩은 쿼리에서 읽고 HTTP 응답의 결과를 반환합니다.
다음 예제는 function_app.py 파일에 대한 샘플 Python 코드입니다.
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 트리거, 쿼리 문자열에서 ID로 행 가져오기
다음 예제에서는 HTTP 요청이 트리거하는 Python 함수의 Azure Database for MySQL 입력 바인딩 을 보여 줍니다. 바인딩은 쿼리 문자열에서 매개 변수로 필터링된 쿼리에서 읽고 HTTP 응답의 행을 반환합니다.
다음 예제는 function_app.py 파일에 대한 샘플 Python 코드입니다.
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 트리거, 행 삭제
다음 예제에서는 function.json 파일의 Azure Database for MySQL 입력 바인딩 및 HTTP 요청이 트리거하는 Python 함수 를 보여 줍니다. 바인딩은 HTTP 요청의 쿼리 매개 변수에서 입력된 저장 프로시저를 실행합니다.
저장 프로시저 DeleteProductsCost
는 데이터베이스에 생성되어야 합니다. 이 예제에서 저장 프로시저는 매개 변수 값에 따라 단일 레코드 또는 모든 레코드를 삭제합니다.
DROP PROCEDURE IF EXISTS DeleteProductsCost;
Create Procedure DeleteProductsCost(cost INT)
BEGIN
DELETE from Products where Products.cost = cost;
END
다음 예제는 function_app.py 파일에 대한 샘플 Python 코드입니다.
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 |
선택 사항. 단일 문자열로 실행하는 동안 명령에 전달된 매개 변수 값이 0개 이상입니다.
@param1=param1,@param2=param2 형식을 따라야 합니다. 매개 변수 이름 및 매개 변수 값은 쉼표() 또는 등호(, = )를 포함할 수 없습니다. |
주석
Java 함수 런타임 라이브러리에서 값이 Azure Database for MySQL에서 제공되는 매개 변수에 주석을 사용합니다@MySQLInput
. 이 주석은 다음 요소를 지원합니다.
요소 | 설명 |
---|---|
commandText |
필수입니다. 바인딩이 실행되는 저장 프로시저의 MySQL 쿼리 명령 또는 이름입니다. |
connectionStringSetting |
필수입니다. 쿼리 또는 저장 프로시저가 실행되는 데이터베이스에 대한 연결 문자열을 포함하는 앱 설정의 이름입니다. 이 값은 실제 연결 문자열이 아니며 대신 환경 변수 이름으로 확인되어야 합니다. |
commandType |
필수입니다.
CommandType 쿼리 및 Text 저장 프로시저에 대한 값입니다StoredProcedure . |
name |
필수입니다. 함수 바인딩의 고유한 이름입니다. |
parameters |
선택 사항. 단일 문자열로 실행하는 동안 명령에 전달된 매개 변수 값이 0개 이상입니다.
@param1=param1,@param2=param2 형식을 따라야 합니다. 매개 변수 이름 및 매개 변수 값은 쉼표() 또는 등호(, = )를 포함할 수 없습니다. |
구성
다음 표에서는 메서드에 전달된 options
개체에 설정할 수 있는 input.generic()
속성을 설명합니다.
속성 | 설명 |
---|---|
commandText |
필수입니다. 바인딩이 실행되는 저장 프로시저의 MySQL 쿼리 명령 또는 이름입니다. |
connectionStringSetting |
필수입니다. 쿼리 또는 저장 프로시저가 실행되는 데이터베이스에 대한 연결 문자열을 포함하는 앱 설정의 이름입니다. 이 값은 실제 연결 문자열이 아니며 대신 환경 변수 이름으로 확인되어야 합니다. 연결 문자열 값의 선택적 키워드는 MySQL 바인딩 연결을 구체화하는 데 사용할 수 있습니다. |
commandType |
필수입니다.
CommandType 쿼리 및 Text 저장 프로시저에 대한 값입니다StoredProcedure . |
parameters |
선택 사항. 단일 문자열로 실행하는 동안 명령에 전달된 매개 변수 값이 0개 이상입니다.
@param1=param1,@param2=param2 형식을 따라야 합니다. 매개 변수 이름 및 매개 변수 값은 쉼표() 또는 등호(, = )를 포함할 수 없습니다. |
구성
다음 표에서는 function.json 파일에 설정한 바인딩 구성 속성에 대해 설명합니다.
속성 | 설명 |
---|---|
type |
필수입니다.
mysql 로 설정해야 합니다. |
direction |
필수입니다.
in 로 설정해야 합니다. |
name |
필수입니다. 함수 코드에서 쿼리 결과를 나타내는 변수의 이름입니다. |
commandText |
필수입니다. 바인딩이 실행되는 저장 프로시저의 MySQL 쿼리 명령 또는 이름입니다. |
connectionStringSetting |
필수입니다. 쿼리 또는 저장 프로시저가 실행되는 데이터베이스에 대한 연결 문자열을 포함하는 앱 설정의 이름입니다. 이 값은 실제 연결 문자열이 아니며 대신 환경 변수 이름으로 확인되어야 합니다. 연결 문자열 값의 선택적 키워드는 MySQL 바인딩 연결을 구체화하는 데 사용할 수 있습니다. |
commandType |
필수입니다.
CommandType 쿼리 및 Text 저장 프로시저에 대한 값입니다StoredProcedure . |
parameters |
선택 사항. 단일 문자열로 실행하는 동안 명령에 전달된 매개 변수 값이 0개 이상입니다.
@param1=param1,@param2=param2 형식을 따라야 합니다. 매개 변수 이름 및 매개 변수 값은 쉼표() 또는 등호(, = )를 포함할 수 없습니다. |
로컬에서 개발하는 경우 컬렉션의 Values
에 애플리케이션 설정을 추가합니다.
사용
특성의 생성자는 MySQL 명령 텍스트, 명령 유형, 매개 변수 및 연결 문자열 설정의 이름을 사용합니다. 명령은 명령 형식이 있는 MySQL 쿼리이거나 명령 유형 System.Data.CommandType.Text
이 있는 저장 프로시저 이름이 될 수 있습니다 System.Data.CommandType.StoredProcedure
. 연결 문자열 설정의 이름은 Azure Database for MySQL에 대한 연결 문자열 을 포함하는 애플리케이션 설정(로컬 개발용 local.settings.json)에 해당합니다.
Azure Database for MySQL 입력 바인딩이 실행될 때 예외가 발생하면 함수 코드의 실행이 중지됩니다. 결과는 500 오류 코드를 반환하는 HTTP 트리거와 같은 오류 코드일 수 있습니다.