
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
ecs-config-retriever是一个初始化应用,用于从AWS SSM参数存储或Hashi Vault检索配置信息并写入磁盘,供ECS任务中的长期运行容器使用。它解决了ECS无法像Kubernetes那样直接将秘密/配置挂载为文件的问题,通过将配置写入共享卷,实现多容器间的配置共享。
| 标志 | 描述 | 默认值 |
|---|---|---|
-parameter | SSM参数存储中的参数名称 | - |
-encoded | 参数是否经过base64编码 | false |
-encrypted | 参数是否加密 | false |
-path | 保存参数的文件路径 | - |
-from-env | 从环境变量获取参数信息 | false(与-from-json冲突) |
-from-json | 从JSON字符串获取参数信息 | false(与-from-env冲突) |
-json | 指定多参数检索的JSON字符串 | - |
-from-vault | 从Hashi Vault检索秘密 | - |
-vault-path | Vault秘密的路径(注意K/V v2的路径格式) | - |
-vault-use-sts | 使用IAM角色认证Vault | - |
| 环境变量 | 描述 | 必要性 |
|---|---|---|
AWS_REGION | AWS区域,用于创建AWS会话 | 必须 |
RETRIEVER_PARAMETER | 对应-parameter标志 | 当使用-from-env时必须 |
RETRIEVER_PATH | 对应-path标志 | 当使用-from-env时必须 |
RETRIEVER_ENCODED | 对应-encoded标志 | 可选 |
RETRIEVER_ENCRYPTED | 对应-encrypted标志 | 可选 |
VAULT_ADDR | Vault服务地址 | 使用-from-vault时必须 |
VAULT_TOKEN | Vault访问令牌 | 使用-from-vault时必须(除非使用AWS IAM认证) |
通过-json标志可指定多参数检索,JSON结构如下:
json{ "parameters": [ { "name": "参数名称", "encoded": 是否base64编码(true/false), "encrypted": 是否加密(true/false), "path": 保存路径 }, { "name": "另一个参数名称", "encoded": true, "encrypted": false, "path": "/init-out/app/config.json" } ] }
retriever需要最小化的IAM权限,以下是示例策略:
json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:GetParameter", "Resource": "arn:aws:ssm:*:ACCOUNT_ID:parameter/retriever*" } ] }
以下是包含retriever初始化容器的ECS任务定义 JSON:
json[ { "command": ["cat", "/my-container/config/config.conf"], "cpu": 100, "essential": true, "environment": [ { "name": "FOO", "value": "BAR" } ], "mountPoints": [ { "sourceVolume": "my-container-config", "containerPath": "/my-container/config" } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "my-container", "awslogs-region": "us-east-2", "awslogs-stream-prefix": "my-container" } }, "volumesFrom": [], "image": "someimage:1.1.1", "memory": 100, "memoryReservation": 100, "name": "my-container", "dependsOn": [ { "condition": "SUCCESS", "containerName": "my-container-init" } ], "privileged": false, "startTimeout": 60, "stopTimeout": 30 }, { "command": ["/retriever", "-parameter=retriever-test", "-path=/init-out/config.conf", "-encoded"], "cpu": 100, "essential": false, "environment": [ { "name": "AWS_REGION", "value": "us-east-2" } ], "mountPoints": [ { "sourceVolume": "my-container-config", "containerPath": "/init-out" } ], "portMappings": [], "volumesFrom": [], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "my-container", "awslogs-region": "us-east-2", "awslogs-stream-prefix": "init" } }, "image": "mitchya1/ecs-config-retriever:v0.5.0", "memory": 100, "memoryReservation": 50, "name": "my-container-init", "privileged": false, "startTimeout": 30, "stopTimeout": 60 } ]
注意:不要更改retriever容器的
containerPath,否则会导致文件写入权限错误。
/init-out目录进行权限设置retriever运行,确保安全性VAULT_TOKEN您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务