如何参考在云形成中创建的S3存储桶

时间:2020-07-13 14:37:26

标签: amazon-s3 amazon-cloudformation serverless-framework serverless aws-serverless

我已经在无服务器形式的cloudformation中创建了一个S3存储桶,如下所示:

    s3bucket:
      Type: 'AWS::S3::Bucket'
    BucketPolicy:
      Type: "AWS::S3::BucketPolicy"
      Properties:
        Bucket: !Ref 's3bucket'
        PolicyDocument:
          Id: ProdAnsiblePolicy
          Version: "2012-10-17"
          Statement:
            -
              Effect: Allow
              Principal:
                AWS: 'arn:aws:iam::*******:user/prodAnsible'
              Action: 's3:*'
              Resource:
                - !Join ['', ['arn:aws:s3:::', !Ref 's3bucket']]

现在,我想在serverless documentation中看到的lambda事件中引用此存储桶。需要明确的是,我需要在云层中创建此S3存储桶,以便可以授予prodAnsible用户访问权限。

这就是我尝试在lambda中引用它的方式:

  update_tenant_config:
    handler: functions/tenants_handlers.update_tenant_config
    events:
      - s3:
          bucket: s3bucket
          event: s3:ObjectRemoved:*
          existing: true

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在云形成中,您可以添加一个BucketName属性,该属性可以在云形成之外引用。

      Properties:
        BucketName: ${opt:stage}-your-bucket-name