gpt4 book ai didi

amazon-web-services - 在cloudformation中使用Sub内部的Gett函数

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

我正在尝试获取 RDS 端点的值并将其用作我正在创建的 secret 管理器中的值。

我知道如何在输出中获取端点:

  DB1ConnectionString:
Condition: Launch1Engine
Description: The First db Connection String
Value: {"Fn::GetAtt": ["RDSDBInstance1","Endpoint.Address"]}

但是我无法在当前堆栈中使用输出,因此我想使用与获取端点相同的方式并在 secret 管理器中使用它。这是我尝试过的:

  DBStringSecret1:
Condition: Launch1Engine
Type: 'AWS::SecretsManager::Secret'
Properties:
Name: !Ref DBStringSecret1Name
SecretString: !Sub '{"repository":!GetAtt RDSDBInstance1.Endpoint.Address,"username":"MasterUsername","password":"${SafeMineDBPassword1}"}'

但是我得到一个文字字符串作为“存储库值而不是 RDS 端点,有没有办法在“!Sub”中使用“!GetAtt”?

或者我做错了,我可以定义一个新参数来使用 Join 构建我想要的值?

!Sub 'jdbc://{!GetAtt RDSDBInstance1.Endpoint.Address}:3306/<SCHEMA>?'

预期结果:

jdbc://endpoint:3306/?

enter image description here

最佳答案

在这种情况下你必须使用 join 函数:

SecretString: !Join
- ''
- - '{"repository": "'
- !GetAtt RDSDBInstance1.Endpoint.Address
- '","username":"MasterUsername","password":"'
- !Ref SafeMineDBPassword1
- '"}'

关于amazon-web-services - 在cloudformation中使用Sub内部的Gett函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73152940/

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