这个问题通常出现在使用 AWS CDK 中的 NetworkLoadBalancer 时,尝试使用 addTargets() 方法添加目标组时出错。原因是 target 对象中没有 attachToNetworkTargetGroup() 方法。解决方法是使用 NetworkTargetProps 对象创建目标组,并将其添加到 load balancer 中。以下是示例代码:
import * as elbv2 from '@aws-cdk/aws-elasticloadbalancingv2';
// 创建 NetworkTargetProps 对象
const targetProps: elbv2.NetworkTargetProps = {
targetGroupName: 'my-target-group',
vpcId: 'my-vpc-id',
port: 80,
};
// 创建网络负载均衡器
const nlb = new elbv2.NetworkLoadBalancer(stack, 'MyNLB', {
vpc,
});
// 将目标组添加到网络负载均衡器
const targetGroup = nlb.addTargetGroup('MyTargetGroup', targetProps);
// 添加 EC2 实例作为目标
const target = new elbv2.NetworkTarget(mod, 'MyTarget', {
port: 80,
listener: targetGroup,
vpcId: 'my-vpc-id',
// ...
});
// 接下来,您可以添加多个目标,如下所示:
targetGroup.addTarget(target);
这样,您可以成功创建 NetworkLoadBalancer 目标组并添加到负载均衡器中。