Bagikan melalui


Pemicu dan pengikatan Azure Functions

Dalam artikel ini, Anda mempelajari konsep tingkat tinggi seputar pemicu dan pengikatan untuk fungsi.

Pemicu menyebabkan suatu fungsi dijalankan. Pemicu menentukan bagaimana fungsi dipanggil, dan fungsi harus memiliki satu pemicu. Pemicu juga dapat meneruskan data ke fungsi Anda, seperti yang Anda lakukan dengan panggilan metode.

Mengikat ke fungsi adalah cara menyambungkan fungsi Anda secara deklaratif ke sumber daya lain. Pengikatan meneruskan data ke fungsi Anda ( pengikatan input) atau memungkinkan Anda menulis data dari fungsi Anda ( pengikatan output) dengan menggunakan parameter pengikatan. Pemicu fungsi Anda pada dasarnya adalah jenis pengikatan input khusus.

Anda dapat mencampur dan mencocokkan pengikatan agar sesuai dengan skenario spesifik fungsi Anda. Pengikatan bersifat opsional, dan fungsi mungkin memiliki satu atau beberapa pengikatan input dan/atau output.

Pemicu dan pengikatan memungkinkan Anda menghindari akses hardcoding ke layanan lain. Fungsi Anda menerima data (misalnya, konten pesan antrean) dalam parameter fungsi. Anda mengirim data (misalnya, untuk membuat pesan antrean) dengan menggunakan nilai yang dikembalikan dari fungsi.

Pertimbangkan contoh berikut tentang bagaimana Anda dapat menerapkan fungsi:

Contoh skenario Pemicu Pengikatan masukan Pengikatan output
Pesan antrean baru tiba, yang menjalankan fungsi untuk menulis ke antrean lain. Antrean* Tidak Antrean*
Pekerjaan terjadwal membaca konten Azure Blob Storage dan membuat dokumen Azure Cosmos DB baru. Pengatur Waktu Blob Storage Azure Cosmos DB
Azure Event Grid digunakan untuk membaca gambar dari Blob Storage dan dokumen dari Azure Cosmos DB untuk mengirim email. Event Grid Blob Storage dan Azure Cosmos DB SendGrid

* Mewakili antrian yang berbeda.

Contoh-contoh ini tidak dimaksudkan untuk menjadi lengkap, tetapi menggambarkan bagaimana Anda dapat menggunakan pemicu dan pengikatan bersama-sama. Untuk serangkaian skenario yang lebih komprehensif, lihat Skenario Azure Functions.

Tips

Azure Functions tidak mengharuskan Anda menggunakan pengikatan input dan output untuk menyambungkan ke layanan Azure. Anda selalu dapat membuat klien Azure SDK dalam kode Anda dan menggunakannya sebagai gantinya untuk transfer data Anda. Untuk informasi selengkapnya, lihat Menyambungkan ke layanan.

Penentuan pemicu dan pengikatan

Contoh berikut menunjukkan sebuah fungsi yang dipicu oleh HTTP dengan binding output yang menulis pesan ke antrean di Azure Storage.

Untuk fungsi pustaka kelas C#, Anda mengonfigurasi pemicu dan pengikatan dengan mendekorasi metode dan parameter dengan atribut C#. Atribut tertentu yang Anda terapkan mungkin bergantung pada model runtime C#:

Pemicu HTTP (HttpTrigger) didefinisikan pada Run metode untuk fungsi bernama HttpExample yang mengembalikan MultiResponse objek:

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

Contoh ini menunjukkan MultiResponse definisi objek. Definisi objek mengembalikan HttpResponse ke permintaan HTTP dan menulis pesan ke antrean penyimpanan dengan menggunakan ikatan QueueOutput.

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

Untuk informasi selengkapnya, lihat panduan C# untuk model pekerja yang terisolasi.

Fungsi skrip C# warisan menggunakan function.json file definisi. Untuk informasi selengkapnya, lihat referensi pengembang untuk skrip Azure Functions C# (.csx).

Untuk fungsi Java, Anda mengonfigurasi pemicu dan pengikatan dengan menganotasi metode dan parameter tertentu. Pemicu HTTP ini (@HttpTrigger) didefinisikan pada run metode untuk fungsi bernama HttpTriggerQueueOutput. Fungsi menulis ke antrean penyimpanan yang didefinisikan oleh anotasi pada parameter @QueueOutput:

@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) {
    context.getLogger().info("Java HTTP trigger processed a request.");

Untuk informasi selengkapnya, lihat panduan pengembang Java.

Cara Anda menentukan pemicu dan pengikatan untuk fungsi Node.js bergantung pada versi Node.js tertentu untuk Azure Functions:

Di Node.js untuk Azure Functions versi 4, Anda mengonfigurasi pemicu dan pengikatan dengan menggunakan objek yang diekspor dari @azure/functions modul. Untuk informasi selengkapnya, lihat panduan pengembang Node.js.

Metode http pada objek yang diekspor app menentukan pemicu HTTP. Metode storageQueue pada output menentukan pengikatan output pada pemicu ini.

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

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

app.http('httpTrigger1', {
    methods: ['GET', 'POST'],
    authLevel: 'anonymous',
    extraOutputs: [queueOutput],
    handler: async (request, context) => {
        const body = await request.text();
        context.extraOutputs.set(queueOutput, body);
        return { body: 'Created queue item.' };
    },
});

Metode http pada objek yang diekspor app menentukan pemicu HTTP. Metode storageQueue pada output menentukan pengikatan output pada pemicu ini.

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

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

export async function httpTrigger1(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
    const body = await request.text();
    context.extraOutputs.set(queueOutput, body);
    return { body: 'Created queue item.' };
}

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

Contoh function.json file ini mendefinisikan fungsi:

    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "type": "queue",
      "direction": "out",
      "name": "msg",
      "queueName": "outqueue",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

Untuk informasi selengkapnya, lihat panduan pengembang PowerShell.

Cara fungsi didefinisikan tergantung pada versi Python untuk Azure Functions:

Di Python untuk Azure Functions versi 2, Anda menentukan fungsi langsung dalam kode dengan menggunakan dekorator:

app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)

@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.')

Pertimbangan pengikatan

  • Tidak semua layanan mendukung pengikatan input dan output. Lihat ekstensi pengikatan spesifik Anda untuk contoh kode tertentu untuk pengikatan.

  • Pemicu dan pengikatan ditentukan secara berbeda bergantung pada bahasa pengembangan. Pastikan untuk memilih bahasa Anda di bagian atas artikel ini.

  • Nama pemicu dan pengikatan terbatas pada karakter alfanumerik dan _, garis bawah.

Tugas untuk menambahkan pengikatan ke fungsi

Anda dapat menyambungkan fungsi ke layanan lain dengan menggunakan pengikatan input atau output. Tambahkan pengikatan dengan menambahkan definisi spesifik ke fungsi Anda. Untuk mempelajari caranya, lihat Menambahkan pengikatan ke fungsi yang ada di Azure Functions.

Azure Functions mendukung beberapa pengikatan, yang harus dikonfigurasi dengan benar. Misalnya, fungsi dapat membaca data dari antrean (pengikatan input) dan menulis data ke database (pengikatan output) secara bersamaan.

Pengikatan yang didukung

Tabel ini memperlihatkan pengikatan yang didukung di versi utama runtime Azure Functions:

Jenis 1.x1 2.x dan yang lebih baru2 Pemicu Masukan (Input) Keluaran
Penyimpanan Blob
Azure Cosmos DB
Azure Data Explorer
Azure SQL
Dapr4
Event Grid
Event Hubs
HTTP dan webhook
Pusat IoT
Kafka3
Aplikasi Seluler
Protokol Konteks Model
Notification Hubs
Penyimpanan Antrian
Redis
RabbitMQ3
SendGrid
Bus Layanan
Azure SignalR Service
Penyimpanan Tabel
Timer
Twilio

1Dukungan akan berakhir untuk runtime Azure Functions versi 1.x pada 14 September 2026. Kami sangat menyarankan Agar Anda memigrasikan aplikasi Anda ke versi 4.x untuk dukungan penuh.

2 Dimulai dengan runtime versi 2.x, semua pengikatan kecuali HTTP dan timer harus didaftarkan. Lihat Mendaftarkan ekstensi pengikatan Azure Functions.

3 Pemicu tidak didukung dalam paket Konsumsi. Jenis pengikatan ini memerlukan pemicu berbasis runtime.

4 Jenis pengikatan ini didukung di Kubernetes, Azure IoT Edge, dan mode yang dihost sendiri lainnya saja.

Untuk informasi tentang pengikatan mana yang ada dalam pratinjau atau disetujui untuk penggunaan produksi, lihat Bahasa yang didukung.

Versi ekstensi pengikatan tertentu hanya didukung saat SDK layanan yang mendasar didukung. Perubahan dukungan pada versi SDK layanan mendasar memengaruhi dukungan untuk ekstensi yang menggunakannya.

Contoh kode untuk pengikatan

Gunakan tabel berikut untuk menemukan lebih banyak contoh jenis pengikatan tertentu yang menunjukkan kepada Anda cara bekerja dengan pengikatan dalam fungsi Anda. Pertama, pilih tab bahasa yang sesuai dengan proyek Anda.

Kode pengikatan untuk C# tergantung pada model proses tertentu.

Layanan Contoh Sampel
Blob Storage Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB Pemicu
Masukan
Hasil
Tautan
Azure Data Explorer Masukan
Hasil
Tautan
Azure SQL Pemicu
Masukan
Hasil
Tautan
Event Grid Pemicu
Hasil
Tautan
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Queue Storage Pemicu
Hasil
Tautan
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan Pemicu
Hasil
Tautan
Azure SignalR Service Pemicu
Masukan
Hasil
Table Storage Masukan
Hasil
Pengatur Waktu Pemicu Tautan
Twilio Hasil Tautan
Layanan Contoh Sampel
Blob Storage Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB Pemicu
Masukan
Hasil
Tautan
Azure Data Explorer Masukan
Hasil
Tautan
Azure SQL Pemicu
Masukan
Hasil
Event Grid Pemicu
Hasil
Tautan
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Queue Storage Pemicu
Hasil
Tautan
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan Pemicu
Hasil
Tautan
Azure SignalR Service Pemicu
Masukan
Hasil
Table Storage Masukan
Hasil
Pengatur Waktu Pemicu Tautan
Twilio Hasil
Layanan Contoh Sampel
Blob Storage Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB Pemicu
Masukan
Hasil
Tautan
Azure Data Explorer Masukan
Hasil
Azure SQL Pemicu
Masukan
Hasil
Tautan
Event Grid Pemicu
Hasil
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Queue Storage Pemicu
Hasil
Tautan
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan Pemicu
Hasil
Tautan
Azure SignalR Service Pemicu
Masukan
Hasil
Table Storage Masukan
Hasil
Pengatur Waktu Pemicu
Twilio Hasil
Layanan Contoh Sampel
Blob Storage Pemicu
Masukan
Hasil
Azure Cosmos DB Pemicu
Masukan
Hasil
Azure SQL Pemicu
Masukan
Hasil
Event Grid Pemicu
Hasil
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Queue Storage Pemicu
Hasil
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan Pemicu
Hasil
Azure SignalR Service Pemicu
Masukan
Hasil
Table Storage Masukan
Hasil
Pengatur Waktu Pemicu
Twilio Hasil

Kode pengikatan untuk Python tergantung pada versi model Python.

Layanan Contoh Sampel
Blob Storage Pemicu
Masukan
Hasil
Tautan
Azure Cosmos DB Pemicu
Masukan
Hasil
Tautan
Azure Data Explorer Masukan
Hasil
Azure SQL Pemicu
Masukan
Hasil
Tautan
Event Grid Pemicu
Hasil
Pusat Aktivitas Pemicu
Hasil
IoT Hub Pemicu
Hasil
HTTP Pemicu Tautan
Queue Storage Pemicu
Hasil
RabbitMQ Pemicu
Hasil
SendGrid Hasil
Bus Layanan Pemicu
Hasil
Tautan
Azure SignalR Service Pemicu
Masukan
Hasil
Table Storage Masukan
Hasil
Pengatur Waktu Pemicu
Twilio Hasil

Pengikatan kustom

Anda dapat membuat pengikatan input dan output kustom. Pengikatan harus ditulis di .NET, tetapi dapat dikonsumsi dari bahasa apa pun yang didukung. Untuk informasi selengkapnya tentang membuat pengikatan kustom, lihat Membuat pengikatan input dan output kustom.