Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS CLI mencoba lagi di AWS CLI
Topik ini menjelaskan bagaimana AWS CLI mungkin melihat panggilan ke AWS layanan gagal karena masalah yang tidak terduga. Masalah ini dapat terjadi di sisi server atau mungkin gagal karena pembatasan tarif dari AWS layanan yang Anda coba panggil. Kegagalan semacam ini biasanya tidak memerlukan penanganan khusus dan panggilan dilakukan secara otomatis lagi, seringkali setelah masa tunggu yang singkat. AWS CLI Ini menyediakan banyak fitur untuk membantu mencoba kembali panggilan klien ke AWS layanan ketika jenis kesalahan atau pengecualian ini dialami.
Mode coba lagi yang tersedia
Ini AWS CLI memiliki beberapa mode untuk dipilih tergantung pada versi Anda:
Mode coba lagi lama
Mode lama menggunakan penangan coba lagi yang lebih lama yang memiliki fungsionalitas terbatas yang meliputi:
-
Nilai default 4 untuk percobaan ulang maksimum, membuat total 5 upaya panggilan. Nilai ini dapat ditimpa melalui parameter
max_attempts
konfigurasi. -
DynamoDB memiliki nilai default 9 untuk percobaan ulang maksimum, membuat total 10 upaya panggilan. Nilai ini dapat ditimpa melalui parameter
max_attempts
konfigurasi. -
Coba lagi upaya untuk sejumlah kesalahan/pengecualian terbatas berikut:
-
Kesalahan soket/koneksi umum:
-
ConnectionError
-
ConnectionClosedError
-
ReadTimeoutError
-
EndpointConnectionError
-
-
Kesalahan dan pengecualian pelambatan sisi layanan/batas:
-
Throttling
-
ThrottlingException
-
ThrottledException
-
RequestThrottledException
-
ProvisionedThroughputExceededException
-
-
-
Coba lagi pada beberapa kode HTTP status, termasuk 429, 500, 502, 503, 504, dan 509.
-
Setiap upaya coba lagi akan mencakup backoff eksponensial dengan faktor dasar 2.
Mode coba lagi standar
Mode standar adalah seperangkat aturan coba ulang standar di seluruh AWS SDKs dengan lebih banyak fungsionalitas daripada warisan. Mode ini adalah default untuk AWS CLI versi 2. Mode standar dibuat untuk AWS CLI versi 2 dan di-backport ke AWS CLI versi 1. Fungsionalitas mode standar meliputi:
-
Nilai default 2 untuk percobaan ulang maksimum, membuat total 3 upaya panggilan. Nilai ini dapat ditimpa melalui parameter
max_attempts
konfigurasi. -
Coba lagi upaya untuk daftar kesalahan/pengecualian yang diperluas berikut:
-
Kesalahan/pengecualian sementara
-
RequestTimeout
-
RequestTimeoutException
-
PriorRequestNotComplete
-
ConnectionError
-
HTTPClientError
-
-
Kesalahan dan pengecualian pelambatan sisi layanan/batas:
-
Throttling
-
ThrottlingException
-
ThrottledException
-
RequestThrottledException
-
TooManyRequestsException
-
ProvisionedThroughputExceededException
-
TransactionInProgressException
-
RequestLimitExceeded
-
BandwidthLimitExceeded
-
LimitExceededException
-
RequestThrottled
-
SlowDown
-
EC2ThrottledException
-
-
-
Coba lagi upaya pada kode kesalahan sementara yang tidak deskriptif. Secara khusus, kode HTTP status ini: 500, 502, 503, 504.
-
Setiap upaya coba lagi akan mencakup backoff eksponensial dengan faktor dasar 2 untuk waktu backoff maksimum 20 detik.
Mode coba lagi adaptif
Awas
Mode adaptif adalah mode eksperimental dan dapat berubah, baik dalam fitur maupun perilaku.
Mode coba lagi adaptif adalah mode coba ulang eksperimental yang mencakup semua fitur mode standar. Selain fitur mode standar, mode adaptif juga memperkenalkan pembatasan laju sisi klien melalui penggunaan bucket token dan variabel rate-limit yang diperbarui secara dinamis dengan setiap upaya coba lagi. Mode ini menawarkan fleksibilitas dalam percobaan ulang sisi klien yang menyesuaikan dengan respons status kesalahan/pengecualian dari suatu layanan. AWS
Dengan setiap upaya coba lagi baru, mode adaptif memodifikasi variabel batas laju berdasarkan kesalahan, pengecualian, atau kode HTTP status yang disajikan dalam respons dari layanan. AWS Variabel rate-limit ini kemudian digunakan untuk menghitung tingkat panggilan baru untuk klien. Setiap HTTP respons pengecualian/kesalahan atau tidak berhasil (disediakan dalam daftar di atas) dari AWS layanan memperbarui variabel batas kecepatan saat percobaan ulang terjadi hingga keberhasilan tercapai, keranjang token habis, atau nilai upaya maksimum yang dikonfigurasi tercapai.
Mengkonfigurasi mode coba lagi
AWS CLI Termasuk berbagai konfigurasi coba lagi serta metode konfigurasi untuk dipertimbangkan saat membuat objek klien Anda.
Metode konfigurasi yang tersedia
Di AWS CLI, pengguna dapat mengonfigurasi percobaan ulang dengan cara berikut:
-
Variabel-variabel lingkungan
-
AWS CLI berkas konfigurasi
Pengguna dapat menyesuaikan opsi coba lagi berikut:
-
Mode coba lagi - Menentukan modus coba lagi yang digunakan. AWS CLI Seperti dijelaskan sebelumnya, ada tiga mode coba lagi yang tersedia: warisan, standar, dan adaptif. Nilai default untuk 2 adalah standar.
-
Upaya maksimal - Menentukan nilai percobaan ulang maksimum yang digunakan oleh penangan AWS CLI coba lagi, di mana panggilan awal diperhitungkan terhadap nilai yang Anda berikan. Nilai bawaannya adalah 5.
Mendefinisikan konfigurasi coba lagi dalam variabel lingkungan Anda
Untuk menentukan konfigurasi coba ulang Anda AWS CLI, perbarui variabel lingkungan sistem operasi Anda.
Variabel lingkungan coba lagi adalah:
-
AWS_RETRY_MODE
-
AWS_MAX_ATTEMPTS
Untuk informasi lebih lanjut tentang variabel lingkungan, lihatMengkonfigurasi variabel lingkungan untuk AWS CLI.
Mendefinisikan konfigurasi coba lagi dalam file konfigurasi Anda AWS
Untuk mengubah konfigurasi coba lagi, perbarui file AWS konfigurasi global Anda. Lokasi default untuk file AWS konfigurasi Anda adalah ~/.aws/config.
Berikut ini adalah contoh file AWS konfigurasi:
[default] retry_mode = standard max_attempts = 6
Untuk informasi selengkapnya tentang file konfigurasi, lihatKonfigurasi dan pengaturan file kredensi di AWS CLI.
Melihat log upaya coba lagi
AWS CLI Menggunakan metodologi coba ulang Boto3 dan logging. Anda dapat menggunakan --debug
opsi pada perintah apa pun untuk menerima log debug. Untuk informasi selengkapnya tentang cara menggunakan --debug
opsi, lihatOpsi baris perintah di AWS CLI.
Jika Anda mencari “coba lagi” di log debug Anda, Anda akan menemukan informasi coba lagi yang Anda butuhkan. Entri log klien untuk percobaan ulang bergantung pada mode coba lagi yang telah Anda aktifkan.
Mode warisan:
Pesan coba lagi dihasilkan oleh botocore.retryhandler. Anda akan melihat salah satu dari tiga pesan:
-
No retry needed
-
Retry needed, action of:
<action_name>
-
Reached the maximum number of retry attempts:
<attempt_number>
Mode standar atau adaptif:
Pesan coba lagi dihasilkan oleh botocore.retries.standard. Anda akan melihat salah satu dari tiga pesan:
-
No retrying request
-
Retry needed, retrying request after delay of:
<delay_value>
-
Retry needed but retry quota reached, not retrying request
Untuk file definisi lengkap dari percobaan ulang botocore, lihat _retry.json di repositori