Как исправить «В S3 должен быть точно указан TransitionDate и TransitionInDays» - PullRequest
0 голосов
/ 09 июля 2019

Когда я собираюсь создать контейнер S3 с помощью стека Cloudformation, он отправляет мне следующее сообщение об ошибке: «Необходимо указать точно один из TransitionDate и TransitionInDays». Переход в днях указан в соответствии с кодом ниже:

Resources:
  S3CreateBucket:
    Type: AWS::S3::Bucket
    Properties:
          BucketName: !Sub "${AWS::StackName}"

          BucketEncryption:
            ServerSideEncryptionConfiguration:
              - ServerSideEncryptionByDefault:
                  SSEAlgorithm: AES256
          LoggingConfiguration:
            DestinationBucketName: xxxx
            LogFilePrefix: !Sub "{AWS::StackName}"/                      
          LifecycleConfiguration:
            Rules:
              - Id: Multipartupload
                Status: 'Enabled'
                AbortIncompleteMultipartUpload:
                  DaysAfterInitiation: 7 
                ExpirationInDays: 180                     
              -  Id: Glacier
                 Status: 'Enabled'
                 Transitions:                  
                  - StorageClass: GLACIER
                  - TransitionInDays: 90            
          Tags:
            -
             Key: Name
             Value: public
          VersioningConfiguration:
            Status: Enabled
          WebsiteConfiguration:
            ErrorDocument: error.html
            IndexDocument: index.html


Что я могу сделать, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 09 июля 2019

Я думаю, что ваш формат для раздела «Переходы» неверен. Я считаю, что это будет работать:

  S3CreateBucket:
    Type: AWS::S3::Bucket
    Properties:
          BucketName: !Sub "${AWS::StackName}"

          BucketEncryption:
            ServerSideEncryptionConfiguration:
              - ServerSideEncryptionByDefault:
                  SSEAlgorithm: AES256
          LoggingConfiguration:
            DestinationBucketName: xxxx
            LogFilePrefix: !Sub "{AWS::StackName}"/                      
          LifecycleConfiguration:
            Rules:
              - Id: Multipartupload
                Status: 'Enabled'
                AbortIncompleteMultipartUpload:
                  DaysAfterInitiation: 7 
                ExpirationInDays: 180                     
              -  Id: Glacier
                 Status: 'Enabled'
                 Transition:                  
                   StorageClass: GLACIER
                   TransitionInDays: 90            
          Tags:
            -
             Key: Name
             Value: public
          VersioningConfiguration:
            Status: Enabled
          WebsiteConfiguration:
            ErrorDocument: error.html
            IndexDocument: index.html

Примечание. Я изменил переходы на переходные и удалил 2 отдельных списка. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html

Если вы хотите использовать переходы, так как планируете добавить более одного перехода, то вы должны сделать что-то вроде следующего:

    Transitions:
      - StorageClass: String
        TransitionDate: Timestamp
        TransitionInDays: Integer
      - StorageClass: String
        TransitionDate: Timestamp
        TransitionInDays: Integer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...