Bagikan melalui


Menyambungkan fungsi ke layanan Azure menggunakan pengikatan

Saat Anda membuat fungsi, kode pemicu khusus bahasa ditambahkan di proyek 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 lebih lanjut, 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 yang dipicu HTTP:

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

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

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

Saat menerapkan contoh tersebut ke proyek Anda sendiri, Anda mungkin perlu mengubah HttpRequest ke HttpRequestData dan IActionResult ke HttpResponseData, tergantung pada apakah Anda menggunakan integrasi ASP.NET Core atau tidak.

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 proyek Anda.

Kode pengikatan untuk C# tergantung pada model proses tertentu.

Pelayanan Contoh Contoh-contoh
Penyimpanan data Blob Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB (layanan basis data global dari Microsoft) Pemicu
Masukan
Hasil
Tautan
Azure Data Explorer (layanan pencarian data) Masukan
Hasil
Tautan
Azure SQL Pemicu
Masukan
Hasil
Tautan
Jaringan Peristiwa Pemicu
Hasil
Tautan
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Antrian Penyimpanan Pemicu
Hasil
Tautan
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan (Service Bus) Pemicu
Hasil
Tautan
SignalR Pemicu
Masukan
Hasil
Penyimpanan Berbasis Tabel Masukan
Hasil
Pengatur Waktu Pemicu Tautan
Twilio Hasil Tautan
Pelayanan Contoh Contoh-contoh
Penyimpanan data Blob Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB (layanan basis data global dari Microsoft) Pemicu
Masukan
Hasil
Tautan
Azure Data Explorer (layanan pencarian data) Masukan
Hasil
Tautan
Azure SQL Pemicu
Masukan
Hasil
Jaringan Peristiwa Pemicu
Hasil
Tautan
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Antrian Penyimpanan Pemicu
Hasil
Tautan
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan (Service Bus) Pemicu
Hasil
Tautan
SignalR Pemicu
Masukan
Hasil
Penyimpanan Berbasis Tabel Masukan
Hasil
Pengatur Waktu Pemicu Tautan
Twilio Hasil Tautan
Pelayanan Contoh Contoh-contoh
Penyimpanan data Blob Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB (layanan basis data global dari Microsoft) Pemicu
Masukan
Hasil
Tautan
Azure Data Explorer (layanan pencarian data) Masukan
Hasil
Azure SQL Pemicu
Masukan
Hasil
Tautan
Jaringan Peristiwa Pemicu
Hasil
Tautan
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Antrian Penyimpanan Pemicu
Hasil
Tautan
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan (Service Bus) Pemicu
Hasil
Tautan
SignalR Pemicu
Masukan
Hasil
Penyimpanan Berbasis Tabel Masukan
Hasil
Pengatur Waktu Pemicu Tautan
Twilio Hasil Tautan
Pelayanan Contoh Contoh-contoh
Penyimpanan data Blob Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB (layanan basis data global dari Microsoft) Pemicu
Masukan
Hasil
Tautan
Azure SQL Pemicu
Masukan
Hasil
Jaringan Peristiwa Pemicu
Hasil
Tautan
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Antrian Penyimpanan Pemicu
Hasil
Tautan
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan (Service Bus) Pemicu
Hasil
Tautan
SignalR Pemicu
Masukan
Hasil
Penyimpanan Berbasis Tabel Masukan
Hasil
Pengatur Waktu Pemicu Tautan
Twilio Hasil Tautan

Kode pengikatan untuk Python tergantung pada versi model Python.

Pelayanan Contoh Contoh-contoh
Penyimpanan data Blob Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB (layanan basis data global dari Microsoft) Pemicu
Masukan
Hasil
Tautan
Azure Data Explorer (layanan pencarian data) Masukan
Hasil
Azure SQL Pemicu
Masukan
Hasil
Tautan
Jaringan Peristiwa Pemicu
Hasil
Tautan
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Antrian Penyimpanan Pemicu
Hasil
Tautan
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan (Service Bus) Pemicu
Hasil
Tautan
SignalR Pemicu
Masukan
Hasil
Penyimpanan Berbasis Tabel Masukan
Hasil
Pengatur Waktu Pemicu Tautan
Twilio Hasil Tautan

Visual Studio Code

Saat Anda menggunakan Visual Studio Code untuk mengembangkan fungsi 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.

Portal Microsoft Azure

Saat Mengembangkan fungsi di portal Microsoft Azure, Anda menambahkan pengikatan input dan output di tab Integrasikan 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