gpt4 book ai didi

amazon-web-services - 具有 Cloudformation 动态引用的 AWS Proton 模板

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

在 AWS Proton 模板中,我们使用 Jinja 的双大括号语法 "{{}}" 定义一个变量。 Cloudformation 似乎对 dynamic references 使用相同的语法。 .

例如,使用 Cloudformation 定义一个 RDS 实例,其密码存储在 Secrets Manager 中,如下所示:

MyDBInstance2:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 20
DBInstanceClass: db.t2.micro
DBName: !Ref RDSDBName
Engine: mysql
MasterUsername:
Fn::Join:
- ""
- - "{{resolve:secretsmanager:"
- Ref: DBCredentialsSecret
- ":SecretString:username::}}"
MasterUserPassword:
Fn::Join:
- ""
- - "{{resolve:secretsmanager:"
- Ref: DBCredentialsSecret
- ":SecretString:password::}}"
MultiAZ: False
PubliclyAccessible: False
StorageType: gp2
DBSubnetGroupName: !Ref myDBSubnetGroup
VPCSecurityGroups:
- !Ref RDSSecurityGroup
BackupRetentionPeriod: 0
DBInstanceIdentifier: 'rotation-instance'

是否可以在 Proton 模板中包含动态引用?我如何知道我的模板出了什么问题?

最佳答案

我最终找到了解决方案:

Jinja 支持使用“{% raw %}{% endraw %}”语法进行转义 ( documentation )

使用它,我能够构建以下有效模板:

MyDBInstance2:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 20
DBInstanceClass: db.t2.micro
DBName: !Ref RDSDBName
Engine: mysql
MasterUsername:
Fn::Join:
- ""
- - "{% raw %}{{resolve:secretsmanager:{%endraw%}"
- Ref: DBCredentialsSecretAFB45EA2
- "{% raw %}:SecretString:username::}}{%endraw%}"
MasterUserPassword:
Fn::Join:
- ""
- - "{% raw %}{{resolve:secretsmanager:{%endraw%}"
- Ref: DBCredentialsSecretAFB45EA2
- "{% raw %}:SecretString:password::}}{%endraw%}"
MultiAZ: False
PubliclyAccessible: False
StorageType: gp2
DBSubnetGroupName: !Ref myDBSubnetGroup
VPCSecurityGroups:
- !Ref RDSSecurityGroup
BackupRetentionPeriod: 0
DBInstanceIdentifier: 'rotation-instance'

关于amazon-web-services - 具有 Cloudformation 动态引用的 AWS Proton 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69048925/

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