gpt4 book ai didi

amazon-web-services - Terraform 不会在 cloudwatch 事件目标上添加日志组名称

转载 作者:行者123 更新时间:2023-12-04 01:04:52 26 4
gpt4 key购买 nike

我在 Cloudwatch 中创建一个规则,并在 Terraform 中附加一个 log group 作为它的目标。

resource "aws_cloudwatch_event_target" "trigger_glue_job_lambda" {
rule = "${aws_cloudwatch_event_rule.crawler.name}"
target_id = "SendToLambda"
arn = "${aws_lambda_function.trigger_glue_job.arn}"
}

resource "aws_cloudwatch_event_target" "log_glue_crawler_result" {
rule = "${aws_cloudwatch_event_rule.crawler.name}"
target_id = "LogCrawler"
arn = "${aws_cloudwatch_log_group.grue_crawler_log_group.arn}"
}

resource "aws_cloudwatch_log_group" "grue_crawler_log_group" {
name = "crawler_log"
tags = {
Application = "reddit_movies"
}
}

您看到上面的配置包括一个log group 资源定义和两个event target,一个用于log group,另一个用于触发lambda。以下是 aws cloudwatch 规则控制台中此配置的屏幕截图。

enter image description here

您看到屏幕截图底部的目标正确显示了 lambda,但它没有显示我创建的日志组的名称。相反,它显示一个 * 作为日志组名称。我想知道我的配置有什么问题。

最佳答案

在检查了 cloudwatch 日志组的 arn 属性的值后,出于某种原因,它以这种格式在末尾附加了一个星号 format arn:aws:logs:eu-west-1:12345678912:log- group:crawler_log:*
像这样更改代码以删除最后 2 个字符:

resource "aws_cloudwatch_event_target" "log_glue_crawler_result" {
rule = "${aws_cloudwatch_event_rule.crawler.name}"
target_id = "LogCrawler"
arn = "${substr(aws_cloudwatch_log_group.grue_crawler_log_group.arn,0,length(aws_cloudwatch_log_group.grue_crawler_log_group.arn) - 2)}"
}

关于amazon-web-services - Terraform 不会在 cloudwatch 事件目标上添加日志组名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57246051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com