调用Step Function时出现SSL验证失败错误(_ssl.c:2426)求助
问题描述
以下是调用Step Function的代码:
def initiate_populate_qcreviewtable(data): # call "step function" client_step_function.start_execution( input=json.dumps(data), stateMachineArn= "{arn of state machine}" )
在Lambda函数A(调用Lambda函数B)中执行上述代码时,触发SSL验证失败错误:
SSL validation failed for https://states.us-east-1.amazonaws.com/ EOF occurred in violation of protocol (_ssl.c:2426)
已尝试调整代码作用域,问题仍未解决。
解决方案建议
检查Lambda的VPC网络配置
如果Lambda部署在VPC内:- 若使用私有子网,需配置NAT网关让Lambda能访问公网;
- 或者创建Step Functions的VPC端点(Interface类型),让Lambda无需公网即可直接访问服务。缺少上述配置会导致Lambda无法正常连接Step Functions的公网端点,引发SSL相关错误。
更新AWS SDK版本
旧版本的boto3(Python SDK)可能存在SSL协议兼容问题。在Lambda的依赖配置中指定最新版本的boto3,重新部署函数后重试。确认Step Function ARN与区域匹配
确保代码中stateMachineArn的区域与Lambda函数所在区域一致。如果跨区域调用,需确认目标区域的Step Functions服务访问配置是否正确,避免因端点不匹配导致SSL验证失败。排查VPC防火墙/代理规则
检查VPC的安全组、网络ACL是否允许Lambda向states.us-east-1.amazonaws.com的443端口发起HTTPS请求,避免流量被拦截导致连接异常。测试禁用SSL验证(仅用于排查,禁止生产环境使用)
临时修改客户端初始化代码禁用SSL验证,验证是否为SSL证书相关问题:import boto3 client_step_function = boto3.client('stepfunctions', verify=False)如果此方式能成功调用,说明问题根源在SSL验证环节,需重点排查前面的网络配置或证书问题。
内容的提问来源于stack exchange,提问作者Mayur_Bhowad
相关产品推荐
相关产品推荐

