AWS CLImencoba lagi - AWS Command Line Interface

Dokumentasi ini AWS CLI hanya untuk Versi 1. Untuk dokumentasi yang terkait dengan Versi 2 AWS CLI, lihat Panduan Pengguna Versi 2.

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

AWS CLImencoba lagi

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 CLIIni 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 Legacy adalah mode default yang digunakan oleh AWS CLI versi 1.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 status HTTP, 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 SDK dengan fungsionalitas lebih dari lawas. 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 status HTTP 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 status HTTP yang disajikan dalam respons dari layanan. AWS Variabel rate-limit ini kemudian digunakan untuk menghitung tingkat panggilan baru untuk klien. Setiap respons HTTP 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 CLITermasuk berbagai konfigurasi coba lagi serta metode konfigurasi untuk dipertimbangkan saat membuat objek klien Anda.

Metode konfigurasi yang tersedia

DiAWS CLI, pengguna dapat mengonfigurasi percobaan ulang dengan cara berikut:

  • Variabel-variabel lingkungan

  • AWS CLIberkas 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 AWS CLIversi 1 adalah AWS CLI versi lama .

  • 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 AndaAWS 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, lihatVariabel lingkungan untuk mengkonfigurasi AWS CLI.

Melihat log upaya coba lagi

AWS CLIMenggunakan 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.

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 botocore. GitHub