我是 cloudformation 模板的新手。使用 codepipeline 我正在嘗試創建一個 s3 存盤桶。這是 cloudformation 模板:
---
AWSTemplateFormatVersion: 2010-09-09
Description: Template to create buckets and copy ymls to S3.
Parameters:
SPABucket:
Description: S3 bucket name for backend lambda functions
Type: String
Default: reference-data-migration-bucket-2021
Resources:
S3Bucketxls:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${SPABucket}-${AWS::AccountId}-${AWS::Region}
PublicAccessBlockConfiguration:
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
VersioningConfiguration:
Status: Enabled
AccessControl: Private
LoggingConfiguration:
DestinationBucketName: !Ref SpaLoggingBucket
LogFilePrefix: S3Bucketxls
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: 'AES256'
Tags:
- Key: "sample"
Value: "test"
SpaLoggingBucket:
Type: AWS::S3::Bucket
Properties:
AccessControl: Private
Tags:
- Key: "sample"
Value: "test"
Outputs:
S3Bucketxlsx:
Description: The CodeDeploy role for a particular business service being deployed
Value: !GetAtt S3Bucketxls.Arn
Export:
Name: !Sub "${AWS::StackName}-S3BucketxlsArn"
使用代碼管道執行 Lint 時出現驗證錯誤:
呼叫 ValidateTemplate 操作時發生錯誤 (ValidationError):無效的模板資源屬性 'SpaLoggingBucket'
[容器] 2022/02/24 16:30:14 命令未成功退出 aws cloudformation validate-template --template-body file://${TMPLNAME} 退出狀態 254 [容器] 2022/02/24 16:30 :14 階段完成:構建狀態:失敗 [容器] 2022/02/24 16:30:14 階段背景關系狀態代碼:COMMAND_EXECUTION_ERROR 訊息:執行命令時出錯:aws cloudformation validate-template --template-body file://$ {TMPLNAME}。原因:退出狀態254
我怎樣才能解決這個問題?
uj5u.com熱心網友回復:
縮進在 YAML 中很重要,并且您的SpaLoggingBucket塊似乎與其他資源不符,例如S3Bucketxls,使得 CloudFormation 無法正確地將其檢測為資源。
將它移回一個縮進級別對我有用:
---
AWSTemplateFormatVersion: 2010-09-09
Description: Template to create buckets and copy ymls to S3.
Parameters:
SPABucket:
Description: S3 bucket name for backend lambda functions
Type: String
Default: reference-data-migration-bucket-2021
Resources:
S3Bucketxls:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${SPABucket}-${AWS::AccountId}-${AWS::Region}
PublicAccessBlockConfiguration:
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
VersioningConfiguration:
Status: Enabled
AccessControl: Private
LoggingConfiguration:
DestinationBucketName: !Ref SpaLoggingBucket
LogFilePrefix: S3Bucketxls
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: 'AES256'
Tags:
- Key: "sample"
Value: "test"
SpaLoggingBucket:
Type: AWS::S3::Bucket
Properties:
AccessControl: Private
Tags:
- Key: "sample"
Value: "test"
Outputs:
S3Bucketxlsx:
Description: The CodeDeploy role for a particular business service being deployed
Value: !GetAtt S3Bucketxls.Arn
Export:
Name: !Sub "${AWS::StackName}-S3BucketxlsArn"
PS 使用 JSON 的好處之一是不會遇到這樣的事故。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/434234.html
