Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengirim log fungsi Lambda ke Amazon S3
Anda dapat mengonfigurasi fungsi Lambda untuk mengirim log langsung ke Amazon S3 menggunakan konsol Lambda. Fitur ini memberikan solusi hemat biaya untuk penyimpanan log jangka panjang dan memungkinkan opsi analisis yang kuat menggunakan layanan seperti Athena.
catatan
Anda dapat mengonfigurasi log fungsi Lambda untuk dikirim ke Amazon S3 menggunakan konsol Lambda,, AWS CLI AWS CloudFormation, dan semua AWS SDK.
Harga
Untuk detail tentang harga, lihat CloudWatch Harga Amazon
Izin yang diperlukan untuk tujuan log Amazon S3
Saat menggunakan konsol Lambda untuk mengonfigurasi Amazon S3 sebagai tujuan log fungsi Anda, Anda perlu:
-
Izin IAM yang diperlukan untuk menggunakan CloudWatch Log dengan Lambda.
-
UntukMenyiapkan filter langganan CloudWatch Log untuk mengirim log fungsi Lambda ke Amazon S3. Filter ini menentukan peristiwa log mana yang dikirimkan ke bucket Amazon S3 Anda.
Menyiapkan filter langganan CloudWatch Log untuk mengirim log fungsi Lambda ke Amazon S3
Untuk mengirim CloudWatch log dari Log ke Amazon S3, Anda perlu membuat filter langganan. Filter ini menentukan peristiwa log mana yang dikirimkan ke bucket Amazon S3 Anda. Bucket Amazon S3 Anda harus berada di Wilayah yang sama dengan grup log Anda.
Cara membuat filter langganan untuk Amazon S3
-
Buat bucket Amazon Simple Storage Service (Amazon S3). Sebaiknya gunakan bucket yang dibuat khusus untuk CloudWatch Log. Namun, jika Anda ingin menggunakan bucket yang sudah ada, lewati ke langkah 2.
Jalankan perintah berikut, dengan mengganti Wilayah placeholder dengan Wilayah yang ingin Anda gunakan:
aws s3api create-bucket --bucket amzn-s3-demo-bucket2 --create-bucket-configuration LocationConstraint=regioncatatan
amzn-s3-demo-bucket2adalah contoh nama bucket Amazon S3. Itu dicad angkan. Agar prosedur ini berfungsi, Anda harus menggantinya dengan nama bucket Amazon S3 unik Anda.Berikut ini adalah output contoh:
{ "Location": "/amzn-s3-demo-bucket2" } -
Buat peran IAM yang memberikan izin CloudWatch Log untuk memasukkan data ke bucket Amazon S3 Anda. Kebijakan ini menyertakan kunci konteks kondisi SourceArn global aws: untuk membantu mencegah masalah keamanan wakil yang membingungkan. Untuk informasi lebih lanjut, lihat Pencegahan wakil yang bingung.
-
Gunakan editor teks untuk membuat kebijakan kepercayaan dalam file
~/TrustPolicyForCWL.jsonsebagai berikut:{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:logs:region:123456789012:*" } }, "Action": "sts:AssumeRole" } } -
Gunakan perintah create-role untuk membuat IAM role, dengan menentukan file kebijakan kepercayaan. Catatan Role.Arn nilai yang dikembalikan, karena Anda membutuhkannya di langkah selanjutnya:
aws iam create-role \ --role-name CWLtoS3Role \ --assume-role-policy-document file://~/TrustPolicyForCWL.json { "Role": { "AssumeRolePolicyDocument": { "Statement": { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:logs:region:123456789012:*" } } } }, "RoleId": "AAOIIAH450GAB4HC5F431", "CreateDate": "2015-05-29T13:46:29.431Z", "RoleName": "CWLtoS3Role", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/CWLtoS3Role" } }
-
-
Buat kebijakan izin untuk menentukan tindakan apa yang dapat dilakukan CloudWatch Log pada akun Anda. Pertama, gunakan editor teks untuk membuat kebijakan izin dalam file
~/PermissionsForCWL.json:{ "Statement": [ { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket2/*"] } ] }Kaitkan kebijakan izin dengan peran menggunakan
put-role-policyperintah berikut:aws iam put-role-policy --role-name CWLtoS3Role --policy-name Permissions-Policy-For-S3 --policy-document file://~/PermissionsForCWL.json -
Buat grup
Deliverylog atau gunakan grupDeliverylog yang ada.aws logs create-log-group --log-group-name my-logs --log-group-class DELIVERY --region REGION_NAME -
PutSubscriptionFilteruntuk mengatur tujuanaws logs put-subscription-filter --log-group-name my-logs --filter-name my-lambda-delivery --filter-pattern "" --destination-arn arn:aws:s3:::amzn-s3-demo-bucket2 --role-arn arn:aws:iam::123456789012:role/CWLtoS3Role --region REGION_NAME
Mengirim log fungsi Lambda ke Amazon S3
Di konsol Lambda, Anda dapat mengirim log fungsi langsung ke Amazon S3 setelah membuat fungsi baru. Untuk melakukan ini, selesaikan langkah-langkah ini:
-
Masuk ke Konsol AWS Manajemen dan buka konsol Lambda.
-
Pilih nama fungsi Anda.
-
Pilih tab Konfigurasi.
-
Pilih tab Alat Pem antauan dan operasi.
-
Di bagian “Konfigurasi logging”, pilih Edit.
-
Di bagian “Konten log”, pilih format log.
-
Di bagian “Tujuan log”, selesaikan langkah-langkah berikut:
-
Pilih layanan tujuan.
-
Pilih untuk Membuat grup log baru atau menggunakan grup log yang ada.
catatan
Jika memilih grup log yang ada untuk tujuan Amazon S3, pastikan grup log yang Anda pilih adalah tipe grup
Deliverylog. -
Pilih bucket Amazon S3 untuk menjadi tujuan log fungsi Anda.
-
Grup CloudWatch
Deliverylog muncul.
-
-
Pilih Simpan.
catatan
Jika peran IAM yang disediakan di konsol tidak memiliki izin yang diperlukan, maka pengaturan tujuan gagal. Untuk memperbaikinya, lihat Izin yang diperlukan untuk tujuan log Amazon S3.
Cross-Account Pencatatan
Anda dapat mengonfigurasi Lambda untuk mengirim log ke bucket Amazon S3 di AWS akun yang berbeda. Ini memerlukan pengaturan tujuan dan konfigurasi izin yang sesuai di kedua akun.
Untuk petunjuk terperinci tentang cara menyiapkan log lintas akun, termasuk peran dan kebijakan IAM yang diperlukan, lihat Men yiapkan langganan lintas-akun baru di dokumentasi CloudWatch Log.