为AWS ALB设置安全组时报LoadBalancerNotFound错误该如何解决?
问题核心原因
你调用了错误的Boto3负载均衡客户端:
boto3.client('elb')是仅用于操作**经典负载均衡(CLB)**的客户端,你使用的应用负载均衡(ALB)需要用elbv2客户端操作- CLB的
apply_security_groups_to_load_balancer接口不支持ALB,参数规则也和ALB的接口不匹配
修正后可运行代码
def set_alb_security_group(cfd_sg): global ALB_ARN # 替换为elbv2客户端 client = boto3.client('elbv2', 'eu-central-1') # ALB修改安全组使用set_security_groups接口,传LoadBalancerARN而非名称 result = client.set_security_groups( LoadBalancerArn=ALB_ARN, SecurityGroups=['sg-088257e3c09954802', 'sg-0f99e3a27f7ceb393', 'sg-0c262b4c866c7258a'] ) logging.info(result)
其他可选排查项(修改后仍报错可检查)
- 确认你的ALB确实部署在
eu-central-1区域,和客户端初始化时指定的区域一致 - 确认代码执行身份(如Lambda执行角色)持有
elasticloadbalancing:SetSecurityGroups的权限,且资源范围包含你的ALB ARN - 确认ALB当前状态为ACTIVE,没有处于创建、修改、删除的过渡状态
内容的提问来源于stack exchange,提问作者Kaguei Nakueka
相关产品推荐
相关产品推荐

