公式
問題
TerraformでLambdaとSNSを連携させた
SNSのサブスクリプションにはLambdaが登録されているように見えるのに、
逆にLambdaのトリガーの画面にSNSが現れない
解決
aws_sns_topic_subscription に Lambda の ARN を設定するだけではなく
SNS に Lambda の実行パーミッションを付ける必要があるようだ
resource "aws_sns_topic" "example" {
name = "example"
}
resource "aws_sns_topic_subscription" "example" {
topic_arn = aws_sns_topic.example.arn
protocol = "lambda"
endpoint = aws_lambda_function.example.arn
}
resource "aws_lambda_permission" "with_sns" {
statement_id = "AllowExecutionFromSNS"
action = "lambda:InvokeFunction"
function_name = aws_lambda_function.example.function_name
principal = "sns.amazonaws.com"
source_arn = aws_sns_topic.example.arn
}
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。