![](/img/trans.png)
[英]Terraform error creating a pattern of a aws_cloudwatch_log_metric_filter
[英]ERROR aws_cloudwatch_log_subscription_filter to AWS Lambda with Terraform
我正在尝试使用 Terraform 将 CloudWatchLogs 日志组订阅到 AWS Lambda,但它给了我一个错误。
我的代码是:
resource "aws_cloudwatch_log_subscription_filter" "test_lambdafunction_logfilter" {
name = "test_lambdafunction_logfilter"
role_arn = "arn:aws:iam::XXXXXXXXXXXX:role/dx-dev-rol-datadog-log-forwarder-function"
log_group_name = "dx-dev-lg-destination-content-full"
filter_pattern = "logtype test"
destination_arn = "arn:aws:iam::XXXXXXXXXXXX:lambda/dx-dev-lmbd-datadog-log-forwarder-function-01"
distribution = "Random"
}
错误:创建 Cloudwatch 日志订阅过滤器时出错:
InvalidParameterException:PutSubscriptionFilter 操作无法与供应商 iam 的 destinationArn 一起使用
状态码:400,请求ID:19836154-97e4-48f0-89b5-692f44ab1764
Terraform 文档指出,role_arn 和分布参数只能与 Kinesis stream 目标一起使用。 错误消息只是说明了当目标为 Lambda 时您不能使用 IAM 角色参数这一事实。
EF role_arn -(可选)如果您使用Lambda作为目标,则应跳过此参数并使用 aws_lambda_permission 资源来授予从 CloudWatch 日志到目标 Lambda ZC1C425268E68385D1AB5074C17ZA9 的访问权限。
分发- (可选)仅当目标是 Amazon Kinesis stream 时,此属性才适用。
最后插入和删除 role_arn 参数已经奏效:
resource "aws_cloudwatch_log_subscription_filter" "dx-dev-lg-destination-content-full" {
name = "dx-dev-lg-destination-content-full"
#role_arn = "arn:aws:iam:eu-central-1:442793498433:role/dx-dev-rol-datadog-log-forwarder-function"
log_group_name = "dx-dev-lg-destination-content-full"
filter_pattern = ""
destination_arn = "arn:aws:lambda:eu-central-1:442793498433:function:dx-dev-lmbd-datadog-log-forwarder-function-01"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.