You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python AWS Lambda中访问Layer里的config.yaml文件

解决Lambda自定义资源读取Layer中config.yaml的路径问题

核心原因

Lambda Layer的内容会被AWS解压到/opt目录下,而非Lambda函数的工作目录(默认是/var/task),所以你之前用相对路径自然找不到文件。

解决步骤

1. 确认Lambda Layer的打包结构是否正确

首先要保证你的Layer打包后,deps/config.yaml的结构在解压后对应/opt/deps/config.yaml:

  • 正确的打包方式:在Dynamics目录下执行命令,直接打包deps文件夹
    zip -r config-layer.zip deps/
    
  • 对应CDK中创建Layer的代码要指向deps目录(而非整个Dynamics目录):
    from aws_cdk import aws_lambda as lambda_
    
    config_layer = lambda_.LayerVersion(self, "ConfigLayer",
        code=lambda_.Code.from_asset("Dynamics/deps"),
        compatible_runtimes=[lambda_.Runtime.PYTHON_3_8]
    )
    

2. 使用绝对路径读取文件

在Lambda函数的代码中,直接用/opt开头的绝对路径访问配置文件:

import yaml
from yaml import SafeLoader

with open('/opt/deps/config.yaml') as f:
    data = yaml.load(f, Loader=SafeLoader)
    print(data)

3. 调试排查(可选)

如果还是找不到文件,可以在代码中添加目录打印,确认文件实际位置:

import os

# 打印当前工作目录
print(f"当前工作目录: {os.getcwd()}")
# 打印/opt目录下的内容
print(f"/opt目录内容: {os.listdir('/opt')}")
# 打印/opt/deps目录内容(如果存在)
if os.path.exists('/opt/deps'):
    print(f"/opt/deps目录内容: {os.listdir('/opt/deps')}")

内容的提问来源于stack exchange,提问作者user20358

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:55:20