amazon/aws-sam-cli-emulation-image-java11本镜像用于支持 AWS SAM CLI(Serverless Application Model Command Line Interface)的本地测试功能,提供 AWS Lambda 执行环境的本地模拟。通过模拟 Lambda 实际运行环境(包括基础操作系统、运行时依赖及编程模型支持文件),帮助开发人员在本地开发阶段验证 Lambda 函数的行为,无需直接部署至 AWS 云环境,从而提升开发效率并降低测试成本。
sam local start-api --hot-reload),修改代码后无需重启容器即可实时查看效果,加速调试流程。通过 AWS SAM CLI 命令触发镜像运行,无需手动执行 docker run(SAM CLI 会自动拉取并管理镜像生命周期)。常见命令示例:
bashsam local invoke "MyLambdaFunction" -e event.json
MyLambdaFunction 为 SAM 模板中定义的函数名;-e event.json 指定输入事件文件,镜像将模拟 Lambda 接收该事件并执行函数。bashsam local start-api --port 3000
http://localhost:3000/endpoint 测试函数。通过 --env-vars 参数指定环境变量文件,镜像内的 Lambda 函数可读取该变量:
bashsam local invoke "MyLambdaFunction" --env-vars env.json
env.json 格式示例:
json{ "MyLambdaFunction": { "DB_CONNECTION_STRING": "local_connection_string", "LOG_LEVEL": "debug" } }
默认情况下,SAM CLI 会将当前项目目录挂载至镜像内的 /var/task 目录(Lambda 函数代码默认路径),实现代码实时更新。如需自定义挂载路径,可通过 --volume 参数(需配合 docker run 手动启动时使用):
bashdocker run -v /local/code/path:/var/task amazon/aws-sam-cli-emulation-image
通过 SAM 模板(template.yaml)的 Runtime 字段指定函数运行时,镜像将自动匹配对应版本的运行环境:
yamlResources: MyLambdaFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.9 # 指定 Python 3.9 运行时 Handler: app.lambda_handler
如需绕过 SAM CLI 直接使用镜像(不推荐,建议通过 SAM CLI 管理):
bashdocker run -d \ --name lambda-emulator \ -p 9000:8080 \ -v /local/lambda/code:/var/task \ -e AWS_REGION=us-east-1 \ amazon/aws-sam-cli-emulation-image:python3.9
-p 9000:8080:映射容器端口 8080 至本地 9000,用于接收 HTTP 触发请求;-v /local/lambda/code:/var/task:挂载本地代码目录至容器内 Lambda 工作目录;-e AWS_REGION=us-east-1:设置环境变量(模拟 AWS 区域)。yamlversion: '3.8' services: lambda-emulator: image: amazon/aws-sam-cli-emulation-image:python3.9 container_name: lambda-emulator ports: - "9000:8080" volumes: - ./lambda-code:/var/task environment: - AWS_REGION=us-east-1 - LOG_LEVEL=info restart: unless-stopped
docker-compose up -d 启动容器,通过 curl -X POST http://localhost:9000/2015-03-31/functions/function/invocations -d '{"key":"value"}' 触发函数执行。python3.9),否则可能导致运行时不兼容;sam local start-lambda 或本地服务模拟工具(如 moto)验证;manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务