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.

Tukang pos digunakan dalam contoh berikut, tetapi Anda dapat menggunakan cURL, Fiddler, atau alat serupa lainnya untuk mengirim permintaan HTTP.

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.

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.

Define the request location: host name + folder path + function name

  • 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 untuk myfunctiondemos-staging.azurewebsites.net slot bernama staging.
  • 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 di x-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.

  1. Navigasi ke aplikasi fungsi Anda di portal Azure, pilih Kunci Aplikasi, lalu kunci _master.

    Locate the master key to copy.

  2. Di bagian Edit kunci, salin nilai kunci ke clipboard, lalu pilih OK.

    Copy the master key to the clipboard.

Memanggil fungsi

  1. Di portal Azure, navigasikan ke atas aplikasi fungsi Anda dan pilih fungsi Anda.

  2. Pilih Kode + Uji, lalu pilih Log. Anda melihat pesan dari fungsi yang dicatat di sini saat Anda menjalankan fungsi secara manual dari Postman.

    Screenshot that shows the 'Code + Test' page with a message from the logs displayed.

  3. Buka Postman (atau alat pembuatan HTTP yang setara) dan masukkan lokasi permintaan di kotak teks URL.

  4. Pastikan bahwa metode HTTP diatur ke POST, pilih tab Header , dan tambahkan dua pasangan kunci-nilai header ini:

    Tombol Nilai
    x-functions-key Nilai kunci master ditempelkan dari clipboard.
    Content-Type application/json

    Postman headers settings.

  5. Pilih tab Isi dan ketik { "input": "<TRIGGER_INPUT>" } sebagai isi untuk permintaan.

    Postman body settings.

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

  6. Pilih Kirim.

    Send a request with Postman.

    Postman kemudian melaporkan status 202 Diterima.

  7. Selanjutnya, kembali ke fungsi Anda di portal Azure. Tinjau log dan Anda melihat pesan yang berasal dari panggilan manual ke fungsi .

    View the logs to see the master key test results.

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.

Langkah berikutnya