Menyambungkan fungsi ke layanan Azure menggunakan pengikatan

Saat Anda membuat fungsi, kode pemicu khusus bahasa ditambahkan di project Anda dari sekumpulan templat pemicu. Jika Anda ingin menyambungkan fungsi Anda ke layanan lain dengan menggunakan pengikatan input atau output, Anda harus menambahkan definisi pengikatan tertentu dalam fungsi Anda. Untuk mempelajari selengkapnya tentang pengikatan, lihat konsep pemicu dan pengikatan Azure Functions.

Pengembangan lokal

Saat Mengembangkan fungsi secara lokal, Anda perlu memperbarui kode fungsi untuk menambahkan pengikatan. Untuk bahasa yang menggunakan function.json, Visual Studio Code menyediakan alat untuk menambahkan pengikatan ke fungsi.

Menambahkan pengikatan secara manual berdasarkan contoh

Saat menambahkan pengikatan ke fungsi yang ada, Anda perlu menambahkan atribut khusus pengikatan ke definisi fungsi dalam kode.

Saat menambahkan pengikatan ke fungsi yang ada, Anda perlu menambahkan anotasi khusus pengikatan ke definisi fungsi dalam kode.

Saat menambahkan pengikatan ke fungsi yang ada, Anda perlu memperbarui kode fungsi dan menambahkan definisi ke file konfigurasi function.json.

Saat menambahkan pengikatan ke fungsi yang ada, Anda perlu memperbarui definisi fungsi, tergantung pada model Anda:

Anda perlu menambahkan anotasi khusus pengikatan ke definisi fungsi dalam kode.

Contoh berikut menunjukkan definisi fungsi setelah menambahkan pengikatan output Queue Storage ke fungsi pemicu HTTP:

Karena fungsi yang dipicu HTTP juga mengembalikan respons HTTP, fungsi mengembalikan objek MultiResponse, yang mewakili output dari HTTP dan antrean.

[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)

Contoh ini adalah definisi MultiResponse objek yang mencakup pengikatan output:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

Contoh ini menggunakan integrasi ASP.NET Core. Jika Anda tidak menggunakan integrasi ASP.NET Core, Anda perlu mengubah HttpRequest ke HttpRequestData dan IActionResult menjadi HttpResponseData.

Pesan dikirim ke antrean saat fungsi selesai. Cara Anda menentukan pengikatan output tergantung pada model proses Anda. Untuk informasi selengkapnya, termasuk tautan ke contoh kode pengikatan yang dapat Anda rujuk, lihat Menambahkan pengikatan ke fungsi.

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Untuk informasi selengkapnya, termasuk tautan ke contoh kode pengikatan yang dapat Anda rujuk, lihat Menambahkan pengikatan ke fungsi.

const { app, output } = require('@azure/functions');

const sendToQueue = output.storageQueue({
  queueName: 'outqueue',
  connection: 'AzureWebJobsStorage',
});

app.http('HttpExample', {
  methods: ['GET', 'POST'],
  authLevel: 'anonymous',
  extraOutputs: [sendToQueue],
  handler: async (request, context) => {
    try {
      context.log(`Http function processed request for url "${request.url}"`);

      const name = request.query.get('name') || (await request.text());
      context.log(`Name: ${name}`);

      if (name) {
        const msg = `Name passed to the function ${name}`;
        context.extraOutputs.set(sendToQueue, [msg]);
        return { body: msg };
      } else {
        context.log('Missing required data');
        return { status: 404, body: 'Missing required data' };
      }
    } catch (error) {
      context.log(`Error: ${error}`);
      return { status: 500, body: 'Internal Server Error' };
    }
  },
});

Cara Anda menentukan pengikatan output tergantung pada versi model Node.js Anda. Untuk informasi selengkapnya, termasuk tautan ke contoh kode pengikatan yang dapat Anda rujuk, lihat Menambahkan pengikatan ke fungsi.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Untuk informasi selengkapnya, termasuk tautan ke contoh kode pengikatan yang dapat Anda rujuk, lihat Menambahkan pengikatan ke fungsi.

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

Cara Anda menentukan pengikatan output tergantung pada versi model Python Anda. Untuk informasi selengkapnya, termasuk tautan ke contoh kode pengikatan yang dapat Anda rujuk, lihat Menambahkan pengikatan ke fungsi.

import {
  app,
  output,
  HttpRequest,
  HttpResponseInit,
  InvocationContext,
  StorageQueueOutput,
} from '@azure/functions';

const sendToQueue: StorageQueueOutput = output.storageQueue({
  queueName: 'outqueue',
  connection: 'AzureWebJobsStorage',
});

export async function HttpExample(
  request: HttpRequest,
  context: InvocationContext,
): Promise<HttpResponseInit> {
  try {
    context.log(`Http function processed request for url "${request.url}"`);

    const name = request.query.get('name') || (await request.text());
    context.log(`Name: ${name}`);

    if (name) {
      const msg = `Name passed to the function ${name}`;
      context.extraOutputs.set(sendToQueue, [msg]);
      return { body: msg };
    } else {
      context.log('Missing required data');
      return { status: 404, body: 'Missing required data' };
    }
  } catch (error) {
    context.log(`Error: ${error}`);
    return { status: 500, body: 'Internal Server Error' };
  }
}

app.http('HttpExample', {
  methods: ['GET', 'POST'],
  authLevel: 'anonymous',
  handler: HttpExample,
});

Cara Anda menentukan pengikatan output tergantung pada versi model Node.js Anda. Untuk informasi selengkapnya, termasuk tautan ke contoh kode pengikatan yang dapat Anda rujuk, lihat Menambahkan pengikatan ke fungsi.

Gunakan tabel berikut untuk menemukan contoh jenis pengikatan tertentu yang bisa Anda gunakan untuk memandu Anda memperbarui fungsi yang sudah ada. Pertama, pilih tab bahasa yang sesuai dengan project Anda.

Kode pengikatan untuk C# tergantung pada model proses tertentu.

Pelayanan Contoh Contoh-contoh
Penyimpanan Blob (Blob Storage) Trigger
Input
Output
Link
Azure Cosmos DB Pemicu
Masukan
Hasil
Link
Azure Data Explorer Input
Output
Link
Azure SQL Trigger
Input
Output
Link
Event Grid Pemicu
Hasil
Link
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Link
Penyimpanan Antrian Trigger
Output
Link
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Layanan Bus Pemicu
Hasil
Link
Azure SignalR Service Pemicu
Masukan
Hasil
Penyimpanan Tabel Input
Output
Pengatur Waktu Pemicu Link
Twilio Hasil Link
Pelayanan Contoh Contoh-contoh
Penyimpanan Blob (Blob Storage) Trigger
Input
Output
Link
Azure Cosmos DB Pemicu
Masukan
Hasil
Link
Azure Data Explorer Input
Output
Link
Azure SQL Trigger
Input
Output
Event Grid Pemicu
Hasil
Link
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Link
Penyimpanan Antrian Trigger
Output
Link
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Layanan Bus Pemicu
Hasil
Link
Azure SignalR Service Pemicu
Masukan
Hasil
Penyimpanan Tabel Input
Output
Pengatur Waktu Pemicu Link
Twilio Hasil
Pelayanan Contoh Contoh-contoh
Penyimpanan Blob (Blob Storage) Trigger
Input
Output
Link
Azure Cosmos DB Pemicu
Masukan
Hasil
Link
Azure Data Explorer Input
Output
Azure SQL Trigger
Input
Output
Link
Event Grid Pemicu
Hasil
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Link
Penyimpanan Antrian Trigger
Output
Link
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Layanan Bus Pemicu
Hasil
Link
Azure SignalR Service Pemicu
Masukan
Hasil
Penyimpanan Tabel Input
Output
Pengatur Waktu Pemicu
Twilio Hasil
Pelayanan Contoh Contoh-contoh
Penyimpanan Blob (Blob Storage) Trigger
Input
Output
Azure Cosmos DB Pemicu
Masukan
Hasil
Azure SQL Trigger
Input
Output
Event Grid Pemicu
Hasil
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Link
Penyimpanan Antrian Trigger
Output
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Layanan Bus Pemicu
Hasil
Azure SignalR Service Pemicu
Masukan
Hasil
Penyimpanan Tabel Input
Output
Pengatur Waktu Pemicu
Twilio Hasil

Kode pengikatan untuk Python tergantung pada versi model Python.

Pelayanan Contoh Contoh-contoh
Penyimpanan Blob (Blob Storage) Trigger
Input
Output
Link
Azure Cosmos DB Pemicu
Masukan
Hasil
Link
Azure Data Explorer Input
Output
Azure SQL Trigger
Input
Output
Link
Event Grid Pemicu
Hasil
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Link
Penyimpanan Antrian Trigger
Output
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Layanan Bus Pemicu
Hasil
Link
Azure SignalR Service Pemicu
Masukan
Hasil
Penyimpanan Tabel Input
Output
Pengatur Waktu Pemicu
Twilio Hasil

Kode Visual Studio

Saat Anda menggunakan kode Visual Studio untuk mengembangkan fungsi Anda dan fungsi Anda menggunakan file function.json, ekstensi Azure Functions dapat secara otomatis menambahkan pengikatan ke file function.json yang ada. Untuk mempelajari selengkapnya, lihat Menambahkan pengikatan input dan output.

Azure portal

Saat Anda mengembangkan fungsi di Azure portal, Anda menambahkan pengikatan input dan output di tab Integrate untuk fungsi tertentu. Pengikatan baru ditambahkan ke file function.json atau ke atribut metode, tergantung pada bahasa Anda. Artikel berikut ini memperlihatkan contoh cara menambahkan pengikatan ke fungsi yang ada di portal:

Langkah selanjutnya