gpt4 book ai didi

amazon-web-services - CloudFormation S3 Bucket/BucketPolicy 创建 - 模板的资源 block 中 Unresolved 资源依赖关系 [环境]

转载 作者:行者123 更新时间:2023-12-03 07:35:39 24 4
gpt4 key购买 nike

我最近开始学习我的第一个 AWS 认证,同时我也开始使用 CloudFormation。然而,我遇到了障碍。

我的问题:我正在尝试创建一个 S3 存储桶并向其附加存储桶策略。但是,每当我尝试验证模板时,都会收到以下错误:

An error occurred (ValidationError) when calling the ValidateTemplate operation: Template format error: Unresolved resource dependencies [Environment] in the Resources block of the template

我做了什么:

  LogsBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub my-cluster-logs-${Environment}
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
LifecycleConfiguration:
Rules:
- Id: Log expiry policy
ExpirationInDays: 90
Status: Enabled
- Id: Change tier
Status: Enabled
Transitions:
- StorageClass: STANDARD_IA
TransitionInDays: 30
DeletionPolicy: Delete

LogsBucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket:
Ref: 'LogsBucket'
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- s3:PutObject
Resource:
- Fn::Join:
- ''
-
- !GetAtt LogsBucket.Arn
- '/*'
Principal:
AWS: #removed_for_this_post
DependsOn:
- LogsBucket

我已经尝试了各种方法,但仍然收到错误。

结论有任何想法吗?顺便说一下,该模板是一个有效的 YAML 模板。预先感谢您!

最佳答案

将其粘贴在顶部

Parameters:
Environment:
Type: String

并从您的命令或部署管道传入参数名称“Environment”。

如果您运行单独的开发和生产帐户,则不能仅使用相同的存储桶名称,因为 S3 存储桶名称必须在全局范围内唯一,而不仅仅是您的帐户唯一。

关于amazon-web-services - CloudFormation S3 Bucket/BucketPolicy 创建 - 模板的资源 block 中 Unresolved 资源依赖关系 [环境],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60093734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com