微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 cloudformation 中从 SNS 主题触发 lambda

如何解决在 cloudformation 中从 SNS 主题触发 lambda

我找不到让这个 SNS 主题在这个 cloudformation 脚本中触发我的 lambda 的方法,堆栈成功创建,lambda 被添加为 SNS 主题订阅者,但我不知道如何从脚本中添加 SNS 主题作为 lambda 的触发器,当警报向主题发送事件时,根本不会触发 lambda

  Resources:
    TriggerTopic:
      Type: AWS::SNS::Topic
      Properties:
        TopicName: TRIGGER_TOPIC
        Subscription:
          - Protocol: lambda
            Endpoint: !GetAtt TriggerLambda.Arn
  
    TriggerLambda:
      Type: AWS::Lambda::Function
      Properties:
        Code:
          S3Bucket: !Ref LambdaS3Bucket
          S3Key: !Ref LambdaS3Key
        Handler: !Ref LambdaHandler
        Runtime: java8
        Description: Trigger lambda
        MemorySize: 512
        Timeout: 30
        Role: !GetAtt LambdaRole.Arn
  
    LambdaRole:
      Type: AWS::IAM::Role
      Properties:
        AssumeRolePolicyDocument:
          Version: 2012-10-17
          Statement:
            - Action:
                - sts:AssumeRole
              Effect: Allow
              Principal:
                Service:
                  - lambda.amazonaws.com
        ManagedPolicyArns:
          - 'arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'
          - 'arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole'
          - 'arn:aws:iam::aws:policy/AWSXraywriteonlyAccess'
          - 'arn:aws:iam::aws:policy/AWSLambdaReadOnlyAccess'
          - 'arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess'

解决方法

看看这个问题: Triggering a lambda from SNS using cloud-formation?

您需要允许 SNS 使用 AWS::Lambda::Permission 触发 lambda

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。