

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kesalahan pengecualian throughput yang disediakan
<a name="kinesis-fis-provisioned-throughput"></a>

Throughput yang disediakan melebihi kesalahan pengecualian (HTTP 400) terjadi ketika tingkat permintaan untuk aliran Kinesis melampaui batas throughput dari satu atau lebih pecahan. Setiap pecahan memiliki batas kapasitas baca, dan tulis tertentu, dan melebihi batas tersebut memicu pengecualian ini. Skenario yang mengarah ke pengecualian ini meliputi: lonjakan mendadak dalam konsumsi atau konsumsi data, kapasitas pecahan yang tidak mencukupi untuk volume data yang sedang diproses, atau distribusi kunci partisi yang tidak merata.

**Rekomendasi untuk menangani pengecualian**
+ Menerapkan mekanisme back-off dan coba ulang eksponensial.
+ Tingkatkan jumlah pecahan untuk mengakomodasi throughput yang lebih tinggi.
+ Pastikan bahwa ada distribusi kunci partisi yang tepat.
+ Pantau metrik aliran.

Selain itu, menggunakan mode kapasitas Kinesis sesuai permintaan membantu menyesuaikan beban kerja secara otomatis, dan meminimalkan terjadinya pengecualian ini. Untuk informasi selengkapnya, lihat [Apa itu AWS Fault Injection Service?](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)

**catatan**  
Masalah distribusi yang tidak tepat berada di luar kemampuan mode on-demand dari penskalaan otomatis.

**Untuk melakukan eksperimen dasar**

1. Gunakan metrik dasar: catat pola throughput normal sebelum pengujian.

1. Buat eksperimen: gunakan `aws:kinesis:inject-api-provisioned-throughput-exception` tindakan.

1. Konfigurasikan intensitas: mulai dengan pelambatan permintaan 25%.

1. Pantau tanggapan: verifikasi logika coba ulang dengan back-off eksponensial.

1. Validasi penskalaan: konfirmasikan bahwa auto-scaling memicu aktivasi.

1. Periksa alarm: pastikan `CloudWatch` alarm berjalan seperti yang diharapkan.

Aplikasi harus menerapkan strategi, monitor, dan `ReadProvisionedThroughputExceeded` metrik back-off yang tepat`WriteProvisionedThroughputExceeded`, dan memicu penskalaan shard bila sesuai.

**Detail tindakan**
+ **Jenis Sumber Daya**: IAM Peran ARN
+ **Operasi Target**:`PutRecord`,`PutRecords`, `GetRecords`
+ ****Kode Kesalahan****: `ProvisionedThroughputExceededException` (HTTP 400)
+ ****Deskripsi****: mensimulasikan skenario di mana tingkat permintaan melebihi batas kapasitas pecahan, menguji pelambatan aplikasi, dan respons penskalaan.

**Parameter**
+ **IAM Role ARN**: peran yang digunakan aplikasi Anda untuk operasi Kinesis Data Streams.
+ **Operasi**: operasi target:`PutRecord`,`PutRecords`,`GetRecords`.
+ **Daftar Sumber Daya**: nama aliran tertentu atau pengidentifikasi pecahan.
+ **Durasi**: durasi percobaan, yaitu durasi dari satu menit hingga 12 jam. Di AWS FIS API, nilainya adalah string dalam format ISO 8601. Misalnya, PT1 M mewakili satu menit. Di AWS FIS konsol, Anda memasukkan jumlah detik, menit, atau jam.
+ **Intensitas**: persentase permintaan untuk throttle.

**Izin yang diperlukan**
+ `kinesis:InjectApiError`

Contoh template percobaan

 Contoh berikut menunjukkan pengecualian throughput yang disediakan untuk semua permintaan hingga 5 aliran Data Kinesis dengan tag yang ditentukan. AWS FIS memilih aliran untuk mempengaruhi secara acak. Setelah 5 menit kesalahan dihapus.

```
{
    "description": "Kinesis stream experiment",
    "targets": {
        "KinesisStreams-Target-1": {
            "resourceType": "aws:kinesis:stream",
            "resourceTags": {
                   "tag-key": "tag-value"
            },
            "selectionMode": "COUNT(5)"
        }
    },
    "actions": {
         "kinesis": {
              "actionId": "aws:kinesis:stream-provisioned-throughput-exception",
              "description": "my-stream",
              "parameters": {
                   "duration": "PT5M",
                   "percentage": "100",
                   "service": "kinesis"
              },
              "targets": {
                    "KinesisStreams": "KinesisStreams-Target-1"
              }
         }
   },
   "stopConditions": [
         {
              "source": "none"
         }
   ],
   "roleArn": "arn:aws:iam::111122223333:role/role-name",
   "tags": {},
   "experimentOptions": {
       "accountTargeting": "single-account",
       "emptyTargetResolutionMode": "fail"
   }    
}
```

Contoh izin peran percobaan

Izin berikut memungkinkan Anda menjalankan `aws:kinesis:stream-provisioned-throughput-exception` dan `aws:kinesis:stream-expired-iterator-exception` tindakan pada aliran tertentu yang memengaruhi 50% permintaan.