Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Akses logging untuk REST API
Dalam log akses, Anda mencatat siapa yang telah mengakses API Anda dan bagaimana pemanggil mengakses API. Anda dapat membuat grup log Anda sendiri atau memilih grup log yang ada. Untuk menentukan detail akses, Anda memilih $context variabel, format log, dan tujuan grup log.
Akses format log
Format log akses harus menyertakan setidaknya $context.requestId atau$context.extendedRequestId. Sebagai praktik terbaik, sertakan keduanya dalam format log Anda.
$context.requestId-
Ini mencatat nilai di
x-amzn-RequestIdheader. Klien dapat mengganti nilai dix-amzn-RequestIdheader dengan nilai dalam format pengidentifikasi unik universal (UUID). API Gateway mengembalikan ID permintaan ini di headerx-amzn-RequestIdrespons. API Gateway menggantikan ID permintaan yang diganti yang tidak dalam format UUID dengandi log akses Anda.UUID_REPLACED_INVALID_REQUEST_ID $context.extendedRequestId-
ExtendedRequestID adalah ID unik yang dihasilkan API Gateway. API Gateway mengembalikan ID permintaan ini di header
x-amz-apigw-idrespons. Pemanggil API tidak dapat memberikan atau mengganti ID permintaan ini. Anda mungkin perlu memberikan nilai ini ke AWS Dukungan untuk membantu memecahkan masalah API Anda. Untuk informasi selengkapnya, lihat Variabel untuk pencatatan akses untuk API Gateway.
Pilih format log yang juga diadopsi oleh backend analitik Anda, seperti Com mon Log Format
Contoh beberapa format log akses yang umum digunakan ditampilkan di konsol API Gateway dan tercantum sebagai berikut.
-
CLF(Format Log Umum): $context.identity.sourceIp $context.identity.caller $context.identity.user [$context.requestTime]"$context.httpMethod $context.resourcePath $context.protocol" $context.status $context.responseLength $context.requestId $context.extendedRequestId -
JSON:{ "requestId":"$context.requestId", "extendedRequestId":"$context.extendedRequestId","ip": "$context.identity.sourceIp", "caller":"$context.identity.caller", "user":"$context.identity.user", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod", "resourcePath":"$context.resourcePath", "status":"$context.status", "protocol":"$context.protocol", "responseLength":"$context.responseLength" } -
XML:<request id="$context.requestId"> <extendedRequestId>$context.extendedRequestId</extendedRequestId> <ip>$context.identity.sourceIp</ip> <caller>$context.identity.caller</caller> <user>$context.identity.user</user> <requestTime>$context.requestTime</requestTime> <httpMethod>$context.httpMethod</httpMethod> <resourcePath>$context.resourcePath</resourcePath> <status>$context.status</status> <protocol>$context.protocol</protocol> <responseLength>$context.responseLength</responseLength> </request> -
CSV(nilai yang dipisahkan koma):$context.identity.sourceIp,$context.identity.caller,$context.identity.user,$context.requestTime,$context.httpMethod,$context.resourcePath,$context.protocol,$context.status,$context.responseLength,$context.requestId,$context.extendedRequestId
Mengatur log akses menggunakan konsol API Gateway
Sebelum Anda mengatur log akses, gunakan API ke tahap dan konfigur asikan ARN peran CloudWatch Logs yang sesuai untuk akun Anda.
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway
. -
Di panel navigasi utama, pilih API, lalu lakukan salah satu hal berikut:
-
Pilih API yang ada, lalu pilih tahap.
-
Buat API, lalu terapkan ke panggung.
-
-
Di panel navigasi utama, pilih Tahapan.
-
Di bagian Log dan pelacakan, pilih Edit.
-
Aktifkan pencatatan akses kustom.
-
Untuk ARN tujuan log Akses, masukkan ARN grup log. Format ARN adalah
arn:aws:logs:.{region}:{account-id}:log-group:log-group-name -
Untuk Format Log, masukkan format log. Anda dapat memilih CLF, JSON, XML, atau CSV. Untuk mempelajari lebih lanjut tentang contoh format log, lihatAkses format log.
-
Pilih Simpan perubahan.
API Gateway sekarang siap untuk mencatat permintaan ke API Anda. Anda tidak perlu menerapkan ulang API saat memperbarui pengaturan tahap, log, atau variabel tahap.
Menyiapkan log akses menggunakan CloudFormation
Gunakan contoh CloudFormation template berikut untuk membuat grup CloudWatch log Amazon Logs dan mengonfigurasi logging akses untuk tahap. Untuk mengaktifkan CloudWatch Log, Anda harus memberikan izin API Gateway untuk membaca dan menulis log CloudWatch untuk akun Anda. Untuk mempelajari selengkapnya, lihat Mengaitkan akun dengan peran IAM di Panduan AWS CloudFormation Pengguna.
TestStage: Type: AWS::ApiGateway::Stage Properties: StageName: test RestApiId: !Ref MyAPI DeploymentId: !Ref Deployment AccessLogSetting: DestinationArn: !GetAtt MyLogGroup.Arn Format: $context.extendedRequestId $context.identity.sourceIp $context.identity.caller $context.identity.user [$context.requestTime] "$context.httpMethod $context.resourcePath $context.protocol" $context.status $context.responseLength $context.requestId MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Join - '-' - - !Ref MyAPI - access-logs