Topik ini menjelaskan header permintaan umum, kode respons, header respons, dan format log yang dapat Anda gunakan untuk membuat lingkungan runtime kustom.
Header permintaan umum Function Compute
Tabel berikut mencantumkan header permintaan umum yang diterima oleh runtime kustom dari Function Compute. Anda mungkin memerlukan header AccessKey sementara untuk mengakses layanan Alibaba Cloud lainnya. Jika Anda sedang melakukan migrasi aplikasi yang sudah ada, Anda dapat mengabaikan informasi ini.
Baik fungsi event maupun fungsi HTTP mencakup header umum.
Function Compute secara otomatis menghasilkan header permintaan umum. Header ini terutama berisi informasi izin dan informasi dasar fungsi.
Header | Deskripsi |
x-fc-request-id | ID permintaan. |
x-fc-access-key-id | ID AccessKey sementara. |
x-fc-access-key-secret | Rahasia AccessKey sementara. |
x-fc-security-token | Token keamanan sementara. |
x-fc-function-handler | Penanganan fungsi. Jika runtime itu sendiri merupakan fungsi, seperti pada fungsi runtime kustom atau fungsi kontainer kustom, nilai ini tidak memiliki arti. Tetapkan sebagai string acak. |
x-fc-function-memory | Memori maksimum yang dapat digunakan oleh fungsi. |
x-fc-function-initializer | Penanganan untuk fungsi Initializer. Jika runtime itu sendiri merupakan fungsi, seperti pada fungsi runtime kustom atau fungsi kontainer kustom, nilai ini tidak memiliki arti. Tetapkan sebagai string acak. |
x-fc-initialization-timeout | Periode waktu habis untuk eksekusi fungsi Initializer. |
x-fc-instance-lifecycle-pre-stop-handler | Penanganan untuk fungsi PreStop. Jika runtime itu sendiri merupakan fungsi, seperti pada fungsi runtime kustom atau fungsi kontainer kustom, nilai ini tidak memiliki arti. Tetapkan sebagai string acak. |
x-fc-instance-lifecycle-pre-freeze-handler | Penanganan untuk fungsi PreFreeze. Jika runtime itu sendiri merupakan fungsi, seperti pada fungsi runtime kustom atau fungsi kontainer kustom, nilai ini tidak memiliki arti. Tetapkan sebagai string acak. |
x-fc-region | Wilayah tempat fungsi berada. |
x-fc-account-id | UID pemilik fungsi. |
x-fc-qualifier | Versi layanan atau alias yang ditentukan selama pemanggilan fungsi. Untuk informasi selengkapnya, lihat Gunakan versi dan alias untuk mengimplementasikan rilis bertahap. |
x-fc-version-id | Versi layanan yang ditentukan selama pemanggilan fungsi. |
x-fc-function-name | Nama fungsi. |
x-fc-service-name | Nama layanan tempat fungsi berada. |
x-fc-service-logproject | Proyek log yang dikonfigurasi untuk layanan tempat fungsi berada. |
x-fc-service-logstore | Penyimpanan log yang dikonfigurasi untuk layanan tempat fungsi berada. |
x-fc-control-path | Jenis permintaan fungsi. Untuk runtime kustom atau kontainer kustom, Anda dapat menentukan apakah pemanggilan fungsi merupakan fungsi HTTP atau fungsi event berdasarkan parameter dalam header. Informasi parameternya adalah sebagai berikut:
|
Kode respons dan header respons Function Compute
Runtime kustom pada dasarnya adalah server HTTP yang Anda implementasikan. Oleh karena itu, setiap pemanggilan fungsi merupakan permintaan HTTP, dan setiap respons memiliki kode respons serta header respons.
Kode respons
StatusCode200: Status sukses.404: Status gagal.
Header respons
x-fc-status200: Status sukses.404: Status gagal.
Gunakan header respons x-fc-status untuk melaporkan kepada Function Compute apakah eksekusi fungsi lokal berhasil.
Jika
x-fc-statustidak diatur, Function Compute secara default mengasumsikan bahwa pemanggilan berhasil. Namun, fungsi Anda mungkin mengalami pengecualian yang tidak dilaporkan ke Function Compute. Dalam kasus ini, Function Compute tetap menganggap eksekusi berhasil. Hal ini mungkin tidak memengaruhi logika bisnis Anda, tetapi akan memengaruhi pemantauan dan observabilitas. Gambar berikut menunjukkan contohnya:
Jika
x-fc-statusdiatur, dan fungsi Anda mengalami pengecualian, Anda dapat menggunakan header responsx-fc-statusuntuk melaporkan kegagalan eksekusi kepada Function Compute. Anda juga dapat mencetak informasi stack error ke log. Gambar berikut menunjukkan contohnya:
Atur baik StatusCode maupun x-fc-status dalam respons HTTP.
Format log fungsi
Anda dapat mengaktifkan fitur pencatatan log saat membuat layanan. Semua log yang dicetak ke standard output (stdout) dalam runtime kustom akan dikumpulkan secara otomatis di Simple Log Service yang Anda tentukan. Untuk informasi selengkapnya, lihat Konfigurasi log.
Saat Function Compute memanggil fungsi dalam lingkungan runtime selain runtime kustom dan kontainer kustom, jika header permintaan berisi x-fc-log-type: Tail, header respons x-fc-log-result yang dikembalikan berisi log yang dicetak selama eksekusi fungsi. Ukuran log dibatasi hingga 4 KB. Anda dapat melihat log ini dalam hasil eksekusi fungsi di Function Compute console. Jika Anda ingin melihat log runtime dari runtime kustom dalam hasil eksekusi di konsol, Anda harus mencatat log awal dan akhir permintaan dalam kode Anda.
Jika Anda memanggil fungsi secara anonim menggunakan pemicu HTTP, termasuk x-fc-log-type: Tail dalam header permintaan dapat menyebabkan kebocoran informasi sensitif. Untuk mencegah hal ini, aktifkan autentikasi. Untuk informasi selengkapnya, lihat Autentikasi.
Konten log | Wajib | Kode |
Mulai runtime | Tidak Catatan Konten ini merupakan penanda cold start fungsi. |
Catatan
|
Log untuk awal Invoke | Ya |
|
Log untuk akhir Invoke | Ya |
|
Log untuk awal Initialize | Tidak Catatan Wajib untuk fungsi Initializer. |
|
Log akhir inisialisasi | Tidak Catatan Wajib untuk fungsi Initializer. |
|
Selain informasi di atas, sertakan ID permintaan dalam log Anda untuk membantu mendiagnosis masalah. Format log yang direkomendasikan adalah $utcdatetime(yyyy-MM-ddTHH:mm:ss.fff) $requestId [$Level] $message.
Antarmuka untuk menentukan tingkat log bervariasi tergantung bahasa. Anda harus mengatur tingkat log berdasarkan lingkungan runtime Anda. Untuk informasi selengkapnya, lihat Informasi dasar.
Referensi
Untuk informasi selengkapnya tentang lingkungan runtime kustom, perintah startup dan konfigurasi parameter untuk berbagai bahasa, serta konfigurasi fungsi hook siklus hidup instans, lihat topik-topik berikut: