AWSSupport-TroubleshootAPIGatewayHttpErrors - AWS Systems Manager Referensi Buku Runbook Otomasi

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

AWSSupport-TroubleshootAPIGatewayHttpErrors

Deskripsi

AWSSupport-TroubleshootAPIGatewayHttpErrorsRunbook membantu memecahkan masalah kesalahan 5XX/4XX saat menjalankan API REST Amazon API Gateway API yang diterapkan dengan mengurai log eksekusi and/or akses dan menganalisis kesalahan untuk memberikan langkah-langkah perbaikan melalui artikel dan dokumentasi re:Post. AWS

penting

Runbook ini memiliki batasan sebagai berikut:

  • Logging harus diaktifkan. Lihat Mengatur pencatatan Amazon CloudWatch API menggunakan konsol API Gateway.

  • Log harus diaktifkan sebelum kesalahan terjadi. Pengambilan dan analisis log tidak dapat dilakukan secara retrospektif.

  • Kesalahan tercakup: 500, 502, 503, 504, 401, 403, 429.

  • Hanya REST APIs yang didukung. WebSocket dan HTTP (v2) tidak tercakup oleh runbook ini.

penting

Menggunakan runbook ini mungkin dikenakan biaya tambahan terhadap AWS akun Anda untuk CloudWatch Log Amazon yang ditangkap oleh REST API Anda, dan Wawasan CloudWatch Log yang digunakan dalam analisis. Lihat CloudWatch Harga Amazon untuk detail selengkapnya tentang biaya yang mungkin timbul. Jika aws:deletestack langkahnya gagal, buka CloudFormation konsol untuk menghapus tumpukan secara manual. Nama tumpukan yang dibuat oleh runbook ini dimulai denganAWSSupport-TroubleshootAPIGatewayHttpErrors. Untuk informasi tentang menghapus CloudFormation tumpukan, lihat Menghapus tumpukan di Panduan Pengguna. AWS CloudFormation

Bagaimana cara kerjanya?

Runbook melakukan langkah-langkah validasi dan analisis berikut:

  • Memvalidasi bahwa REST API yang ditentukan ada dan Anda memiliki izin yang diperlukan.

  • Memvalidasi bahwa tahap yang ditentukan ada di API.

  • Memvalidasi bahwa jalur sumber daya yang ditentukan ada di API.

  • Memvalidasi bahwa metode HTTP yang ditentukan ada untuk sumber daya.

  • Menganalisis CloudWatch Log untuk parameter dan rentang waktu yang ditentukan untuk mengidentifikasi kesalahan dan memberikan rekomendasi remediasi.

Jalankan Otomasi ini (konsol)

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

/

Izin IAM yang diperlukan

AutomationAssumeRoleParameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.

  • apigateway:GET

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:DescribeLogGroups

  • logs:DescribeLogStreams

  • logs:PutLogEvents

  • logs:StartQuery

  • logs:GetQueryResults

Contoh kebijakan IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:StartQuery", "logs:GetQueryResults" ], "Resource": "*" } ] }

Instruksi

Ikuti langkah-langkah ini untuk mengonfigurasi otomatisasi:

  1. Arahkan ke AWSSupport-TroubleshootAPIGatewayHttpErrorsSystems Manager di bawah Dokumen.

  2. Pilih Jalankan otomatisasi.

  3. Untuk parameter input, masukkan yang berikut ini:

    • AutomationAssumeRole (Opsional):

      • Deskripsi: (Opsional) Nama Sumber Daya Amazon (ARN) dari peran AWS Identity and Access Management (IAM) yang memungkinkan SSM Automation untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, SSM Automation menggunakan izin pengguna yang memulai runbook ini.

      • Tipe: AWS::IAM::Role::Arn

    • RestApiId (Diperlukan):

      • Deskripsi: (Wajib) ID API untuk API yang memerlukan pemecahan masalah. Harus berupa string alfanumerik 10 karakter.

      • Tipe: String

      • Pola yang Diizinkan: ^[a-zA-Z0-9]{10}$

    • StageName (Diperlukan):

      • Deskripsi: (Wajib) Nama tahap yang dikerahkan. Harus 1-128 karakter yang berisi huruf, angka, garis bawah, atau tanda hubung.

      • Tipe: String

      • Pola yang Diizinkan: ^[a-zA-Z0-9_\\-]{1,128}$

    • ResourcePath (Opsional):

      • Deskripsi: (Opsional) Jalur sumber daya untuk metode yang dikonfigurasi. Contoh:/,/store/items,/{resource}.

      • Tipe: String

      • Default: /

    • HttpMethod (Opsional):

      • Deskripsi: (Opsional) Metode untuk jalur sumber daya yang dikonfigurasi.

      • Tipe: String

      • Nilai yang Diizinkan: [ANY, DELETE, HEAD, OPTIONS, GET, POST, PUT, PATCH]

      • Default: GET

    • StartTime (Opsional):

      • Deskripsi: (Opsional) Tanggal dan waktu mulai untuk menanyakan CloudWatch Log. Format: yyyy-MM-ddTHH:mm:ss di zona waktu UTC. Jika tidak ditentukan, defaultnya 3 hari sebelum waktu saat ini.

      • Tipe: String

      • Pola yang Diizinkan: ^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$

      • Default: ""

    • EndTime (Opsional):

      • Deskripsi: (Opsional) Tanggal dan waktu akhir untuk menanyakan CloudWatch Log. Format: yyyy-MM-ddTHH:mm:ss di zona waktu UTC. Jika tidak ditentukan, default ke waktu saat ini.

      • Tipe: String

      • Pola yang Diizinkan: ^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$

      • Default: ""

    • AccessLogs (Opsional):

      • Deskripsi: (Opsional) Apakah log akses harus dianalisis.

      • Tipe: Boolean

      • Nilai yang Diizinkan: [true, false]

      • Default: false

    • RequestId (Opsional):

      • Deskripsi: (Opsional) ID permintaan untuk permintaan di mana kesalahan diamati. Harus format UUID yang valid.

      • Tipe: String

      • Pola yang Diizinkan: ^$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

      • Default: ""

  4. Pilih Jalankan.

  5. Otomatisasi dimulai.

  6. Dokumen melakukan langkah-langkah berikut:

    • CheckApiExists:

      Memvalidasi bahwa REST API yang disediakan ada dan Anda memiliki izin yang diperlukan untuk mengaksesnya.

    • CheckStageExists:

      Memvalidasi bahwa nama tahap yang disediakan ada di API yang diberikan dan mengambil informasi grup log akses.

    • CheckResourceExists:

      Memvalidasi bahwa jalur sumber daya yang disediakan ada di API dan mengambil ID sumber daya.

    • CheckMethodExists:

      Memvalidasi bahwa metode HTTP yang disediakan ada untuk sumber daya yang ditentukan.

    • AnalyseLogs:

      Mencari log menggunakan parameter yang disediakan dan mengembalikan rekomendasi berdasarkan kesalahan yang ditemukan. Langkah ini menganalisis log eksekusi dan akses (jika diaktifkan) untuk mengidentifikasi kesalahan 4XX dan 5XX dan memberikan panduan remediasi khusus.

  7. Setelah selesai, tinjau bagian Output untuk hasil eksekusi yang terperinci, termasuk analisis kesalahan dan rekomendasi remediasi.

Referensi

Otomatisasi Systems Manager