每次有人运行地形文件时通知松弛



我试图弄清楚每次有人做

terraform apply

我已经经历了 https://github.com/terraform-aws-modules/terraform-aws-notify-slack,但这专门讨论了云监视警报。我正在考虑一些简单的事情,我可以通过在成功的地形应用程序结束时调用 webhook 来向 Slack 发送类似通知的东西。

有人可以指出我某个方向吗,我可以开发一些东西来弄清楚。只是指针也会有所帮助。

你可以通过使用 Terraform 的local-exec配置器来实现这一点,它允许你在创建资源后在本地运行一些可执行代码:

resource "null_resource" "example2" {
provisioner "local-exec" {
command = "curl -X POST 'https://yourchannel.slack.com/api/chat.postMessage?channel=CXXXXXXXX&token=xoxp-#####' -F 'text={"text": "Terraform was applied"}'"
}
}

如果你使用 Terragrunt.
Terragrunt 有一个用于beforeafter钩子的功能,就可以实现这一点。

使用此机制,我们可以执行此类操作:

terragrunt.hcl

terraform {
after_hook "Send slack Notification" {
commands     = ["apply"]
execute      = ["sh","-c","${get_repo_root()}/scripts/send_slack_notification.sh ${path_relative_to_include()}"]
run_on_error = false
}
}

scripts/send_slack_notification.sh

#!/bin/bash
folder=$1
WEBHOOK_URL='https://hooks.slack.com/services/<WEBHOOK>'
MESSAGE="Terraform Apply was performed on resource:nt$foldernUser:nt$USER"
curl -H 'Content-type: application/json' --data 
"{'text': '$MESSAGE'}" 
$WEBHOOK_URL

相关内容

  • 没有找到相关文章

最新更新