Gambaran umum pemicu dan pengikatan HTTP Azure Functions

Azure Functions dapat dipanggil melalui permintaan HTTP untuk membuat API tanpa server dan merespons webhook.

Perbuatan Jenis
Jalankan fungsi dari permintaan HTTP Pemicu
Tampilkan respons HTTP dari fungsi Pengikatan output

Menginstal ekstensi

Paket NuGet ekstensi yang Anda instal bergantung pada mode C# yang Anda gunakan di aplikasi fungsi Anda:

Functions dijalankan dalam proses pekerja C# yang terisolasi. Untuk mempelajari selengkapnya, lihat Panduan untuk menjalankan C# Azure Functions dalam proses pekerja yang terisolasi.

Fungsionalitas ekstensi tersebut bervariasi tergantung pada versi ekstensi:

Tambahkan ekstensi ke proyek Anda dengan menginstal paket NuGet, versi 3.x.

Catatan

Paket ekstensi tambahan diperlukan untuk integrasi ASP.NET Core di .NET Isolated

Memasang bundel

Dimulai dengan Functions versi 2.x, ekstensi HTTP adalah bagian dari bundel ekstensi, yang ditentukan dalam file proyek host.json. Untuk mempelajari lebih lanjut, lihat bundel ekstensi.

Versi ekstensi ini akan tersedia untuk aplikasi fungsi dengan bundel ekstensi, versi 2.x.

Pengaturan host.json

Bagian ini menjelaskan pengaturan konfigurasi yang tersedia untuk pengikatan ini dalam versi 2.x dan yang lebih tinggi. Pengaturan dalam file host.json berlaku untuk semua fungsi dalam instans aplikasi fungsi. Contohnya file host.json di bawah ini hanya berisi pengaturan versi 2.x+ untuk pengikatan ini. Untuk informasi selengkapnya tentang pengaturan konfigurasi aplikasi fungsi dalam versi 2.x dan seterusnya, lihat referensi host.json untuk Azure Functions.

Catatan

Untuk referensi host.json di Azure Functions 1.x, lihat referensi host.json untuk Azure Functions 1.x.

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
Properti Default Deskripsi
customHeaders tidak ada Memungkinkan Anda mengatur header kustom dalam respons HTTP. Contoh sebelumnya menambahkan X-Content-Type-Options header ke respons untuk menghindari mengendus tipe konten. Header kustom ini berlaku untuk semua fungsi yang dipicu HTTP di aplikasi fungsi.
dynamicThrottlesEnabled benar* Saat diaktifkan, pengaturan ini menyebabkan pipa pemrosesan permintaan untuk secara berkala memeriksa penghitung kinerja sistem seperti connections/threads/processes/memory/cpu/etc dan jika salah satu penghitung tersebut melebihi ambang batas tinggi bawaan (80%), permintaan akan ditolak dengan respons 429 "Too Busy" hingga penghitung kembali ke tingkat normal.
*Default dalam paket Konsumsi adalah true. Default dalam paket Khusus adalah false.
hsts Tidak Diaktifkan Kapan isEnabled diatur ke , perilaku HTTP Strict Transport Security true(HSTS) dari .NET Core diberlakukan, seperti yang didefinisikan di HstsOptions kelas. Contoh di atas juga mengatur maxAge properti menjadi 10 hari. Properti hsts yang didukung adalah:
PropertiDeskripsi
excludedHostsArray string nama host tempat header HSTS tidak ditambahkan.
includeSubDomainsNilai Boolean yang menunjukkan apakah parameter includeSubDomain dari header Strict-Transport-Security diaktifkan.
maksAgeString yang menentukan parameter usia maks header Strict-Transport-Security.
Sebelum dimuatBoolean yang menunjukkan apakah parameter sebelum dimuat header Strict-Transport-Security diaktifkan.
maxConcurrentRequests 100* Jumlah maksimum fungsi HTTP yang dijalankan secara paralel. Nilai ini memungkinkan Anda untuk mengontrol konkurensi, yang dapat membantu mengelola pemanfaatan sumber daya. Misalnya, Anda mungkin memiliki fungsi HTTP yang menggunakan banyak sumber daya sistem (memori/cpu/soket) sehingga menyebabkan masalah saat konkurensi terlalu tinggi. Atau Anda mungkin memiliki fungsi yang membuat permintaan keluar ke layanan pihak ketiga, dan panggilan tersebut harus dibatasi tarifnya. Dalam kasus ini, menerapkan pembatasan di sini dapat membantu.
*Default dalam paket Konsumsi adalah 100. Default untuk paket Khusus tidak terikat (-1).
maxOutstandingRequests 200* Jumlah maksimum permintaan tertunda yang ditahan pada waktu tertentu. Batas ini termasuk permintaan yang diantrekan tetapi belum mulai dijalankan, serta eksekusi yang sedang berlangsung. Permintaan masuk apa pun yang melebihi batas ini akan ditolak dengan respons 429 "Terlalu Sibuk". Hal Itu memungkinkan penelepon untuk menggunakan strategi coba lagi berbasis waktu, dan juga membantu Anda mengontrol keterlambatan permintaan maksimum. Ini hanya mengontrol antrean yang terjadi dalam jalur eksekusi host skrip. Antrean lain seperti antrean permintaan ASP.NET akan tetap berlaku dan tidak terpengaruh oleh pengaturan ini.
*Default dalam paket Konsumsi adalah 200. Default untuk paket Khusus tidak terikat (-1).
routePrefix api Awalan rute yang berlaku untuk semua rute. Gunakan untai kosong untuk menghapus prefiks default.

Langkah berikutnya