【问题标题】:Terraform module to create AWS SNS Topic Subscription用于创建 AWS SNS 主题订阅的 Terraform 模块
【发布时间】:2020-07-23 14:51:12
【问题描述】:

我找不到用于创建 AWS SNS 主题订阅的 terraform 模块。例如:我使用“terraform-aws-modules/sns/aws”来创建 SNS 主题。有人可以指出我订阅的源模块吗?

【问题讨论】:

  • 你为什么想要一个模块呢?只使用资源有什么问题?
  • @ydaetskcoR 我需要一个模块,因为我必须重复使用它。无论如何,我创建了一个运行良好的新模块。

标签: amazon-web-services terraform terraform-provider-aws


【解决方案1】:

您应该更喜欢资源而不是模块,除非您有一个复杂的用例,其中涉及许多以通用模式交互的资源。

模块最适合标准化常见模式。可以为单个资源制作一个模块,但开销很少。

这是一个基于真实系统的工作示例。这将创建一个 SNS 主题并为其订阅一个 Lambda 函数:

resource "aws_sns_topic" "kpis" {
  name = var.sns_topic_name
}

resource "aws_sns_topic_subscription" "invoke_with_sns" {
  topic_arn = aws_sns_topic.kpis.arn
  protocol  = "lambda"
  endpoint  = module.kpis.function_arn
}

resource "aws_lambda_permission" "allow_sns_invoke" {
  statement_id  = "AllowExecutionFromSNS"
  action        = "lambda:InvokeFunction"
  function_name = module.lambda.function_name
  principal     = "sns.amazonaws.com"
  source_arn    = aws_sns_topic.kpis.arn
}

您可以在此处阅读有关 aws_sns_topic_subscription 的更多信息: https://www.terraform.io/docs/providers/aws/r/sns_topic_subscription.html

【讨论】:

  • 感谢阿兰提供详细信息。我需要模块,以便我可以重用它在我的项目中创建类似的资源。我创建了一个,它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
  • 2022-07-27
  • 2015-05-29
  • 1970-01-01
  • 2021-11-25
  • 2016-06-27
相关资源
最近更新 更多