如何解决如何在部署时仅为资源创建一次密钥对,而无需在每次 cdk 部署时重新生成和重新部署
我有一项任务是在代码中为 url 签名动态生成 cloudfront 密钥对,但它们在每次 cdk 部署时都会更改:
-
首先我创建一个堆栈 cloudfrontKeyStateStack 来生成 SSM 参数:
const exist = new StringParameter(this,'Parameter',{allowedPattern: '.*',description: 'Parameter to check if the stack was created',parameterName: "/prod/enabled",stringValue: 'false',}); this.cfExist = new cdk.CfnOutput(this,'CfKeyExist',{ value: exist.stringValue,exportName: 'CfKeyExist' });
-
cloudfrontKeyStateStack 应该在 cloudfrontKeyStack 之前创建,因为我正在使用输出
-
在 cloudfrontKeyStack 中,仅当 CfKeyExist 的输出为 false 时,我才创建生成新的密钥对。然后我将 SSM 参数更新为 true,如下所示:
new StringParameter(this,{ allowedPattern: '.*',parameterName: `/${props.getEnvironmentType()}/enabled`,stringValue: 'true',});
-
这个参数的原因是只动态生成一次密钥对,而不是每次使用 cdk deploy 时更新它,但是 if 语句不起作用。也许是因为 Cloudformation 的声明性质
是否可以在 Cloudfront 堆栈的部署过程中仅动态生成一次密钥对,而无需在下一次 cdk 部署时更新它?如果是,我该如何实现?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。