微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在部署时仅为资源创建一次密钥对,而无需在每次 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 举报,一经查实,本站将立刻删除。