Menjalankan fungsi yang tidak dipicu HTTP secara manual
Artikel ini mendemonstrasikan cara menjalankan fungsi yang tidak dipicu HTTP secara manual melalui permintaan HTTP yang diformat khusus.
Dalam beberapa konteks, seperti selama pengembangan dan pemecahan masalah, Anda mungkin perlu menjalankan "sesuai permintaan" Azure Function yang secara tidak langsung dipicu. Contoh pemicu tidak langsung mencakup fungsi pada jadwal atau fungsi yang berjalan sebagai hasil dari peristiwa.
Prosedur yang dijelaskan dalam artikel ini setara dengan menggunakan fungsionalitas Uji/Jalankan dari tab Kode + Uji fungsi di portal Azure. Anda juga dapat menggunakan Visual Studio Code untuk menjalankan fungsi secara manual.
Prasyarat
Contoh dalam artikel ini menggunakan alat uji HTTP. Pastikan untuk memilih alat yang menjaga keamanan data Anda. Untuk informasi selengkapnya, lihat Alat pengujian HTTP.
Menentukan lokasi permintaan
Untuk menjalankan fungsi yang tidak dipicu HTTP, Anda memerlukan cara untuk mengirim permintaan ke Azure untuk menjalankan fungsi. URL yang digunakan untuk membuat permintaan ini mengambil formulir tertentu.
- Nama host: Lokasi publik aplikasi fungsi yang dibuat dari nama aplikasi fungsi plus azurewebsites.net atau domain kustom Anda. Ketika Anda bekerja dengan slot penyebaran yang digunakan untuk penahapan, bagian nama host adalah nama host produksi dengan
-<slotname>
ditambahkan ke dalamnya. Dalam contoh sebelumnya, URL akan untukmyfunctiondemos-staging.azurewebsites.net
slot bernamastaging
. - Jalur folder: Untuk mengakses fungsi yang tidak dipicu HTTP melalui permintaan HTTP, Anda harus mengirim permintaan melalui jalur
admin/functions
. API di/admin/
bawah jalur hanya dapat diakses dengan otorisasi. - Nama fungsi: Nama fungsi yang ingin Anda jalankan.
Pertimbangan berikut berlaku saat membuat permintaan ke titik akhir administrator di aplikasi fungsi Anda:
- Saat membuat permintaan ke titik akhir apa pun di bawah
/admin/
jalur, Anda harus menyediakan kunci master aplikasi Anda dix-functions-key
header permintaan. - Saat Anda menjalankan secara lokal, otorisasi tidak diberlakukan dan kunci master fungsi tidak diperlukan. Anda dapat langsung memanggil fungsi yang menghilangkan header
x-functions-key
. - Saat mengakses titik akhir aplikasi fungsi di slot penyebaran, pastikan Anda menggunakan nama host khusus slot di URL permintaan, bersama dengan kunci master khusus slot.
Dapatkan kunci master
Anda bisa mendapatkan kunci master dari portal Azure atau dengan menggunakan Azure CLI.
Perhatian
Karena izin yang ditingkatkan di aplikasi fungsi Anda yang diberikan oleh kunci master, Anda tidak boleh membagikan kunci ini dengan pihak ketiga atau mendistribusikannya dalam aplikasi. Kunci hanya boleh dikirim ke titik akhir HTTPS.
Navigasi ke aplikasi fungsi Anda di portal Azure, pilih Kunci Aplikasi, lalu kunci
_master
.Di bagian Edit kunci, salin nilai kunci ke clipboard, lalu pilih OK.
Memanggil fungsi
Di portal Azure, navigasikan ke atas aplikasi fungsi Anda dan pilih fungsi Anda.
Pilih Kode + Uji, lalu pilih Log. Anda melihat pesan dari fungsi yang dicatat di sini saat Anda menjalankan fungsi secara manual dari alat pengujian HTTP Anda.
Di alat pengujian HTTP Anda, gunakan lokasi permintaan yang Anda tentukan sebagai URL permintaan, pastikan bahwa metode permintaan HTTP adalah POST, dan sertakan dua header permintaan ini:
Tombol Nilai x-functions-key
Nilai kunci master ditempelkan dari clipboard. Content-Type
application/json
Pastikan payload/isi permintaan POST adalah
{ "input": "<TRIGGER_INPUT>" }
.<TRIGGER_INPUT>
Spesifik yang Anda berikan tergantung pada jenis pemicu, tetapi hanya dapat berupa nilai string, numerik, atau boolean. Untuk layanan yang menggunakan payload JSON, seperti Azure Bus Layanan, payload JSON pengujian harus diloloskan dan diserialisasikan sebagai string.Jika Anda tidak ingin meneruskan data input ke fungsi , Anda masih harus menyediakan kamus
{}
kosong sebagai isi permintaan POST. Untuk informasi selengkapnya, lihat artikel referensi untuk pemicu non-HTTP tertentu.Kirim permintaan HTTP POST. Respons harus berupa respons HTTP 202 (Diterima).
Selanjutnya, kembali ke fungsi Anda di portal Azure. Tinjau log dan Anda melihat pesan yang berasal dari panggilan manual ke fungsi .
Cara Anda mengakses data yang dikirim ke pemicu bergantung pada jenis pemicu dan bahasa fungsi Anda. Untuk informasi selengkapnya, lihat contoh referensi untuk pemicu spesifik Anda.