Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan Masalah Fungsi Web Lambda
Mulailah dengan status sumber daya, respons HTTP, dan log untuk permintaan. Fungsi Web mengekspos status terpisah untuk fungsi, revisi, titik akhir, dan setiap Wilayah atau titik akhir. MultiRegion PerRegion Kegagalan dalam satu sumber daya tidak selalu mengubah keadaan yang lain.
catatan
Sebelum Anda menjalankan perintah diagnostik dalam topik ini, pastikan Anda memiliki AWS CLI
akses dan izin untuk memanggil operasi Fungsi get-* Web Lambda.
Kumpulkan informasi diagnostik
-
Dapatkan Fungsi Web, revisi, dan titik akhir. Catat masing-masing
statestateReason,,updateStatus, danupdateStatusReasonnilai.aws lambda-web get-web-function \ --function-namemy-web-appaws lambda-web get-web-function-revision \ --function-namemy-web-app\ --revision-idrevision-idaws lambda-web get-web-function-endpoint \ --function-namemy-web-app\ --endpoint-nameprodGanti
my-web-appdengan nama fungsi Anda,revision-iddengan revisi untuk memeriksa, danproddengan nama endpoint Anda. -
Kirim permintaan dan catat kode status dan header respons.
curl --include https://endpoint-domain/pathlambda-web-request-idHeader mengidentifikasi permintaan. Saat ada,lambda-web-logstreamheader mengidentifikasi aliran CloudWatch log Amazon Logs yang menangani permintaan, danlambda-web-error-typeheader mengidentifikasi kesalahan platform. -
Tinjau log aplikasi dan sistem di grup log terpusat di Wilayah rumah Fungsi Web. Untuk nama grup log dan panduan korelasi, lihatLog Fungsi Web di CloudWatch Log Amazon.
-
Untuk
MultiRegiondanPerRegiontitik akhir, periksa setiap entri di.regionalEndpointsStatus tingkat titik akhir yang sukses tidak berarti bahwa pembaruan terbaru berhasil di setiap Wilayah.
Masalah penyebaran dan startup
| Gejala | Apa yang harus diperiksa | Resolusi |
|---|---|---|
Sebuah revisi adalah Failed |
RevisistateReason, versi objek Amazon S3 yang direferensikan, kebijakan bucket, peran eksekusi, runtime, dan kunci. AWS KMS |
Perbaiki konfigurasi yang mendasarinya dan buat revisi baru. Revisi tidak dapat diubah, dan revisi yang gagal tidak kembali ke. Active |
Titik akhirnya adalahActive, tetapi permintaan gagal selama startup aplikasi |
Log sistem dan aplikasi untuk kesalahan entry-file, kesalahan ketergantungan, atau server yang tidak pernah mendengarkan. AWS_LAMBDA_HTTP_ENDPOINT |
Jalankan aplikasi yang dikemas secara lokal, verifikasi file entri dan dependensi produksi, dan dengarkan host dan port yang tepat yang disediakan Lambda. Terapkan koreksi sebagai revisi baru. |
| Pembaruan titik akhir gagal | updateStatusReasonpada titik akhir dan, untuk MultiRegion dan PerRegion titik akhir, pada setiap entri Regional. |
Perbaiki ketergantungan yang dilaporkan atau kegagalan Regional, lalu panggil UpdateWebFunctionEndpoint lagi untuk mencoba lagi pembaruan. |
does not have s3:GetObject pada create-web-function-revision |
Kode dibaca dari Amazon S3, dan kebijakan bucket atau kebijakan identitas pemanggil tidak memiliki akses baca. | Hibah s3:GetObject dan s3:GetObjectVersion dalam kebijakan bucket (untuk layanan Lambda) dan kebijakan identitas penelepon. |
AccessDenied pada get-web-function-endpoint |
Kebijakan IAM Resource tidak termasuk titik akhir. |
Termasuk web-function/ dalam kebijakanResource. |
Untuk menghindari kegagalan penerapan berulang, validasi konfigurasi dan startup dalam revisi pengujian sebelum Anda membuat revisi produksi.
Kesalahan CLI dan paket
| Kesalahan atau gejala | Penyebab | Resolusi |
|---|---|---|
invalid choice: lambda-web |
Yang diinstal AWS CLI mendahului perintah Fungsi Web. | Perbarui AWS CLI dan verifikasi yang aws lambda-web help mencantumkan operasi Fungsi Web. |
Unknown parameter: BuildConfig |
Permintaan menggunakan nama PascalCase anggota. | Gunakan anggota permintaan CamelCase yang ditunjukkan dalam panduan ini, buildConfig seperticodeConfig,, dan. serviceConfig |
Cannot find module '/var/task/index.js' |
File entri yang diperlukan hilang dari root arsip. | Letakkan index.js di root paket penyebaran. Sertakan setiap file dan dependensi produksi yang diimpornya. |
ERR_MODULE_NOT_FOUNDuntuk file aplikasi |
Arsip menghilangkan sumber atau file bawaan yang diimpor olehindex.js. |
Periksa arsip denganunzip -l, tambahkan file yang hilang, dan buat revisi baru. |
Application.TimeoutListenError, atau HTTP 502 pada permintaan pertama |
Aplikasi mendengarkan pada alamat loopback-only, seperti 127.0.0.1 ataulocalhost, atau pada port selain yang masuk. AWS_LAMBDA_HTTP_ENDPOINT |
Parse AWS_LAMBDA_HTTP_ENDPOINT dan dengarkan host dan port yang tepat itu. |
EMFILE atau too many open files |
Aplikasi membocorkan soket, file, atau koneksi database di seluruh permintaan bersamaan. | Tutup pegangan per permintaan, kumpulan koneksi terikat, dan pantau pegangan terbuka di bawah konkurensi berkelanjutan. |
JavaScript heap out of memory |
Aplikasi mencapai batas heap V8 default, yang lebih rendah dari batas memori 2 GB lingkungan eksekusi, atau permintaan bersamaan menghabiskan memori lingkungan yang tersisa. | Periksa objek yang dipertahankan dan cache tak terbatas, dan kurangi konkurensi. Jika aplikasi membutuhkan heap yang lebih besar, tetapkan batas tumpukan V8 yang lebih besar dengan in. --max-old-space-size NODE_OPTIONS Tinggalkan memori untuk buffer, alokasi asli, dan runtime. |
Cannot find moduleERR_MODULE_NOT_FOUNDKetergantungan/saat runtime |
node_modulestidak termasuk dalam paket penerapan. |
Instal dependensi produksi dan sertakan dalam paket: jalankannpm ci --omit=dev, lalu konfirmasikan dengan. unzip -l function.zip |
| File statis mengembalikan HTTP 404 | Aplikasi menyelesaikan jalur file relatif terhadap direktori kerja, atau file tidak dikemas. | Selesaikan jalur dari direktori modul (__dirnamedi CommonJS, atau import.meta.dirname dalam modul ES), dan konfirmasikan file ada dalam paket denganunzip -l. |
| Kesalahan impor ESM, seperti “Tidak dapat menggunakan pernyataan impor di luar modul” | package.jsontidak mendeklarasikan jenis modul. |
Tambahkan "type": "module" kepackage.json, atau gunakan CommonJS secara konsisten. |
Kegagalan permintaan HTTP
| Respons | Penyebab umum | Resolusi |
|---|---|---|
| HTTP 400 | Klien menggunakan metode HTTP yang tidak didukung atau mengirim permintaan bahwa titik akhir tidak dapat memproses. | Gunakan metode yang didukung dan tinjau header dan batasan permintaan. Permintaan dan tanggapan HTTP |
| HTTP 403 |
|
Konfirmasikan bahwa permintaan menyertakan X-Amz-Content-SHA256 header yang diperlukan, tinjau tanda tangan, dan verifikasi lambda:InvokeWebFunctionEndpoint dalam kebijakan identitas dan sumber daya yang diperlukan. Untuk persyaratan penandatanganan, lihatMenandatangani permintaan. Untuk persyaratan izin, lihatMemberikan izin pemanggilan kepada kepala sekolah. |
| HTTP 404 | Aplikasi tidak menentukan rute yang diminta, atau klien menggunakan domain endpoint usang. HostHeader mungkin juga tidak cocok dengan domain endpoint. Jika Anda mengonfigurasi pintu depan seperti Amazon CloudFront untuk meneruskan Host header penampil ke asal, Lambda mengembalikan kesalahan ini dengan lambda-web-error-type disetel ke. Platform.InvalidEndpoint |
Verifikasi rute saat inidomainName, jalur permintaan, dan aplikasi. Gunakan lambda-web-error-type dan log untuk membedakan respons platform dari respons aplikasi. |
| HTTP 409 | Titik akhir tidakActive, atau titik akhir diselesaikan untuk revisi yang tidak. Active |
Periksa status revisi dan titik akhir. Jika titik akhir adalahPending, tunggu dan coba lagi; jika yaFailed, buat titik akhir baru. Untuk revisi, hapus revisi yang gagal atau tidak aktif dari bobot titik akhir, dan buat revisi pengganti bila diperlukan. |
| HTTP 429 | Salah satu dari hal berikut terjadi:
|
Baca lambda-web-error-type header untuk mengidentifikasi batas mana yang diterapkan. Lihat Jenis kesalahan Fungsi Web. Tinjau metrik throttle (EndpointRequestThrottles,,, danAccountActiveVCPUArm64Throttles) AccountRequestThrottlesEndpointActiveEnvironmentThrottles, metrik kapasitas aktif, pengaturan titik akhir, dan batas akun yang diterapkan. Pelambatan inisialisasi bersamaan (Platform.EndpointConcurrentInitThrottle) tidak menambah metrik throttle. Coba lagi hanya permintaan idempoten, menggunakan backoff dan jitter. |
| HTTP 502 | Aplikasi Anda gagal sebelum mulai melayani permintaan, Lambda tidak dapat menyiapkan lingkungan eksekusi untuk Fungsi Web Anda, atau aplikasi Anda mengembalikan respons yang tidak valid. | Gunakan lambda-web-error-type dan log sistem untuk mengidentifikasi penyebabnya. Lihat Jenis kesalahan Fungsi Web. |
| HTTP 503 | Aplikasi macet saat menangani permintaan, titik akhir dinonaktifkan, atau Lambda tidak dapat memperoleh kapasitas atau mencapai aplikasi. | Gunakanlambda-web-error-type, saat ada, dan log aplikasi dan sistem untuk mengidentifikasi penyebabnya. Lihat Jenis kesalahan Fungsi Web. 503 tanpa lambda-web-error-type dapat menunjukkan pelepasan beban sementara atau kesalahan internal. Dalam kedua kasus tersebut, coba lagi permintaan idempoten dengan backoff dan jitter. |
| HTTP 504 | Aplikasi tidak merespons dalam batas waktu revisi ()Runtime.RequestTimeout. |
Periksa latensi revisi timeoutSeconds dan hilir. |
| HTTP 5xx lainnya | Aplikasi mengembalikan status 5xx, atau Lambda mengalami kesalahan internal (lambda-web-error-typetidak ada header). |
Gunakan ID permintaan, header log-stream, log aplikasi, dan log sistem untuk mengidentifikasi sumber, dan memeriksa kesehatan proses. |
| Permintaan hang atau waktu habis pada unggahan besar; log menunjukkan 0 byte yang diterima | Pawang mulai menulis tanggapan saat badan permintaan masih tiba. Jalur permintaan Fungsi Web adalah half-duplex: Lambda meneruskan badan permintaan lengkap sebelum memberikan respons aplikasi Anda. | Baca isi permintaan sepenuhnya sebelum Anda menulis tanggapan. Badan di bawah sekitar 1 MB cocok dengan buffer soket dan dapat menutupi ini. |
Minta batas header
Dua batasan berlaku untuk header permintaan. Lambda membatasi blok header menjadi 128 KiB dan menolak permintaan yang lebih besar sebelum mencapai fungsi Anda. Server Node.js HTTP dalam fungsi Anda juga membatasi jumlah baris header yang diterimanya. Keduanya mengembalikan HTTP 431 Request Header Fields Too Large, seperti yang ditunjukkan pada tabel berikut. Untuk batas platform, lihatBatas header.
| Gejala | Penyebab | Resolusi |
|---|---|---|
HTTP 431 dengan lambda-web-error-type: Platform.HeaderTooLarge Tidak ada pemanggilan dan tidak ada entri log aplikasi. |
Kepala permintaan melebihi 131.072 byte (128 KiB), diukur pada kepala permintaan penuh saat klien mengirimkannya. | Kurangi ukuran header permintaan. Batas ini tidak dapat dinaikkan. |
HTTP 431 dengan lambda-web-request-id dan lambda-web-logstream tetapi tidaklambda-web-error-type. Handler tidak berjalan. |
Permintaan memiliki lebih dari 1.000 baris header yang diterima oleh Node.js server, termasuk header yang ditambahkan Lambda. | Naikkan server.maxHeadersCount kode server Anda, atau kurangi jumlah baris header yang dikirim klien. |
Batas ukuran menghitung setiap byte kepala permintaan saat klien mengirimkannya. Ini termasuk baris permintaan, setiap baris header (termasuk Host dan header apa pun yang ditambahkan pustaka klien), dan terminator baris. Header yang ditambahkan Lambda tidak dihitung terhadap batas ukuran.
Ketika permintaan melebihi batas ukuran, Lambda menolaknya sebelum mencapai fungsi Anda, sehingga permintaan tidak menghasilkan pemanggilan dan tidak ada entri log aplikasi. Header lambda-web-error-type respons mengidentifikasi penyebabnya.
Batas Node.js hitungan menghitung baris header, bukan nama header yang berbeda. Header yang diulang tiga kali dihitung tiga kali. Akibatnya, permintaan yang mengakumulasi x-forwarded-for atau melacak header melalui rantai proxy dapat mencapai batas. Tidak ada header tunggal yang perlu terlihat tidak biasa agar hal ini terjadi. Batas diukur pada permintaan yang diterima fungsi Anda, yang mencakup header yang ditambahkan Lambda. Akibatnya, klien yang mengirim sedikit kurang dari 1.000 baris header dapat mencapainya. Ketika itu terjadi, permintaan mencapai lingkungan eksekusi Anda, dan Node.js server menolaknya selama penguraian. Handler Anda tidak berjalan. Respons membawa lambda-web-request-id dan lambda-web-logstream header, tetapi tidak membawa lambda-web-error-type header.
Jika aplikasi Anda harus menerima lebih banyak baris header daripada yang Node.js diizinkan default, tingkatkan Node.js batas dalam kode server Anda. Setel server.maxHeadersCount ke jumlah baris header yang akan diterima, atau atur 0 untuk menonaktifkan pemeriksaan Node.js hitungan. Batas ukuran 128 KiB masih berlaku.
const server = http.createServer(handler); server.maxHeadersCount = 2000; server.listen(port, host);
Anda tidak perlu mengubah batas ukuran Node.js header. Node.jsRuntime terkelola menyetelnya agar sesuai dengan batas platform, sehingga batas platform berlaku untuk ukuran header. Anda tidak dapat menaikkan batas platform dari kode aplikasi.
Untuk tetap berada dalam batas, pindahkan status massal dari header dan ke badan permintaan, potong cookie, dan ciutkan proxy redundan dan header penelusuran sebelum permintaan mencapai titik akhir. Jika CloudFront distribusi berada di depan titik akhir, teruskan hanya header yang dibutuhkan aplikasi Anda dalam kebijakan permintaan asal.
Jenis kesalahan Fungsi Web
Ketika permintaan ke titik akhir Fungsi Web gagal, Lambda mengembalikan header respons lambda-web-error-type yang mengidentifikasi apa yang salah. Nilai menggunakan format<Prefix>.<ErrorReason>: awalan memberitahu Anda di mana kesalahan terjadi, dan alasannya menentukan penyebabnya.
| Awalan | Dimana kesalahan terjadi |
|---|---|
Platform. |
Lapisan platform Lambda, yang merutekan dan memvalidasi permintaan, memeriksa izin, dan memberlakukan batasan. |
Runtime. |
Runtime terkelola yang memuat dan menjalankan fungsi Anda. |
Application. |
Kode fungsi Anda. |
Misalnya, Runtime.RequestTimeout berarti runtime terkelola melaporkan bahwa fungsi Anda tidak merespons dalam batas waktu yang dikonfigurasi, dan Application.InitCodeError berarti kode inisialisasi Anda sendiri menimbulkan kesalahan.
Lambda menyertakan lambda-web-error-type header ketika kesalahan disebabkan oleh permintaan itu sendiri atau oleh fungsi Anda, konfigurasinya, atau kodenya. Lambda menghilangkan header untuk kesalahan layanan internal dan untuk kegagalan otorisasi, sehingga tidak ada detail yang diungkapkan kepada penelepon yang tidak sah. Nilai menunjukkan masalah di jalur antara platform Lambda dan fungsi Anda. Pada jalur permintaan, kesalahan mengidentifikasi di mana permintaan gagal. Di jalur respons, gunakan nilai bersama dengan telemetri aplikasi Anda untuk memahami apa yang terjadi.
| Jenis kesalahan | Deskripsi |
|---|---|
Platform.MalformedRequest |
Lambda tidak dapat mengurai permintaan, atau baris permintaan atau metode tidak diterima. |
Platform.MissingHostHeader |
Permintaan tidak menyertakan header Host, jadi Lambda tidak dapat menyelesaikan titik akhir target. |
Platform.InvalidEndpoint |
Header Host tidak menyelesaikan ke titik akhir yang valid dan sudah ada. |
Platform.HeaderTooLarge |
Bagian header permintaan melebihi batas ukuran header Lambda. |
Platform.DisallowedHeader |
Permintaan berisi header yang tidak diterima Lambda. Lambda mengembalikan HTTP 400. |
Platform.UnsupportedHttpVersion |
Permintaan menggunakan versi HTTP selain HTTP/1.1, yang memerlukan Fungsi Web. |
Platform.CannotAssumeRole |
Lambda tidak dapat mengambil peran eksekusi fungsi Anda. |
Platform.KMSDecryptionError |
Lambda tidak dapat menggunakan AWS KMS kunci yang dikonfigurasi untuk mendekripsi variabel lingkungan Anda atau data lain yang diperlukan untuk menginisialisasi fungsi Anda. |
Platform.InvalidNetworkConfiguration |
Sumber daya jaringan VPC yang bergantung pada fungsi Anda tidak valid. Untuk menemukan penyebabnya, lihatMasalah jaringan dan konektivitas. |
Platform.RevisionNotActive |
Revisi fungsi yang ditargetkan oleh permintaan tidak dalam status Aktif. Revisi mungkin masih aktif atau mungkin gagal diaktifkan. Periksa status revisi; jika aktivasi masih berlangsung, coba lagi setelah penundaan singkat. |
Platform.EndpointNotActive |
Titik akhir tidak dalam status Aktif. Titik akhir mungkin masih disediakan atau mungkin tidak tersedia. Periksa status titik akhir; jika masih dibuat, coba lagi setelah penundaan singkat. |
Platform.EndpointDisabled |
Titik akhir rateLimit adalah 0, jadi Lambda menolak semua permintaan dengan HTTP 503. Setel rateLimit ke nilai bukan nol untuk melanjutkan lalu lintas. |
Platform.AccountDisabled |
Pemanggilan Fungsi Web dinonaktifkan untuk akun. Lambda mengembalikan HTTP 403. Kontak AWS Dukungan. |
Platform.AccountRequestThrottle |
Kuota tingkat permintaan tingkat akun terlampaui. |
Platform.EndpointRequestThrottle |
Kuota tingkat permintaan titik akhir terlampaui. |
Platform.AccountActiveVCPUArm64Throttle |
Kuota vCPU aktif akun tercapai. |
Platform.EndpointMaxEnvThrottle |
Batas lingkungan maksimum titik akhir tercapai. |
Platform.EndpointConcurrentInitThrottle |
Terlalu banyak lingkungan eksekusi yang diinisialisasi pada saat yang sama untuk titik akhir. Coba lagi dengan backoff eksponensial. |
Runtime.RequestTimeout |
Fungsi Anda tidak mengembalikan respons dalam batas waktu yang dikonfigurasi. |
Runtime.OutOfMemory |
Fungsi Anda melebihi batas memori dan proses dihentikan. |
Runtime.Unreachable |
Proses runtime macet, keluar, atau menolak koneksi. |
Runtime.Exit |
Proses runtime keluar di antara permintaan. |
Runtime.ExitError |
Proses runtime keluar dengan kesalahan. |
Runtime.InvalidResponse |
Header respons runtime melebihi buffer baca. |
Runtime.OriginRequestError |
Proses aplikasi gagal saat menangani permintaan. Periksa log aplikasi untuk detailnya. |
Runtime.ImportCodeError |
Runtime tidak dapat mengimpor atau menyelesaikan titik masuk Anda, misalnya modul yang hilang atau jalur yang buruk. |
Runtime.InitTimeout |
Fungsi Anda melebihi batas waktu init saat menyediakan kotak pasir. |
Application.InitCodeError |
Kode inisialisasi Anda menimbulkan kesalahan sebelum fungsi mulai melayani permintaan. |
Application.TimeoutListenError |
Kode inisialisasi Anda tidak mulai mendengarkan pada port sebelum batas waktu inisialisasi. |
Untuk metrik pelambatan yang mengidentifikasi batas mana yang diterapkan (untuk jenisPlatform.AccountRequestThrottle,, Platform.EndpointRequestThrottlePlatform.AccountActiveVCPUArm64Throttle, dan Platform.EndpointMaxEnvThrottle kesalahan), lihat. Penggunaan regional dan metrik pelambatan
Log atau metrik tidak ada
-
Verifikasi bahwa peran eksekusi dapat membuat grup log dan aliran dan menempatkan peristiwa log untuk grup log tujuan dan
.localpendampingnya. -
Lihat di grup log terpusat di Wilayah asal. Jangan membuat diagnostik yang bergantung pada Replica-region atau
.localgrup log sementara. -
Atur
systemLogLevelkeDEBUGsaat Anda membutuhkannyaplatform.requestComplete. -
Izinkan penundaan pengiriman telemetri setelah membuat atau memperbarui sumber daya. Jangan memperlakukan ketidakhadiran sementara peristiwa metrik atau log sebagai bukti bahwa permintaan tidak berjalan.
-
Ingatlah bahwa metrik jarang. Konfigurasikan alarm untuk memperlakukan metrik kesalahan yang hilang sebagai tidak melanggar jika perlu.
Jika tidak ada log aplikasi yang muncul sama sekali, peran eksekusi mungkin tidak memiliki izin Amazon CloudWatch Logs. Lampirkan kebijakan AWSLambdaBasicExecutionRole terkelola ke peran eksekusi, atau hibahlogs:CreateLogGroup,logs:CreateLogStream, danlogs:PutLogEvents. Untuk izin yang diperlukan, lihat Peran eksekusi.
Masalah penyimpanan dan enkripsi kode
- Versi objek Amazon S3 yang hilang atau tidak dapat diakses
-
Konfirmasikan bahwa bucket masih mengaktifkan versi, versi objek yang tepat ada, dan pemanggil dan kepala layanan Lambda memiliki izin baca yang diperlukan. Jika revisi aktif kehilangan akses ke versi objek yang disematkan, buat revisi baru yang mereferensikan versi yang tersedia. Lihat perinciannya di Menyebarkan kode Fungsi Web dari Amazon S3.
- AWS KMS kegagalan akses
-
Periksa izin pemanggil, kebijakan kunci, konteks enkripsi, status kunci, dan izin kepala layanan Lambda.
kms:DecryptUntukMultiRegiondanPerRegiontitik akhir, verifikasi bahwa replika AWS KMS kunci Multi-wilayah ada dan dapat digunakan di setiap Wilayah target. Lihat perinciannya di Enkripsi saat istirahat untuk Fungsi Web.
Masalah dengan MultiRegiondan titik PerRegionakhir
Gunakan regionalEndpoints bidang untuk mengidentifikasi Wilayah yang terpengaruh. Bandingkan stateReason dan updateStatusReason dengan Daerah yang sehat. Periksa kuota Regional, replika AWS KMS kunci, ketersediaan runtime, dan status replikasi revisi. Setelah memperbaiki penyebabnya, ulangi pembaruan titik akhir. Untuk model replikasi, lihatMulti-Region penyebaran.
Untuk MultiRegion titik akhir, perutean berbasis latensi (yang mengarahkan permintaan ke Wilayah dengan latensi terukur terendah) tidak menjamin bahwa setiap permintaan masuk ke Wilayah latensi terendah. Uji dari lokasi klien yang terpengaruh dan periksa log aplikasi untuk menentukan Wilayah mana yang menangani permintaan. Untuk PerRegion titik akhir, verifikasi juga DNS eksternal atau konfigurasi perutean pintu depan Anda.
Masalah jaringan dan konektivitas
Sebagian besar masalah konektivitas berasal dari revisi penyajian yang tidak memiliki referensi konektor atau referensi versi konektor yang lebih lama, atau dari subnet konektor, grup keamanan, atau rute yang memblokir lalu lintas.
Gunakan urutan berikut untuk mengisolasi masalah konektivitas:
Jalankan
get-web-function-endpoint. Periksa mode penerapan otomatis dan konfirmasikan revisi atau revisi mana yang menerima lalu lintas.Jalankan
get-web-function-revisionuntuk setiap revisi penyajian. Konfirmasikan bahwa statusnyaActivedan itu merujuk pada versi konektor yang diharapkan.Jalankan
aws lambda-core get-network-connector --identifierdengan konektor ARN dari revisi.egressNetworkConnectorArnKonfirmasikanStateituACTIVEdan, jika konektor telah diperbarui,LastUpdateStatusituSuccessful. Jika tidak, gunakanStateReasonCodeatauLastUpdateStatusReasonCodeuntuk mengidentifikasi penyebabnya, sepertiInsufficientRolePermissions,InvalidSubnet, atauSubnetOutOfIPAddresses.Uji tujuan dengan alamat IP untuk memisahkan jangkauan jaringan dari resolusi DNS.
Periksa rute subnet konektor, grup keamanan tujuan, dan ACL jaringan.
Tinjau Log Aliran VPC pada subnet konektor.
Gejala umum termasuk yang berikut ini.
| Gejala | Memeriksa |
|---|---|
| Internet publik berfungsi, tetapi sumber daya VPC tidak | Revisi penyajian tidak memiliki referensi konektor. |
| Akses VPC berfungsi untuk beberapa permintaan | Titik akhir merutekan ke dua revisi dengan konfigurasi konektor yang berbeda. |
| Pembaruan konektor tidak berpengaruh | Revisi penyajian mereferensikan versi konektor yang lebih lama. |
| Akses publik berhenti setelah menambahkan konektor | Subnet konektor tidak memiliki rute NAT atau IPv6 yang diperlukan. |
| Satu waktu tujuan VPC habis | Grup keamanan tujuan, tabel rute, atau ACL jaringan memblokir koneksi. |
| Flow Logs tidak berisi catatan yang cocok | Lalu lintas tidak masuk ke VPC. Periksa kembali revisi penyajian dan referensi konektor. |
| Nama pribadi gagal tetapi koneksi IP langsung berfungsi | Periksa atribut DNS VPC dan asosiasi zona host pribadi. |
| IPv4 berfungsi tetapi IPv6 gagal | Periksa versi DualStack konektor, rute IPv6, dan aturan keamanan IPv6. |
Revisi penyajian adalah Active tetapi fungsinya tidak dapat mencapai sumber daya VPC pribadi |
Revisi penyajian tidak menetapkan konektor jaringan keluar (). egressNetworkConnectorArn Baca bidang denganget-web-function-revision; jika kosong, buat revisi yang menetapkanegressNetworkConnectorArn. Lihat perinciannya di Mengkonfigurasi jaringan untuk AWS Lambda Fungsi Web. |
Tidak ada akses interaktif ke lingkungan eksekusi Fungsi Web. Gunakan log aplikasi, header respons titik akhir, bidang status sumber daya, CloudWatch metrik, dan Log Aliran VPC untuk mendiagnosis kegagalan.
Siapkan bundel eskalasi
Jika pemeriksaan sebelumnya tidak mengidentifikasi penyebabnya, kumpulkan informasi berikut sebelum membuka kasus. AWS Dukungan Hal ini memungkinkan insinyur dukungan menghubungkan operasi pesawat kontrol, penyebaran Regional, permintaan, dan telemetri:
-
Akun AWS ID, Wilayah rumah, nama fungsi, ID revisi, nama titik akhir, tipe titik akhir, dan Wilayah target.
-
Timestamp UTC dan jalur permintaan untuk kegagalan representatif, bersama dengan status HTTP,,
lambda-web-request-idlambda-web-logstream, danlambda-web-error-typeheader respons. -
Fungsi, revisi, endpoint, dan Regional
state,stateReasonupdateStatus, danupdateStatusReasonnilai-nilai. -
Aplikasi terpusat yang relevan dan peristiwa log sistem, metrik throttle dan kapasitas, dan perkiraan tingkat lalu lintas saat masalah terjadi.
-
AWS CLI Versi dan salinan permintaan manajemen yang disunting. Hapus kredensyal, rahasia aplikasi, token, dan data permintaan sensitif.