【问题标题】:Unable to trigger AWS Lambda from SNS无法从 SNS 触发 AWS Lambda
【发布时间】:2022-02-11 12:02:00
【问题描述】:

我正在尝试从 SNS codestar-notifications 创建 AWS lambda 触发器。

使用控制台创建触发器时,它会自动添加对 SNS 主题的订阅。 。此外,这可以在其他方向工作,即如果我通过显式添加其 arn 来为 SNS 创建订阅作为 Lambda 函数,它会自动将触发器链接到 Lambda 函数。

但是当使用 terraform 创建订阅时,如下所示:

resource "aws_sns_topic_subscription" "subscribe_lambda_to_first_topic" {
  topic_arn = module.first_topic.sns-topic-detail.arn
  protocol  = "lambda"
  endpoint  = module.lambda_function.lambda_function.arn
}

它不会在 AWS Lambda 中创建触发器。

我尝试在 Terraform 中使用事件源映射创建触发器,如下所示

resource "aws_lambda_event_source_mapping" "lambda_source" {
 event_source_arn  = module.first_topic.sns-topic-detail.arn
 function_name     = module.lambda_function.lambda_function.arn
 starting_position = "LATEST"
}

它给我一个错误,说它只能用于

错误:创建 Lambda 事件源映射时出错 (arn:aws:sns:us-west-2:619867110810:codestar-notifications-emc-sns-to-lambda): InvalidParameterValueException: Unrecognized event source, must be kinesis, dynamodb流或平方。不支持的源 arn:arn:aws:sns:us-west-2:619867110810:codestar-notifications-emc-sns-to-lambda { 响应元数据:{ 状态码:400, 请求 ID:“83bf57cb-b50d-49a8-9547-72fac69778d1” }, Message_:“无法识别的事件源,必须是 kinesis、dynamodb 流或 sqs。不支持的源 arn:arn:aws:sns:us-west-2:619867110810:codestar-notifications-emc-sns-to-lambda”, 类型:“用户” }

使用 aws_lambda_event_source_mapping.lambda_source, 在 main.tf 第 43 行,在资源“aws_lambda_event_source_mapping”“lambda_source”中: 43:资源“aws_lambda_event_source_mapping”“lambda_source”{

【问题讨论】:

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


    【解决方案1】:

    aws_lambda_event_source_mapping 不适用于 SNS,就像错误消息中所说的那样。而是像以前一样使用aws_sns_topic_subscription

    但是,您忘记了 aws_lambda_permission 应该是(文档中的通用形式 - 您需要根据自己的设置进行调整):

    resource "aws_lambda_permission" "with_sns" {
      statement_id  = "AllowExecutionFromSNS"
      action        = "lambda:InvokeFunction"
      function_name = aws_lambda_function.func.function_name
      principal     = "sns.amazonaws.com"
      source_arn    = aws_sns_topic.default.arn
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-18
      • 2018-05-18
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      相关资源
      最近更新 更多