Модуль Terraform для создания AWS SNS Topi c Подписка - PullRequest
0 голосов
/ 10 апреля 2020

Я не могу найти модуль terraform для создания AWS SNS Topi c подписки. Например: я использовал "terraform- aws -modules / sns / aws" для создания SNS topi c. Может кто-нибудь указать мне исходный модуль для подписки?

1 Ответ

0 голосов
/ 14 апреля 2020

Вы должны предпочитать ресурсы модулям, если у вас нет сложного варианта использования, включающего много взаимодействующих ресурсов в общем шаблоне.

Модули лучше всего подходят для стандартизации общих шаблонов. Модуль может быть сделан для одного ресурса, но он редко стоит затрат.

Вот рабочий пример, основанный на реальной системе. Это создает SNS topi c и подписывает на него функцию 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

...