【问题标题】:http provider/data source - lazy or eager?http 提供者/数据源 - 懒惰还是急切?
【发布时间】:2019-05-22 07:17:42
【问题描述】:

我先有这个数据子句:

data "http" "json_pattern" {
  url = "${var.cloudwatch_event_pattern_json_url}"
}

变量将是这样的: https://raw.githubusercontent.com/alexakarpov/ak_terr/master/pattern.json

,即只是一个 JSON 对象,它是 CloudWatch 中事件的模式

然后,我有一个资源块:

resource "aws_cloudwatch_event_rule" "event_pattern_rule" {
  count         = "${var.cloudwatch_event_pattern_json_url == "" ? 0 : 1}"
  name          = "${var.name}-json-event-trigger"
  description   = "Event to trigger the execution of the lambda function: ${var.name}"
  event_pattern = "${data.http.json_pattern.body}"
}

我想知道的 - 这个 http 调用会发生多少次这个文件被处理,还是只发生多少次

count = "..."

匹配?换句话说,http 调用是否会变得懒惰,仅在配置资源时执行(此处为 count == 1 的情况)?还是每次加载文件时都急切地执行?听起来像一个只有真正的大师才能回答的问题,而我刚刚进入这个 IAC 地狱一周..

【问题讨论】:

    标签: terraform amazon-cloudwatch


    【解决方案1】:

    根据Terraform documentation,数据源的状态将“在 Terraform 的‘刷新’阶段更新,默认情况下,该阶段在创建计划之前运行。”所以这意味着它被调用一次

    如果您想轻松地自行验证,请创建一个RequestBin 并在您的 Terraform 配置中使用给定的 URL。刷新页面后,您可以查看发出了哪些请求。

    【讨论】:

    • 也是个不错的建议——我正在考虑启动一个 Apache 实例来监控访问日志,但这显然是一个更好的选择
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多