Tôi cần gửi nhật ký trên máy tính để bàn của mình tới dịch vụ phân tích nhật ký.Terraform: định cấu hình phân phối đăng ký trên cloudwatch cho lambda?
Tôi đã theo dõi cùng với các bài viết này here và here và làm cho nó hoạt động bằng tay, không phải lo lắng.
Bây giờ tôi đang cố gắng tự động hóa tất cả điều này với Terraform (vai trò/chính sách, nhóm bảo mật, nhóm nhật ký cloudwatch, lambda và kích hoạt lambda từ nhóm nhật ký).
Nhưng tôi không thể tìm ra cách sử dụng TF để định cấu hình AWS để kích hoạt lambda từ nhật ký trên máy tính bảng.
tôi có thể liên kết hai nguồn TF với nhau bằng tay bằng cách làm như sau (trong Lambda web console UI):
- đi vào "Triggers" phần chức năng lambda của
- nhấp vào "Thêm Trigger"
- chọn "nhật ký cloudwatch" từ danh sách các loại cò
- chọn nhóm log tôi muốn kích hoạt các lambda
- nhập tên bộ lọc
- rời mô hình lọc rỗng (ám chỉ kích hoạt trên tất cả các dòng log)
- đảm bảo "cho phép kích hoạt" được chọn
- nhấp vào nút gửi
Khi đã xong, các lambda xuất hiện trên các bản ghi cloudwatch bảng điều khiển trong cột đăng ký - hiển thị dưới dạng "Lambda (cloudwatch-sumologic-lambda)".
tôi đã cố gắng để tạo ra các thuê bao với nguồn TF sau:
resource "aws_cloudwatch_log_subscription_filter" "cloudwatch-sumologic-lambda-subscription" {
name = "cloudwatch-sumologic-lambda-subscription"
role_arn = "${aws_iam_role.jordi-waf-cloudwatch-lambda-role.arn}"
log_group_name = "${aws_cloudwatch_log_group.jordi-waf-int-app-loggroup.name}"
filter_pattern = "logtype test"
destination_arn = "${aws_lambda_function.cloudwatch-sumologic-lambda.arn}"
}
Nhưng nó không thành công với:
* aws_cloudwatch_log_subscription_filter.cloudwatch-sumologic-lambda-subscription: InvalidParameterException: destinationArn for vendor lambda cannot be used with roleArn
tôi thấy this answer về việc thiết lập một điều tương tự cho một sự kiện theo lịch trình, nhưng điều đó dường như không tương đương với những hành động của giao diện điều khiển mà tôi đã mô tả ở trên (phương thức UI console không tạo ra một sự kiện/quy tắc mà tôi có thể thấy).
Ai đó có thể cho tôi một con trỏ trên những gì tôi đang làm sai không?
Thật khó để xem chính xác nhưng có vẻ như AWS đang nói rằng vai trò bạn đã cung cấp cho PutSubscriptionFilter không có quyền truy cập Lambda. Bạn cũng có thể đăng định nghĩa của tài nguyên 'aws_iam_role.jordi-waf-cloudwatch-lambda-role.arn' không? – ydaetskcoR