Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
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.