You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECS任务定义中AWS Secrets Manager密钥无法正确填充环境变量

解决ECS环境变量从Secrets Manager获取JSON而非具体值的问题

问题原因

你的Secrets Manager中存储的是JSON结构化密钥(例如{"key-of-secret":"value-of-secret"}),ECS默认会将整个Secret的原始内容作为环境变量值返回,不会自动解析JSON提取单个字段。

解决方案

有两种方式可以解决这个问题:

方式1:将Secret改为纯文本存储

如果该密钥只需要单个值,直接修改Secrets Manager中的Secret内容,把JSON结构替换成纯文本value-of-secret。更新后重新部署ECS任务,环境变量test_secret就会直接获取到该纯文本值。

方式2:通过ARN指定JSON字段提取

如果需要保留JSON结构的Secret,可在任务定义的valueFrom中通过ARN后缀指定要提取的JSON字段:

  • ARN格式:arn:aws:secretsmanager:<region>:<acc-id>:secret:<some-secret-id>:<json-key>::
  • 修改后的任务定义配置:
    "secrets": [
        {
            "name": "test_secret",
            "valueFrom": "arn:aws:secretsmanager:<region>:<acc-id>:secret:<some-secret-id>:key-of-secret::"
        }
    ]
    
    其中key-of-secret替换为你JSON中的实际键名,末尾的两个冒号是必填格式,不能省略。

验证步骤

更新任务定义后重新部署ECS任务,通过SSM进入容器执行:

echo $test_secret

此时应该会输出预期的value-of-secret。

内容的提问来源于stack exchange,提问作者dingo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:45:58