SNS主题未触发Lambda

的asdf

我正在尝试设置由cloudformation中的SNS主题触发的电子邮件发送lambda函数,但是由于某种原因,它无法正常工作。在lambda和sns上升之后,我进入并检查了所有依赖项/权限,一切似乎都井然有序,但是当我发布该主题时,什么也没有发生。当我在Lambda控制台中手动测试Lambda时,它可以完美运行。

云形成

"Resources": {
    "CloudformationEventHandlerLambdaExecutionRole": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "Path": "/",
        "Policies": [
          {
            "PolicyName": "CloudformationTrigger",
            "PolicyDocument": {
              "Statement": [
                {
                  "Effect": "Allow",
                  "Action": [
                      "ses:*"
                  ],
                  "Resource": [
                    "arn:aws:ses:*"
                  ]
                }
              ]
            }
          }
        ],
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": [
                "sts:AssumeRole"
              ],
              "Effect": "Allow",
              "Principal": {
                "Service": [
                  "lambda.amazonaws.com"
                ]
              }
            }
          ]
        }
      }
    },
    "CloudformationEventHandlerLambdaFunction": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Handler": "lambda_function.lambda_handler",
        "Role": {
          "Fn::GetAtt": [
            "CloudformationEventHandlerLambdaExecutionRole",
            "Arn"
          ]
        },
        "Code": {
          "S3Bucket": {
            "Ref": "Bucket"
          },
          "S3Key": "CloudformationEventHandler.zip"
        },
        "Runtime": "python2.7",
        "Timeout": "30"
      },
      "DependsOn": [
        "CloudformationEventHandlerLambdaExecutionRole"
      ]
    },
    "CloudformationEventHandlerLambdaInvokePermission": {
      "Type": "AWS::Lambda::Permission",
      "Properties": {
        "Action": "lambda:InvokeFunction",
        "SourceAccount": {
          "Ref": "AWS::AccountId"
        },
        "Principal": "sns.amazonaws.com",
        "SourceArn": {
            "Ref": "CloudformationTopic"
        },
        "FunctionName": {
          "Fn::GetAtt": [
            "CloudformationEventHandlerLambdaFunction",
            "Arn"
          ]
        }
      }
    },
    "CloudformationTopic": {
        "Type": "AWS::SNS::Topic",
        "Properties": {
            "DisplayName": "CloudformationIngestTopic",
            "Subscription": [
                {
                    "Endpoint": {
                        "Fn::GetAtt": [
                            "CloudformationEventHandlerLambdaFunction",
                            "Arn"
                        ]
                    },
                    "Protocol": "lambda"
                }
            ]
        },
        "DependsOn": [ "CloudformationEventHandlerLambdaFunction" ]
    }
  }

Python SES Lambda

import boto3

client = boto3.client('ses')

def lambda_handler(event, context):
    message = """
        Event:
        {}

        Context:
        {}
    """.format(event, context)

    response = client.send_email(
            Source='***censored***',
            Destination={ 'ToAddresses': [ ***censored***' ] },
            Message={
                    'Subject': {
                            'Data': 'CFMTest'
                        },
                    'Body': {
                            'Text': {
                                    'Data': message
                                }
                        }
                }
            )
乔纳森·斯德(Jonathan Seed)

SourceAccountAWS::Lambda::Permission资源型只是为了与CloudWatch的日志,CloudWatch的规则,S3和SES使用。
CloudformationEventHandlerLambdaInvokePermission模板上资源中删除此字段后,我可以通过发布到SNS主题来调用lambda函数。

有关lambda权限的更多信息,请参阅文档。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SNS主题未触发Lambda

来自分类Dev

AWS Lambda SNS事件未使用无服务器yml绑定到正确的SNS主题ARN

来自分类Dev

从lambda向sns主题发布消息

来自分类Dev

从lambda向sns主题发布消息

来自分类Dev

在cloudformation中从SNS Topic触发lambda

来自分类Dev

Amazon SNS退回事件未触发

来自分类Dev

更改URL时未触发主题

来自分类Dev

AWS Lambda SNS两次发送主题

来自分类Dev

AWS Lambda CDK不会生成SNS主题和订阅

来自分类Dev

使用 AWS Lambda 函数订阅 Amazon SNS 主题?

来自分类Dev

适用于 Lambda 和 SNS 主题的 AWS CloudFormation

来自分类Dev

AWS Lambda 无法找到明确存在的 SNS 主题?

来自分类Dev

AWS SNS订阅与Lambda函数上的触发器的比较?

来自分类Dev

Lambda函数未使用Cron触发

来自分类Dev

为什么S3文件上传不会触发SNS主题事件?

来自分类Dev

Cognito至Lambda同步触发器未触发

来自分类Dev

仅在处理相同主题的SQS订阅后才调用AWS Lambda SNS事件

来自分类Dev

团队成员将APIG部署到特定阶段时触发Lambda / SNS通知

来自分类Dev

如果预订了AWS SNS主题的我的lambda作业出现故障或停止工作该怎么办?

来自分类Dev

我们可以使用 Go 语言编写的 lambda 函数向 SNS 主题发布消息吗?

来自分类Dev

创建主题规则不会在lambda上创建触发器

来自分类Dev

使用服务总线资源管理器创建的 Azure 主题订阅规则未触发

来自分类Dev

RxSwift使Observable触发主题

来自分类Dev

未触发事件触发

来自分类Dev

AWS无法订阅SNS主题:CognitoIdentityCredentials无权执行:SNS:订阅

来自分类Dev

AWS SNS按名称获取主题

来自分类Dev

如何从Amazon SNS主题退订iOS设备?

来自分类Dev

如何从Amazon SNS主题退订iOS设备?

来自分类Dev

AWS SNS 主题数量限制

Related 相关文章

热门标签

归档