You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在非默认VPC创建awsx.lb.ApplicationLoadBalancer?遇400错误求助

问题

尝试在指定VPC中创建负载均衡器,示例代码如下:

export const vpc = new awsx.ec2.Vpc(
  `ls-vpc-${stackName}`,
  {
    numberOfAvailabilityZones: 2,
    cidrBlock: '10.0.0.0/16',
    subnetStrategy: 'Auto',
    subnetSpecs: [
      {
        type: awsx.ec2.SubnetType.Public,
        name: 'public',
        cidrMask: 24,
      },
      {
        type: awsx.ec2.SubnetType.Private,
        name: 'private',
        cidrMask: 24,
      },
    ],
    tags: {
      Name: `ls-vpc-${stackName}`,
      environment: stackName,
    },
  },
)

const loadBalancer = new awsx.lb.ApplicationLoadBalancer(
  `ls-loadbalancer-${stackName}`,
  {
    subnetIds: publicSubnetIds, // 注释此行可部署,但会使用默认VPC
    // securityGroups: [lbSecurityGroup.id], // 取消注释无效果
    tags: {
      Name: `ls-loadbalancer-${stackName}`,
      environment: stackName,
    },
  },
)

执行时出现以下错误:

security groups: operation error Elastic Load Balancing v2: SetSecurityGroups, https response error StatusCode: 400
InvalidConfigurationRequest: One or more security groups are invalid: provider=aws@6.56.1
解决方法
  • 确保安全组与负载均衡器同属一个VPC:lbSecurityGroup必须关联你创建的自定义VPC(ls-vpc-${stackName}),不能使用默认VPC或其他无关VPC的安全组,否则会触发无效配置错误。
  • 显式绑定安全组到自定义VPC:创建安全组时必须指定vpc参数,确保它属于目标VPC,示例代码如下:
    const lbSecurityGroup = new awsx.ec2.SecurityGroup('lb-sg', {
      vpc: vpc, // 关键:绑定到自定义VPC
      ingress: [
        { protocol: 'tcp', fromPort: 80, toPort: 80, cidrBlocks: ['0.0.0.0/0'] },
        { protocol: 'tcp', fromPort: 443, toPort: 443, cidrBlocks: ['0.0.0.0/0'] },
      ],
      egress: [
        { protocol: '-1', fromPort: 0, toPort: 0, cidrBlocks: ['0.0.0.0/0'] },
      ],
    });
    
  • 验证子网ID的正确性:publicSubnetIds必须从自定义VPC的公有子网中获取,比如通过vpc.publicSubnets.map(subnet => subnet.id)生成,避免使用其他VPC的子网ID。
  • 自动创建安全组排查问题:如果暂时无法排查安全组配置问题,可以移除securityGroups参数,让AWS自动为负载均衡器生成符合要求的安全组,同时保留正确的subnetIds配置,验证是否能正常部署,以此确认是否为安全组本身的配置问题。

内容的提问来源于stack exchange,提问作者Capaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 17:15:03