

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
Masalah penyedia identitas khusus

Bagian ini menjelaskan kemungkinan solusi untuk masalah yang terkait dengan penyedia identitas kustom dengan Transfer Family.

**Topics**
+ [

## Memecahkan masalah kesalahan integrasi API Gateway
](#api-gateway-errors)
+ [

## Memecahkan masalah batas waktu fungsi Lambda
](#lambda-timeout-issues)
+ [

## Memecahkan masalah batas waktu Lambda yang konsisten
](#lambda-timeout-auth)
+ [

## Memecahkan masalah pengecualian `KeyError`
](#keyerror-logs)

## 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:

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

1. Verifikasi bahwa fungsi Lambda Anda mengembalikan respons yang diformat dengan benar:

   ```
   {
       "Role": "arn:aws:iam::123456789012:role/TransferUserRole",
       "HomeDirectory": "/mybucket/home/username"
   }
   ```

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

1. 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"}'
   ```

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

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

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

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

1. 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/your-server-id` log untuk petunjuk.