Cloudformation:在 S3 存储桶上遇到不受支持的属性 DeletionPolicy

问题描述

我正在使用以下代码段来配置 S3 Bucket 使用 Cloudformation

我想 Retain S3 存储桶,因此使用 DeletionPolicy

Resources:
  S3Bucket:
    Type: 'AWS::S3::Bucket'
    Condition: ShouldCreateS3Bucket
    Properties:
      BucketName: !Ref S3BackupBucketName
      DeletionPolicy: Retain

但是当我部署这个模板时出现错误

Encountered unsupported property DeletionPolicy

我参考了文档并且存在 DeletionPolicy 属性

我应该如何解决这个问题?

提前致谢。

解决方法

它应该在 S3Bucket 级别,而不是 Properties

Resources:
  S3Bucket:
    Type: 'AWS::S3::Bucket'
    Condition: ShouldCreateS3Bucket
    DeletionPolicy: Retain 
    Properties:
      BucketName: !Ref S3BackupBucketName
,

建议尝试使用 CloudFormation Linter 中的 VSCode 在创作模板以及自动完成和文档链接时内联查看其中一些错误:

Visual Studio Code extension

[cfn-lint] E3002: Invalid Property Resources/S3Bucket/Properties/DeletionPolicy