首页 文章

Terraform:Cloudwatch Log Stream不考虑依赖关系,抛出400错误

提问于
浏览
0

我正在尝试使用Terraform在AWS上创建Cloudwatch Log Group和相应的Cloudwatch Log Stream . 看起来很直接,但是我的代码在Plan上的日志组中引发了 ResourceNotFoundException: The specified log group does not exist 错误 .

我的terraform:

variable "firehose_stream_name" {
    default = "streamName"
}

resource "aws_cloudwatch_log_group" "firehose_log_group" {
    name = "/aws/kinesisfirehose/${var.firehose_stream_name}"
}

resource "aws_cloudwatch_log_stream" "firehose_log_stream" {
    name = "S3Delivery"
    log_group_name = "${aws_cloudwatch_log_group.firehose_log_group.name}"
    depends_on = ["aws_cloudwatch_log_group.firehose_log_group"]
}

现在,可以假设Terraform将根据 aws_cloudwatch_log_streamlog_group_name 中的 namename 值来计算依赖关系 . 这不会发生 . 使用该引用,并使用显式 depends_on 块,此代码在Plan上抛出 ResourceNotFoundException: The specified log group does not exist 错误 . 好像它无法计算 aws_cloudwatch_log_groupaws_cloudwatch_log_stream 之间的依赖关系 . 在任何其他场景中,这种依赖性将由Terraform计算 .

这里发生了什么?在我看不到的代码中是否存在某种错误? Terraform无法在这两者之间进行某种依赖吗?

UPDATE :事实证明这在适用于Linux的TF版本0.11.3的Ubuntu服务器上运行良好,但在Windows版本0.11.3上发生错误 . 情节变粗 .

此代码基于TF文档:https://www.terraform.io/docs/providers/aws/r/cloudwatch_log_stream.html

编辑:显式包含流名称变量

1 回答

  • 0

    看起来没有设置aws_cloudwatch_log_group.firehose_log_group.name,在挖掘更多之前,你能否交叉检查并确认是否定义了var.firehose_stream_name!

相关问题