我正在尝试使用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_stream
的 log_group_name
中的 name
的 name
值来计算依赖关系 . 这不会发生 . 使用该引用,并使用显式 depends_on
块,此代码在Plan上抛出 ResourceNotFoundException: The specified log group does not exist
错误 . 好像它无法计算 aws_cloudwatch_log_group
和 aws_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 回答
看起来没有设置aws_cloudwatch_log_group.firehose_log_group.name,在挖掘更多之前,你能否交叉检查并确认是否定义了var.firehose_stream_name!