【问题标题】:How can I use a SHA to schedule AWS EventBridge task using Terraform?如何使用 SHA 使用 Terraform 安排 AWS EventBridge 任务?
【发布时间】:2022-01-12 20:19:44
【问题描述】:

我有一个 lambda,每天早上 8:00 EST 运行。此 lambda 向 Slack 通道发送错误通知。问题是这个特定的 lambda 是由多个租户环境同时创建和运行的,因此 lambda 生成的警报在松弛通道中相互重叠。我想对租户名称进行哈希处理并生成一个介于 1 到 60 之间的整数,这将在一小时内错开 lambda 的部署。目前,控制 lambda 时间的 terraform 如下所示:

resource "aws_cloudwatch_event_rule" "notifications" {
  name = "${var.tenant}-check-for-errors"
  description = "Send notifications to slack"

  schedule_expression = "cron(0 12 ? * MON-FRI *)"

我希望schedule_expression 类似于cron(${parseint(sha1(var.tenant), 16)/60} 12 ? * MON-FRI *),因此 var.tenant 的每个值都会不同。

我可以这样做吗?它会是什么样子?

【问题讨论】:

  • 这有什么商业意义?您不只是延迟发送错误通知吗?
  • 开始时每天只发送一次错误消息。重点是集中错误,以便我们在一个位置查看所有错误。

标签: amazon-web-services terraform


【解决方案1】:

事实证明我的代码完全按照编写的方式运行,但 AWS 出现故障。

resource "aws_cloudwatch_event_rule" "notifications" {
  name        = "${var.tenant}-check-logs-for-errors"
  description = "Send notifications to slack for errors found in logs every weekday"

  schedule_expression = "cron(${parseint(sha1(var.tenant), 16)%60} 12 ? * MON-FRI *)"
}

$parseint(sha1(var.tenant), 16)%60 完全符合书面要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多