【问题标题】:AWS migrate ApplicationLoadBalancer from CFT to CDK without replacementAWS 无需更换即可将 ApplicationLoadBalancer 从 CFT 迁移到 CDK
【发布时间】:2022-01-26 11:41:58
【问题描述】:

我目前正在将 Cloudformation (CFT) 中定义的 AWS 堆栈迁移到 CDK。目标不是触发病毒资源的替换,而是我的 Application Load Balancer 卡住了。

在旧的 CFT 堆栈中,ALB 定义为:

Type: AWS::ElasticLoadBalancingV2::LoadBalancer

没有允许以下值的“类型”属性集:application |网关|网络 无论如何,AWS 控制台中生成的资源的类型设置为“应用程序”。

在 CDK 中,我创建 ALB,如下所示:

new ApplicationLoadBalancer(this, 'alb', {
  vpc,
  internetFacing: true,
  vpcSubnets: {
    subnets: vpc.publicSubnets,
  },
  securityGroup: this.securityGroup,
});

不幸的是,这会触发替换,因为 "Type": "application" 现在已明确设置。

有没有办法解决这个问题?我的下一个猜测是尝试 Cfn Construct...

【问题讨论】:

    标签: amazon-web-services aws-cdk aws-application-load-balancer


    【解决方案1】:

    我找到的最方便的解决方案是删除在 L2 构造中隐式设置的属性。

    const alb = new ApplicationLoadBalancer(this, 'alb', {
      vpc,
      internetFacing: true,
      vpcSubnets: {
        subnets: vpc.publicSubnets,
      },
      securityGroup: mySg
    });
    
    // First cast Construct to its underlying Cfn Construct
    // Then delete property
    (alb.node.defaultChild as CfnLoadBalancer).addDeletionOverride('Properties.Type');
    

    更多信息可以在这里找到:AWS Documentation: Escape hatches

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-07
      • 2016-11-23
      • 2023-01-22
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      • 2020-06-12
      相关资源
      最近更新 更多