
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该镜像为 AWS SAM CLI(Serverless Application Model Command Line Interface)提供本地测试支持,用于模拟 AWS Lambda 的执行环境。它基于 Amazon Linux 构建,集成了 Lambda 运行时所需的编程语言软件及核心文件,支持开发者在本地环境验证 Lambda 函数逻辑,无需直接部署至 AWS 云环境。
handler 函数)。该镜像通常由 SAM CLI 自动管理,无需手动执行 docker run。通过以下 SAM CLI 命令触发本地测试时,镜像会被自动拉取并启动:
bash# 本地调用指定 Lambda 函数(需提前准备事件文件 event.json) sam local invoke "FunctionName" -e event.json # 启动本地 API Gateway 模拟服务(用于测试 HTTP 触发型函数) sam local start-api # 启动 Lambda 本地模拟器(支持通过 AWS SDK 或 CLI 触发函数) sam local start-lambda
如需自定义测试环境(如修改运行时参数、挂载本地依赖),可手动启动容器:
bashdocker run -d \ --name lambda-local-env \ -v /本地函数代码目录:/var/task \ # 挂载 Lambda 函数代码(必填) -e AWS_REGION="us-east-1" \ # 设置 AWS 区域(影响 SDK 客户端默认配置) -e LAMBDA_TASK_ROOT="/var/task" \ # 指定函数代码根目录(固定为 /var/task) -e LAMBDA_FUNCTION_NAME="MyFunc" \# 函数名称(自定义) -p 9000:8080 \ # 映射运行时接口端口(8080 为 RIE 默认端口) amazon/aws-sam-cli-emulation-image-<runtime>:<tag> # 替换为具体 runtime 和标签
说明:
<runtime>需替换为目标函数运行时(如python3.9、nodejs18.x);<tag>为镜像版本标签(如latest或具体版本号,可从 AWS ECR 仓库 获取)。
在多服务依赖场景(如 Lambda + 本地 DynamoDB)中,可通过 Docker Compose 集成:
yamlversion: '3.8' services: lambda: image: docker.xuanyuan.run/amazon/aws-sam-cli-emulation-image-python3.9:latest volumes: - ./lambda-code:/var/task # 挂载本地函数代码 environment: - AWS_REGION=us-west-2 - DYNAMODB_ENDPOINT=http://dynamodb:8000 # 指向本地 DynamoDB 服务 ports: - "9000:8080" # 暴露 RIE 接口,用于接收函数调用请求 depends_on: - dynamodb dynamodb: image: docker.xuanyuan.run/amazon/dynamodb-local:latest ports: - "8000:8000" command: "-jar DynamoDBLocal.jar -inMemory" # 内存模式运行(数据不持久化)
| 环境变量名 | 描述 | 默认值示例 |
|---|---|---|
LAMBDA_TASK_ROOT | Lambda 函数代码根目录,容器内固定为 /var/task,需通过挂载本地目录注入代码 | /var/task |
AWS_REGION | AWS 区域配置,影响 AWS SDK 客户端默认区域(如 us-east-1) | us-east-1 |
LAMBDA_FUNCTION_NAME | 函数名称,用于日志和错误信息标识 | UnnamedFunction |
| 环境变量名 | 描述 | 默认值示例 |
|---|---|---|
LAMBDA_MEMORY_SIZE | 分配给函数的内存大小(MB),影响 CPU 资源配额 | 128 |
LAMBDA_TIMEOUT | 函数超时时间(秒) | 3 |
AWS_ACCESS_KEY_ID | 本地测试用 AWS 访问密钥(仅用于模拟,无需真实密钥) | test |
AWS_SECRET_ACCESS_KEY | 本地测试用 AWS 密钥(仅用于模拟,无需真实密钥) | test |
/var/task:必须挂载本地 Lambda 函数代码目录,包含函数入口文件(如 handler.py、index.js)及依赖文件(如 requirements.txt、node_modules)。/tmp:Lambda 函数临时存储目录,如需持久化临时文件可挂载本地目录(如 -v /本地临时目录:/tmp)。/var/runtime:运行时依赖目录(镜像内置,通常无需挂载,除非需自定义 runtime 文件)。amazon/aws-sam-cli-emulation-image-python3.9),版本不匹配会导致运行时错误。sbx_user1051)对挂载目录有读权限,避免因权限不足导致函数加载失败(可通过 chmod 755 /本地目录 调整)。public.ecr.aws 仓库(国内用户可配置镜像加速)。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务