如何在Serverless Framework中引用Amazon提供的Lambda层
Lambda层AWSLambda-Python38-SciPy1x:107引用失败的解决办法
问题梳理
你尝试为Lambda函数引用亚马逊官方提供的AWSLambda-Python38-SciPy1x:107层,不管是硬编码ARN还是直接在配置中写层名称的方式,在不同部署阶段均无法生效。
解决步骤
使用带区域的完整ARN:官方层不能直接用层名引用,必须使用包含区域和官方账号ID的完整ARN。亚马逊官方SciPy层的固定账号ID为
111479046082,正确格式示例:arn:aws:lambda:us-east-1:111479046082:layer:AWSLambda-Python38-SciPy1x:107替换
us-east-1为你部署阶段对应的区域即可。CloudFormation动态适配区域:如果用CloudFormation管理部署,用
Fn::Sub动态生成ARN,自动适配不同阶段的区域,避免硬编码区域的问题:layers: - !Ref MneLambdaLayer - !Sub arn:aws:lambda:${AWS::Region}:111479046082:layer:AWSLambda-Python38-SciPy1x:107验证运行时兼容性:确认你的Lambda函数运行时为Python3.8,该层仅适配此版本,运行时不匹配会导致层加载失败。
检查部署权限:确保部署Lambda的IAM角色拥有
lambda:GetLayerVersion权限,否则会因权限不足无法拉取官方层资源。
内容的提问来源于stack exchange,提问作者Henry Nur
相关产品推荐
相关产品推荐

