
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该Docker镜像为AWS Lambda提供基于Node.js的基础运行环境,并预先集成了sharp高性能图像处理库。sharp库支持多种图片操作(如裁剪、缩放、格式转换、压缩等),本镜像旨在简化图像处理相关AWS Lambda函数的开发与部署流程,避免手动配置sharp的系统依赖(如libvips),可直接基于镜像构建Lambda函数包并部署。
通过Docker Hub或AWS ECR拉取镜像(具体镜像仓库地址需根据实际发布源调整):
bashdocker pull [镜像仓库地址]/aws-lambda-nodejs-sharp:latest
1. 准备函数代码
创建index.js作为Lambda处理程序,实现图片处理逻辑:
javascript// index.js const sharp = require('sharp'); const { S3Client, GetObjectCommand, PutObjectCommand } = require('@aws-sdk/client-s3'); const s3 = new S3Client(); /** * Lambda处理函数:从S3获取图片,压缩后上传至目标桶 * @param {Object} event - Lambda触发事件(示例:包含源S3桶、文件名等参数) */ exports.handler = async (event) => { try { // 从S3获取原始图片 const getParams = { Bucket: event.sourceBucket, Key: event.sourceKey }; const { Body: rawImage } = await s3.send(new GetObjectCommand(getParams)); // 使用sharp压缩图片(示例:调整尺寸并转换为WebP格式) const processedImage = await sharp(rawImage) .resize(1200, 800, { fit: 'inside', withoutEnlargement: true }) // 限制最大尺寸,不放大图片 .webp({ quality: 80 }) // 转换为WebP格式,质量80% .toBuffer(); // 上传处理后的图片到目标S3桶 const putParams = { Bucket: event.targetBucket, Key: `processed/${event.sourceKey.replace(/\.\w+$/, '.webp')}`, // 重命名为WebP格式 Body: processedImage, ContentType: 'image/webp' }; await s3.send(new PutObjectCommand(putParams)); return { status: 'success', processedKey: putParams.Key, size: processedImage.length }; } catch (error) { console.error('Image processing failed:', error); throw error; } };
2. 创建Dockerfile
通过Dockerfile构建包含函数代码的Lambda镜像:
dockerfile# 基于本镜像作为基础镜像 FROM [镜像仓库地址]/aws-lambda-nodejs-sharp:latest # 将Lambda函数代码复制到Lambda任务根目录 COPY index.js ${LAMBDA_TASK_ROOT}/ # 安装额外依赖(如AWS SDK for S3) RUN npm install @aws-sdk/client-s3 # 设置Lambda入口处理程序(格式:[文件名].[函数名]) CMD ["index.handler"]
3. 构建并推送镜像
bash# 构建镜像(替换镜像名称和标签) docker build -t my-lambda-image:v1 . # 标记镜像为ECR仓库格式(需先创建ECR仓库) docker tag my-lambda-image:v1 [AWS_ACCOUNT_ID].dkr.ecr.[REGION].amazonaws.com/my-lambda-image:v1 # 推送镜像到ECR docker push [AWS_ACCOUNT_ID].dkr.ecr.[REGION].amazonaws.com/my-lambda-image:v1
| 参数名 | 描述 | 默认值 |
|---|---|---|
| NODE_ENV | Node.js运行环境标识 | production |
| SHARP_VERSION | 预装sharp库版本 | 取决于镜像发布版本 |
| NODE_VERSION | 基础Node.js版本 | 取决于镜像发布版本 |
| LAMBDA_TASK_ROOT | Lambda函数代码根目录 | /var/task |
npm install添加,并确保依赖与Node.js版本兼容。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务