【问题标题】:Can we add an SNS topic from Terraform with Email subscription我们可以通过电子邮件订阅从 Terraform 添加一个 SNS 主题吗
【发布时间】:2021-07-06 15:14:06
【问题描述】:

您好,我想知道我们是否可以通过电子邮件订阅从 Terraform 添加一个 SNS 主题。

因此,设置警报和创建 SNS 主题以使用“Terraform apply”命令将警报发送到电子邮件将很容易。

谢谢

【问题讨论】:

  • 是的,你可以这样做。

标签: terraform terraform-provider-aws


【解决方案1】:
resource "aws_sns_topic" "topic" {
  name = "topic-name"
}

resource "aws_sns_topic_subscription" "email-target" {
  topic_arn = aws_sns_topic.topic.arn
  protocol  = "email"
  endpoint  = "example@gmail.com"
}

【讨论】:

  • 请提供一些解释。
  • 要解释什么?创建一个 SNS 主题资源,然后创建一个订阅资源。您将需要端点电子邮件地址来确认订阅,但以上内容应根据文档工作:registry.terraform.io/providers/hashicorp/aws/latest/docs/…
  • @ShadowMan 获取电子邮件列表,它是否接受逗号分隔的电子邮件值或列表?我试过了,似乎它不起作用,不知道为什么。
  • @AbhayNayak 你应该试试看。文档只是说“一个电子邮件地址”,但该字段似乎是一个字符串,所以在这里随机猜测......也许它只是复制/粘贴到 To: 字段中?如果是这样,并且假设它允许多个电子邮件地址,那么 CSV 可能会起作用。唯一确定的方法是自己尝试一下(您说“我试过了”,但您没有指定“那个”是指两个选项还是其中一个选项——它可能只接受一封电子邮件地址,因此您需要创建一个电子邮件列表)。
  • @AbhayNayak 实际上,考虑确认的工作原理(请参阅文档,因为他们提到了电子邮件和未确认订阅的问题),它可能只适用于单个电子邮件地址,因此您可能必须创建一个让这个工作的电子邮件列表。
【解决方案2】:

Terraform 目前对使用 Email 协议的提供程序有限制。

它不受支持,因为端点需要获得授权,并且在目标电子邮件地址得到验证之前不会生成 ARN。这会破坏 Terraform 模型,因此目前不受支持。

【讨论】:

【解决方案3】:

CloudFormation 支持这一点。

但是,正如其他人和文档所指出的那样,terraform 并不完全支持它。

有一个指南建议在 terraform 中创建 CloudFormation 堆栈。此堆栈创建 SNS 主题,还可以添加订阅。

http://aws-cloud.guru/terraform-sns-topic-email-list/

如果您认为值得付出努力,这可能是一个解决方案?

【讨论】:

  • 试过了,效果很好。但值得注意的是,您可能需要使用与 terraform 不同的电子邮件地址。就我而言,AWS 似乎不想接收我在 terraform 中使用过的同一个电子邮件地址:/
猜你喜欢
  • 2022-10-20
  • 2016-04-08
  • 2021-01-07
  • 2021-01-11
  • 1970-01-01
  • 2021-08-25
  • 2020-11-12
  • 2021-11-17
  • 1970-01-01
相关资源
最近更新 更多