如何在部署时仅为资源创建一次密钥对,而无需在每次 cdk 部署时重新生成和重新部署

问题描述

我有一项任务是在代码中为 url 签名动态生成 cloudfront 密钥对,但它们在每次 cdk 部署时都会更改:

  1. 首先我创建一个堆栈 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' });
    
  2. cloudfrontKeyStateStack 应该在 cloudfrontKeyStack 之前创建,因为我正在使用输出

  3. 在 cloudfrontKeyStack 中,仅当 CfKeyExist 的输出为 false 时,我才创建生成新的密钥对。然后我将 SSM 参数更新为 true,如下所示:

     new StringParameter(this,{
     allowedPattern: '.*',parameterName: `/${props.getEnvironmentType()}/enabled`,stringValue: 'true',});    
    
  4. 这个参数的原因是只动态生成一次密钥对,而不是每次使用 cdk deploy 时更新它,但是 if 语句不起作用。也许是因为 Cloudformation 的声明性质

是否可以在 Cloudfront 堆栈的部署过程中仅动态生成一次密钥对,而无需在下一次 cdk 部署时更新它?如果是,我该如何实现?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)