Bagikan melalui


Pengikatan input Azure Database for MySQL untuk Azure Functions

Saat fungsi berjalan, pengikatan input Azure Database for MySQL mengambil data dari database dan meneruskannya ke parameter input fungsi.

Untuk informasi tentang penyiapan dan konfigurasi, lihat gambaran umum.

Penting

Artikel ini menggunakan tab untuk mendukung beberapa versi model pemrograman Node.js. Model v4 umumnya tersedia dan dirancang untuk memiliki pengalaman yang lebih fleksibel dan intuitif untuk pengembang JavaScript dan TypeScript. Untuk detail selengkapnya tentang cara kerja model v4, lihat panduan pengembang Node.js Azure Functions. Untuk mempelajari selengkapnya tentang perbedaan antara v3 dan v4, lihat panduan migrasi.

Contoh

Anda dapat membuat fungsi C# dengan menggunakan salah satu mode C# berikut:

  • Model pekerja terisolasi: Fungsi C# terkompilasi yang berjalan dalam proses pekerja yang terisolasi dari runtime. Proses pekerja terisolasi diperlukan untuk mendukung fungsi C# yang berjalan pada versi dukungan jangka panjang (LTS) dan non-LTS untuk .NET dan .NET Framework.
  • Model dalam proses: Fungsi C# terkompilasi yang berjalan dalam proses yang sama dengan runtime Azure Functions.
  • Skrip C#: Digunakan terutama saat Anda membuat fungsi C# di portal Azure.

Sampel lainnya untuk pengikatan input Azure Database for MySQL tersedia di repositori GitHub.

Bagian ini berisi contoh-contoh berikut:

Contoh mengacu pada Product kelas dan tabel database yang sesuai:

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

Pemicu HTTP, dapatkan baris menurut ID dari string kueri

Contoh berikut memperlihatkan fungsi C# yang mengambil satu catatan. Fungsi ini dipicu oleh permintaan HTTP yang menggunakan string kueri untuk menentukan ID. ID tersebut digunakan untuk mengambil Product catatan dengan kueri yang ditentukan.

Catatan

Parameter string kueri HTTP peka huruf besar/kecil.

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

Pemicu HTTP, dapatkan beberapa baris dari parameter rute

Contoh berikut menunjukkan fungsi C# yang mengambil baris yang dikembalikan kueri. Fungsi ini dipicu oleh permintaan HTTP yang menggunakan data rute untuk menentukan nilai parameter kueri. Parameter tersebut digunakan untuk memfilter Product catatan dalam kueri yang ditentukan.

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

Pemicu HTTP, hapus baris

Contoh berikut menunjukkan fungsi C# yang menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.

Prosedur DeleteProductsCost tersimpan harus dibuat pada database MySQL. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman, tergantung pada nilai parameter.

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

Sampel lainnya untuk pengikatan input Azure Database for MySQL tersedia di repositori GitHub.

Bagian ini berisi contoh-contoh berikut:

Contoh mengacu pada Product kelas dan tabel database yang sesuai:

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

Pemicu HTTP, dapatkan beberapa baris

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam fungsi Java yang dipicu permintaan HTTP. Pengikatan membaca dari kueri dan mengembalikan hasil dalam respons 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();
    }
}

Pemicu HTTP, dapatkan baris menurut ID dari string kueri

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam fungsi Java yang dipicu permintaan HTTP. Pengikatan dibaca dari kueri yang difilter oleh parameter dari string kueri dan mengembalikan baris dalam respons 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();
    }
}

Pemicu HTTP, hapus baris

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam fungsi Java yang dipicu permintaan HTTP. Pengikatan menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.

Prosedur tersimpan DeleteProductsCost harus dibuat di database. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman, tergantung pada nilai parameter.

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

Sampel lainnya untuk pengikatan input Azure Database for MySQL tersedia di repositori GitHub.

Bagian ini berisi contoh-contoh berikut:

Contoh merujuk ke tabel database:

DROP TABLE IF EXISTS Products;

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

Pemicu HTTP, dapatkan beberapa baris

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL yang dipicu permintaan HTTP. Pengikatan membaca dari kueri dan mengembalikan hasil dalam respons 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
        };
    }
});

Pemicu HTTP, dapatkan baris menurut ID dari string kueri

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL yang dipicu permintaan HTTP. Pengikatan dibaca dari kueri yang difilter oleh parameter dari string kueri dan mengembalikan baris dalam respons 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
        };
    }
});

Pemicu HTTP, hapus baris

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL yang dipicu permintaan HTTP. Pengikatan menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.

Prosedur tersimpan DeleteProductsCost harus dibuat di database. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman, tergantung pada nilai parameter.

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

Sampel lainnya untuk pengikatan input Azure Database for MySQL tersedia di repositori GitHub.

Bagian ini berisi contoh-contoh berikut:

Contoh merujuk ke tabel database:

DROP TABLE IF EXISTS Products;

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

Pemicu HTTP, dapatkan beberapa baris

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam file function.json dan fungsi PowerShell yang dipicu permintaan HTTP. Pengikatan membaca dari kueri dan mengembalikan hasil dalam respons HTTP.

Contoh berikut adalah mengikat data dalam file 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
}

Bagian Konfigurasi menjelaskan properti ini.

Contoh berikut adalah contoh kode PowerShell untuk fungsi dalam file 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
})

Pemicu HTTP, dapatkan baris menurut ID dari string kueri

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam fungsi PowerShell yang dipicu permintaan HTTP. Pengikatan dibaca dari kueri yang difilter oleh parameter dari string kueri dan mengembalikan baris dalam respons HTTP.

Contoh berikut adalah mengikat data dalam file 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
}

Bagian Konfigurasi menjelaskan properti ini.

Contoh berikut adalah contoh kode PowerShell untuk fungsi dalam file 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
})

Pemicu HTTP, hapus baris

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam file function.json dan fungsi PowerShell yang dipicu permintaan HTTP. Pengikatan menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.

Prosedur tersimpan DeleteProductsCost harus dibuat di database. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman, tergantung pada nilai parameter.

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
}

Bagian Konfigurasi menjelaskan properti ini.

Contoh berikut adalah contoh kode PowerShell untuk fungsi dalam file 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
}

Sampel lainnya untuk pengikatan input Azure Database for MySQL tersedia di repositori GitHub.

Bagian ini berisi contoh-contoh berikut:

Contoh merujuk ke tabel database:

DROP TABLE IF EXISTS Products;

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

Catatan

Anda harus menggunakan Azure Functions versi 1.22.0b4 untuk Python.

Pemicu HTTP, dapatkan beberapa baris

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam file function.json dan fungsi Python yang dipicu permintaan HTTP. Pengikatan membaca dari kueri dan mengembalikan hasil dalam respons HTTP.

Contoh berikut adalah contoh kode Python untuk file 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"
    )

Pemicu HTTP, dapatkan baris menurut ID dari string kueri

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam fungsi Python yang dipicu permintaan HTTP. Pengikatan dibaca dari kueri yang difilter oleh parameter dari string kueri dan mengembalikan baris dalam respons HTTP.

Contoh berikut adalah contoh kode Python untuk file 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"
    )

Pemicu HTTP, hapus baris

Contoh berikut menunjukkan pengikatan input Azure Database for MySQL dalam file function.json dan fungsi Python yang dipicu permintaan HTTP. Pengikatan menjalankan prosedur tersimpan dengan input dari parameter kueri permintaan HTTP.

Prosedur tersimpan DeleteProductsCost harus dibuat di database. Dalam contoh ini, prosedur tersimpan menghapus satu rekaman atau semua rekaman, tergantung pada nilai parameter.

DROP PROCEDURE IF EXISTS DeleteProductsCost;

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

Contoh berikut adalah contoh kode Python untuk file 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"
    )

Atribut

Pustaka C# menggunakan MySqlAttribute atribut untuk mendeklarasikan pengikatan MySQL pada fungsi. Atribut memiliki properti berikut:

Properti atribut Deskripsi
CommandText Harus diisi. Perintah kueri MySQL atau nama prosedur tersimpan yang dijalankan pengikatan.
ConnectionStringSetting Harus diisi. Nama pengaturan aplikasi yang berisi string koneksi untuk database tempat kueri atau prosedur tersimpan dijalankan. Nilai ini bukan string koneksi yang sebenarnya dan harus diselesaikan ke nama variabel lingkungan.
CommandType Harus diisi. Nilai CommandType , yang untuk Text kueri dan StoredProcedure untuk prosedur tersimpan.
Parameters Opsional. Nilai parameter nol atau lebih yang diteruskan ke perintah selama eksekusi sebagai string tunggal. Harus mengikuti format @param1=param1,@param2=param2. Nama parameter dan nilai parameter tidak boleh berisi tanda koma (,) atau sama dengan (=).

Anotasi

Di pustaka runtime fungsi Java, gunakan @MySQLInput anotasi pada parameter yang nilainya akan berasal dari Azure Database for MySQL. Anotasi ini mendukung elemen berikut:

Elemen Deskripsi
commandText Harus diisi. Perintah kueri MySQL atau nama prosedur tersimpan yang dijalankan pengikatan.
connectionStringSetting Harus diisi. Nama pengaturan aplikasi yang berisi string koneksi untuk database tempat kueri atau prosedur tersimpan dijalankan. Nilai ini bukan string koneksi yang sebenarnya dan harus diselesaikan ke nama variabel lingkungan.
commandType Harus diisi. Nilai CommandType , yang untuk Text kueri dan StoredProcedure untuk prosedur tersimpan.
name Harus diisi. Nama unik pengikatan fungsi.
parameters Opsional. Nilai parameter nol atau lebih yang diteruskan ke perintah selama eksekusi sebagai string tunggal. Harus mengikuti format @param1=param1,@param2=param2. Nama parameter dan nilai parameter tidak boleh berisi tanda koma (,) atau sama dengan (=).

Konfigurasi

Tabel berikut menjelaskan properti yang bisa Anda atur pada objek yang options diteruskan ke input.generic() metode :

Properti Deskripsi
commandText Harus diisi. Perintah kueri MySQL atau nama prosedur tersimpan yang dijalankan pengikatan.
connectionStringSetting Harus diisi. Nama pengaturan aplikasi yang berisi string koneksi untuk database tempat kueri atau prosedur tersimpan dijalankan. Nilai ini bukan string koneksi yang sebenarnya dan harus diselesaikan ke nama variabel lingkungan. Kata kunci opsional dalam nilai string koneksi tersedia untuk memperbaiki konektivitas pengikatan MySQL.
commandType Harus diisi. Nilai CommandType , yang untuk Text kueri dan StoredProcedure untuk prosedur tersimpan.
parameters Opsional. Nilai parameter nol atau lebih yang diteruskan ke perintah selama eksekusi sebagai string tunggal. Harus mengikuti format @param1=param1,@param2=param2. Nama parameter dan nilai parameter tidak boleh berisi tanda koma (,) atau sama dengan (=).

Konfigurasi

Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda tetapkan dalam file function.json:

Properti Deskripsi
type Harus diisi. Harus diatur ke mysql.
direction Harus diisi. Harus diatur ke in.
name Harus diisi. Nama variabel yang mewakili kueri dalam kode fungsi.
commandText Harus diisi. Perintah kueri MySQL atau nama prosedur tersimpan yang dijalankan pengikatan.
connectionStringSetting Harus diisi. Nama pengaturan aplikasi yang berisi string koneksi untuk database tempat kueri atau prosedur tersimpan dijalankan. Nilai ini bukan string koneksi yang sebenarnya dan harus diselesaikan ke nama variabel lingkungan. Kata kunci opsional dalam nilai string koneksi tersedia untuk memperbaiki konektivitas pengikatan MySQL.
commandType Harus diisi. Nilai CommandType , yang untuk Text kueri dan StoredProcedure untuk prosedur tersimpan.
parameters Opsional. Nilai parameter nol atau lebih yang diteruskan ke perintah selama eksekusi sebagai string tunggal. Harus mengikuti format @param1=param1,@param2=param2. Nama parameter dan nilai parameter tidak boleh berisi tanda koma (,) atau sama dengan (=).

Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values.

Penggunaan

Konstruktor atribut mengambil teks perintah MySQL, jenis perintah, parameter, dan nama pengaturan string koneksi. Perintah bisa menjadi kueri MySQL dengan jenis System.Data.CommandType.Text perintah atau nama prosedur tersimpan dengan jenis System.Data.CommandType.StoredProcedureperintah . Nama pengaturan string koneksi sesuai dengan pengaturan aplikasi (dalam local.settings.json untuk pengembangan lokal) yang berisi string koneksi ke Azure Database for MySQL.

Jika pengecualian terjadi saat pengikatan input Azure Database for MySQL dijalankan, kode fungsi berhenti berjalan. Hasilnya mungkin kode kesalahan, seperti pemicu HTTP yang mengembalikan kode kesalahan 500.