amazon-web-services - Terraform 创建具有多个目标的 Cloudwatch 规则
问题描述
来自 Terraform 文档 - https://www.terraform.io/docs/providers/aws/r/cloudwatch_event_target.html
我没有看到将多个目标映射到同一个 Cloudwatch 规则的选项。它只需要一个arn
接受一个资源的字段。我正在尝试将 5 个 Lambda 映射到相同的 Cloudwatch 规则。Terraform 是否支持这一点?
编辑:我怎样才能只附加 5 个 lambda?如果我创建了 15 个 lambda,我想将 5 个附加到 3 个 cloudwatch 规则。
解决方案
得到它的工作!当我将目标分配给规则时,我必须将规则数除以 5。这大概是它的样子:
resource "aws_cloudwatch_event_rule" "arule" {
count = "${ceil(length(var.lambda_arns) / 5.0)}" // Needs to be 5.0 to force float computation
name = "${var.rule_name}${format("-%d", count.index)}"
is_enabled = true
}
resource "aws_cloudwatch_event_target" "atarget" {
depends_on = ["aws_cloudwatch_event_rule.arule"]
count = "${length(var.lambda_arns)}"
rule = "${aws_cloudwatch_event_rule.arule.*.name[count.index / 5]}"
arn = "${var.lambda_arns[count.index]}"
}
我根据 lambda 的数量创建了事件规则(即,如果有 10 个 lambda,则创建 2 个规则)。
我根据 lambda 的数量创建了目标(即,如果有 10 个 lambda,则创建 10 个目标)。
count.index
我通过将 5 除以5(用于确定规则计数的相同逻辑)在规则中按比例分配目标。
推荐阅读
- c# - 使用 Postgres、Npgsql 和 pgAdmin 构建函数
- ios - 如何在 Xcode / iOS 应用程序开发中使用 Adobe Fonts?
- jquery - 自定义 jquery ui 组合框的自定义滚动条
- javascript - 在 Vue/Axios 中的 then 回调中使用 window.open 会触发 Safari 和 Firefox 中的弹出窗口阻止程序
- dictionary - 从字典(Data.Map.Strict.Map)构建 Haskell 函数效率低吗?
- php - 运动小费网站教程或参考
- r - R:有一张 One-Hot 格式的桌子。但是,每列的计数总和不等于总行数
- javascript - 如何在 texarea 中设置“单击撤消”添加的文本?
- c++ - 查找值在文本文件中的出现次数和行数?
- java - 这是使用 HeapSort 的 O(nlogn) 时间复杂度吗