Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah penyedia identitas kustom
Bagian ini menjelaskan kemungkinan solusi untuk masalah yang terkait dengan penyedia identitas kustom dengan Transfer Family.
Topik
Memecahkan masalah kesalahan integrasi API Gateway
Deskripsi
Pengguna tidak dapat melakukan autentikasi dengan server Transfer Family Anda, dan saat menguji penyedia identitas Anda, Anda akan melihat kesalahan seperti:
{ "Response": "", "StatusCode": 500, "Message": "Internal server error" }
Menyebabkan
Kesalahan integrasi API Gateway dapat terjadi karena:
-
Konfigurasi API Gateway salah
-
Kesalahan fungsi Lambda tidak ditangani dengan benar
-
Masalah izin antara API Gateway dan Lambda
-
Tanggapan cacat dari fungsi Lambda
Solusi
Untuk memecahkan masalah kesalahan integrasi API Gateway:
-
Periksa log fungsi Lambda Anda untuk informasi kesalahan terperinci:
-
Di CloudWatch konsol, navigasikan ke Grup log >/aws/lambda/your-function-name
-
Cari pesan kesalahan atau jejak tumpukan yang menunjukkan akar penyebabnya
-
-
Verifikasi bahwa fungsi Lambda Anda mengembalikan respons yang diformat dengan benar:
{ "Role": "arn:aws:iam::123456789012:role/TransferUserRole", "HomeDirectory": "/mybucket/home/username" } -
Aktifkan CloudWatch pencatatan terperinci untuk API Gateway:
-
Di konsol API Gateway, pilih API Anda dan pilih Tahapan
-
Pilih panggung Anda dan di bawah Logs/Tracing, aktifkan Log CloudWatch
-
Atur level log ke ERROR atau INFO
-
-
Uji titik akhir API Gateway Anda secara langsung:
curl -X POST https://your-api-id.execute-api.region.amazonaws.com/prod/servers/your-server-id/users/username/config \ -H "Content-Type: application/json" \ -d '{"Password": "password"}' -
Verifikasi izin antara API Gateway dan Lambda:
-
Pastikan API Gateway memiliki izin untuk menjalankan fungsi Lambda Anda
-
Periksa apakah peran eksekusi untuk fungsi Lambda Anda memiliki izin yang diperlukan
-
Memecahkan masalah batas waktu fungsi Lambda
Deskripsi
Saat pengguna mencoba mengautentikasi dengan server Transfer Family Anda menggunakan penyedia identitas khusus, mereka mengalami penundaan yang lama diikuti oleh kegagalan otentikasi. Di log Lambda Anda, Anda melihat kesalahan batas waktu.
Menyebabkan
Fungsi Lambda yang digunakan untuk penyedia identitas kustom memiliki batas waktu default 3 detik. Jika logika otentikasi Anda membutuhkan waktu lebih lama dari batas waktu ini (misalnya, saat menanyakan database eksternal atau melakukan panggilan API ke penyedia identitas pihak ketiga), fungsi akan habis waktu dan otentikasi akan gagal.
Solusi
Untuk mengatasi masalah batas waktu Lambda:
-
Tingkatkan batas waktu fungsi Lambda:
-
Di konsol Lambda, navigasikan ke fungsi Anda dan pilih tab Konfigurasi
-
Di bawah Konfigurasi umum, klik Edit
-
Tingkatkan nilai batas waktu (disarankan hingga 15 detik untuk fungsi otentikasi)
-
-
Optimalkan kode fungsi Lambda Anda:
-
Gunakan penyatuan koneksi untuk kueri basis data
-
Menerapkan caching untuk data yang sering diakses
-
Minimalkan panggilan API eksternal selama otentikasi
-
-
Pertimbangkan untuk menggunakan Lambda Provisioned Concurrency untuk menghilangkan cold start:
aws lambda put-provisioned-concurrency-config \ --function-name my-authentication-function \ --qualifier prod \ --provisioned-concurrent-executions 5 -
Pantau kinerja Lambda menggunakan CloudWatch metrik dan atur alarm untuk ambang batas durasi
Memecahkan masalah batas waktu Lambda yang konsisten
Deskripsi
Pengguna mengalami batas waktu yang konsisten saat menggunakan fungsi Lambda untuk otentikasi.
Menyebabkan
Lambda tidak dapat menjangkau AWS layanan terkait yang digunakan untuk mengautentikasi (seperti DynamoDB, Secrets Manager, atau penyedia identitas lainnya).
Solusi
Verifikasi bahwa subnet dapat menjangkau AWS layanan. Atau, jika terhubung ke penyedia identitas internet (seperti Okta), verifikasi bahwa subnet fungsi Lambda dapat menjangkau internet melalui Gateway NAT
Memecahkan masalah pengecualian KeyError
Deskripsi
Dalam entri log Transfer Family Anda, Anda melihat pengecualian KeyError ''.
Menyebabkan
Penyebab yang paling mungkin adalah bahwa pengguna atau identity_provider catatan salah bentuk atau kehilangan bidang wajib.
Solusi
Tinjau ERRORS log, yang terletak di grup /aws/transfer/ log untuk petunjuk.your-server-id