配置Lambda启停EC2实例遇端点连接错误,请求协助排查
问题排查:Lambda无法连接EC2端点错误
核心原因:区域参数混淆了可用区和区域代码
你代码里写的region = 'us-east-2c'是**可用区(AZ)**的标识,而boto3初始化EC2客户端时,region_name需要填写的是AWS区域代码(比如us-east-2)。EC2的服务端点是按区域划分的,不是可用区,用可用区会生成错误的端点URL,导致无法连接。
修正后的代码
import boto3 region = 'us-east-2' # 改成正确的区域代码 instances = ['i-081929e311352ba0c'] ec2 = boto3.client('ec2', region_name=region) def lambda_handler(event, context): ec2.stop_instances(InstanceIds=instances) print('stopped your instances: ' + str(instances))
额外排查点(如果修正后仍有问题)
- 检查Lambda执行角色权限:确保角色附带了允许
ec2:StopInstances操作的策略,且策略资源范围包含目标实例ID(或用*临时测试) - 若Lambda部署在VPC内:需要确认VPC配置了访问EC2服务的路径,比如通过NAT网关(访问公网端点)或EC2 VPC端点(私有访问)
内容的提问来源于stack exchange,提问作者Gourab Kumar
相关产品推荐
相关产品推荐

