0

我正在尝试使用 Terraform 在 AWS 上创建Cloudwatch 日志组和相应的Cloudwatch 日志流。看起来很简单,但是我的代码ResourceNotFoundException: The specified log group does not exist在计划的日志组方面抛出了错误。

我的地形:

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会name根据firehose_log_group. 这没有发生。使用该引用和显式块,此代码在 Plan 上引发错误。好像它无法计算 和 之间的依赖关系。在任何其他情况下,这种依赖关系将由 Terraform 计算。log_group_nameaws_cloudwatch_log_streamdepends_onResourceNotFoundException: The specified log group does not existaws_cloudwatch_log_groupaws_cloudwatch_log_stream

这里发生了什么?我没有看到的代码中是否存在某种错误?在这两者之间是否存在某种 Terraform 无法计算的依赖关系?

更新:事实证明这在 Linux 的 TF 版本 0.11.3 的 Ubuntu 服务器上运行良好,但在 Windows 的版本 0.11.3 上会出现错误。情节变厚了。

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

编辑:明确包括流名称变量

4

1 回答 1

0

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

于 2018-03-28T21:07:05.157 回答