我正在编写一个工具,在cdk deploy
之后利用CloudFormation输出,然后根据这些输出使用配置文件设置开发环境
在每个核心基础架构组件(auth、db、webapp、storage等)的末尾,我有一个CfnOutput
结构,如下所示:
cdk.CfnOutput(
self, 'UserPoolID',
value=self.user_pool.user_pool_id,
)
输出类似于
Stack.AuthUserPoolIDABC1234 = s1lvgk44ul23ahfd91p4rdngnf
我的目标是将该值(s1lvgk44ul23ahfd91p4rdngnf
)与其他CloudFormation输出的其他值一起放入配置文件config.js
因此,我在CfnOutput
周围编写了一个包装器,如下所示:
import os
def cfn_output(scope, prefix, name, value):
cdk.CfnOutput(
scope, name,
value=value,
)
# Save name and value to flat files so that we can read them in other processes
os.makedirs('.tmp', exist_ok=True)
with open(os.path.join('.tmp', f'{prefix}{name}.txt'), 'w') as f:
f.write(value)
所以我用它来代替CfnOutput
,就像这样:
cfn_output(
scope=self,
prefix='Auth',
name='UserPoolID',
value=self.user_pool.user_pool_id
)
运行cdk synth
时,生成的文件(.tmp/AuthUserPoolID.txt
)包含以下内容:
${Token[TOKEN.249]}
这显然不是我所期望的那样
有什么解决方案或变通方法可以将该令牌解析为可用的东西,或者可能是一个完全不同的解决方案
相反,我决定使用SDK从CloudFormation堆栈获取经过评估的输出
相关问题 更多 >
编程相关推荐