View a markdown version of this page

Buat pengiriman log untuk log eksekusi REST API - Amazon API Gateway

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

Buat pengiriman log untuk log eksekusi REST API

Anda dapat merutekan log eksekusi ke grup CloudWatch log Log Anda sendiri, bucket Amazon S3, atau aliran Firehose. Untuk melakukan ini, buat pengiriman Amazon CloudWatch Logs. Ini melibatkan tiga langkah: membuat sumber pengiriman, membuat tujuan pengiriman, dan menghubungkannya dengan pengiriman.

Prasyarat

Sebelum membuat pengiriman log, pastikan Anda memiliki yang berikut:

  • Pencatatan eksekusi diaktifkan pada tahap REST API Anda. Set loggingLevel el ke ERROR atauINFO. Jika logging tidak diaktifkan, pembuatan sumber pengiriman gagal.

  • Sumber daya tujuan: grup CloudWatch log log, bucket Amazon S3, atau aliran Firehose yang Anda miliki.

  • Izin untuk memanggil API pengiriman Amazon CloudWatch Logs. Untuk informasi selengkapnya, lihat Mengaktifkan pen AWS catatan dari layanan di Panduan CloudWatch Pengguna Amazon Logs.

Gateway-specific Nilai API untuk pengiriman Amazon CloudWatch Logs

Saat Anda membuat pengiriman untuk log eksekusi API Gateway, gunakan nilai berikut:

ARN Sumber Daya

arn:aws:apigateway:{region}:{account-id}:/restapis/{rest-api-id}/stages/{stage-name}

Jenis log

EXECUTION_LOGS

Buat pengiriman log (AWS CLI)

Contoh berikut membuat pengiriman yang mengirimkan log eksekusi dari REST API ke grup CloudWatch log log yang Anda miliki.

  1. Buat sumber pengiriman

    Daftarkan REST API Anda sebagai sumber pengiriman.

    aws logs put-delivery-source \ --name my-apigw-source \ --log-type EXECUTION_LOGS \ --resource-arn arn:aws:apigateway:{region}:{account-id}:/restapis/{rest-api-id}/stages/{stage-name}
  2. Buat tujuan pengiriman

    Daftarkan grup log Anda sebagai tujuan pengiriman.

    aws logs put-delivery-destination \ --name my-log-destination \ --delivery-destination-configuration "destinationResourceArn=arn:aws:logs:{region}:{account-id}:log-group:{log-group-name}"
  3. Buat pengiriman

    Tautkan sumber ke tujuan.

    aws logs create-delivery \ --delivery-source-name my-apigw-source \ --delivery-destination-arn arn:aws:logs:{region}:{account-id}:delivery-destination:my-log-destination

Untuk mengirim log ke Amazon S3 atau Firehose, tentukan sumber daya yang sesuai ARN dalam put-delivery-destination perintah. Untuk informasi selengkapnya tentang alur kerja pengiriman Amazon CloudWatch Logs lengkap, lihat Mengaktifkan pen AWS catatan dari layanan di Panduan CloudWatch Pengguna Amazon Logs.

Untuk mengirim log ke beberapa tujuan, buat pengiriman tambahan menggunakan sumber pengiriman yang sama dengan tujuan yang berbeda.

Bidang rekaman

Dengan pengiriman Amazon CloudWatch Logs, log eksekusi menyertakan bidang terstruktur yang dapat Anda sesuaikan per tujuan. Bidang-bidang berikut tersedia:

  • resource_arn— ARN tahap API

  • event_timestamp— Waktu acara log

  • api_id— Pengidentifikasi REST API

  • stage— Nama panggung

  • resource_path— Jalur sumber daya permintaan

  • http_method— Metode HTTP

  • payload— Konten log eksekusi (sama dengan log eksekusi standar)

Anda dapat memilih bidang mana yang akan disertakan dan format output untuk setiap tujuan menggunakan --record-fields parameter create-delivery aktif dan --output-format parameter aktifput-delivery-destination.

Format output yang tersedia tergantung pada tujuan:

  • CloudWatch Log - json, polos

  • Amazon S3 — json, polos, w3c, parket

  • Firehose — json, polos

Cocokkan output log eksekusi standar

Jika Anda ingin output pengiriman yang cocok dengan logging eksekusi standar (hanya payload, tidak ada bidang tambahan), tambahkan --output-format "plain" ke put-delivery-destination dan --record-fields "payload" --field-delimiter "" kecreate-delivery.

Buat pengiriman log (CloudFormation)

Saat merakit panggung ARN untuk CloudFormation template, gunakan pola berikut:

DeliverySource: Type: AWS::Logs::DeliverySource Properties: Name: my-apigw-source LogType: EXECUTION_LOGS ResourceArn: !Sub "arn:${AWS::Partition}:apigateway:${AWS::Region}:${AWS::AccountId}:/restapis/${MyApi}/stages/${MyStageName}"

Membuat pengiriman log (konsol API Gateway)

Anda dapat membuat pengiriman log dari bagian Log dan pelacakan pada halaman detail tahap Anda.

  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih REST API Anda, lalu pilih Tahapan.

  3. Memilih tahapan.

  4. Di bagian Log dan pelacakan, di bawah Tujuan pengiriman log, pilih Tambahkan tujuan.

  5. Pilih jenis tujuan (CloudWatch Logs, Amazon S3, atau Firehose) dan tentukan sumber daya tujuan.

  6. Pilih Simpan.

penting

Anda harus mengaktifkan pencatatan eksekusi di panggung sebelum Anda dapat menambahkan tujuan pengiriman. Jika logging disetel ke Nonaktif, konfigurasi pengiriman tidak menghasilkan log.

catatan

Untuk mengonfigurasi tujuan pengiriman lintas akun, gunakan AWS CLI. Anda harus membuat kebijakan tujuan pengiriman di akun tujuan sebelum membuat pengiriman di akun sumber. Untuk informasi selengkapnya, lihat contoh Cross-account pengiriman di Panduan Pengguna Amazon CloudWatch Logs.