
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
dynamodbdump是一款轻量级工具,用于执行DynamoDB表的备份与恢复操作。它能将表数据备份到S3指定路径,格式兼容AWS DataPipeline功能;同时支持从S3备份文件(无论是该工具生成还是DataPipeline生成)恢复数据到DynamoDB表。相比AWS DataPipeline依赖EMR集群的方案,该工具更高效、成本更低,适合集成到现有IT架构中。
构建工具
通过make build命令构建,或手动获取依赖后使用go build:
bash# 使用make构建 make build # 或手动构建 go get github.com/VEVO/dynamodbdump go build -o dynamodbdump
示例命令
bash# 备份示例 ./dynamodbdump -action backup -dynamo-table my-table -wait-ms 2000 -batch-size 1000 \ -s3-bucket my-dynamo-backup-bucket -s3-folder "backups/my-table" -s3-date-folder
参数说明
所有参数可通过-h查看,支持命令行参数或环境变量配置:
| 参数名 | 描述 | 默认值 | 环境变量 |
|---|---|---|---|
-action | 操作类型,支持backup(备份)或restore(恢复) | backup | ACTION |
-batch-size | 单次读取/写入的最大记录数 | 1000 | BATCH_SIZE |
-dynamo-table | 目标DynamoDB表名 | - | DYNAMO_TABLE |
-restore-append | 恢复时是否追加到非空表(默认非空表会终止操作) | false | RESTORE_APPEND |
-s3-bucket | S3存储桶名称 | - | S3_BUCKET |
-s3-date-folder | 是否在S3路径后添加UTC时间后缀(格式:YYYY-mm-dd-HH24-MI-SS) | false | S3_DATE_FOLDER |
-s3-folder | S3存储桶内的路径 | - | S3_FOLDER |
-wait-ms | 批处理间隔时间(毫秒);遇吞吐量超限时,重试等待时间翻倍 | 100 | WAIT_MS |
拉取镜像
bashdocker pull vevo/dynamodbdump:latest
运行示例
需配置AWS凭证(本地环境可挂载.aws目录或设置AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY;AWS环境可通过IAM角色自动获取):
bashdocker run -e ACTION=backup \ -e AWS_REGION=us-east-1 \ -e BATCH_SIZE=100 \ -e DYNAMO_TABLE='mytable' \ -e S3_BUCKET='bucket-for-data-dumps' \ -e S3_DATE_FOLDER=1 \ -e S3_FOLDER='dynamodb/mytable' \ -e WAIT_MS=500 \ -e AWS_PROFILE=dev \ -v $HOME/.aws:/root/.aws \ -t vevo/dynamodbdump:latest
推荐通过Kubernetes CronJob实现定时备份,利用IAM角色授权访问DynamoDB和S3。示例配置可参考https://github.com/VEVO/dynamodbdump/blob/master/resources/kubernetes-cronjob.yaml%E3%80%82
配置说明
s3://bucket-for-data-dumps/dynamodb/mytable/${TIMESTAMP}(${TIMESTAMP}为UTC时间,格式:YYYY-mm-dd-HH24-MI-SS)欢迎通过PR贡献代码,提交前请确保包含基本测试和问题说明。项目维护的待开发功能列表可参考https://github.com/VEVO/dynamodbdump/blob/master/TODO.md%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务