You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用AWS CLI执行create-secret命令创建Secrets Manager时出现错误,请求协助排查问题

AWS Secrets Manager 创建命令报错的原因与修正方案

看起来你在创建Secrets Manager密钥时踩了几个常见的CLI语法坑,我帮你拆解下问题和修复方法:

错误点分析

  1. --tags参数的格式错误

    • 你把参数名写成了-- tags(中间多了空格),AWS CLI会把tags当成一个未知的独立选项,这是触发错误的直接原因之一。
    • 就算去掉空格,你用JSON格式传标签的方式也不对。AWS CLI的--tags参数要求用Key=键名,Value=键值的格式,多个标签之间用空格分隔,而不是直接传入JSON对象。另外你写的"sample=test"本身也是无效的JSON键值对,正确的应该是"sample":"test"
  2. Shell环境下的引号转义问题

    • 你用双引号包裹--secret-string的JSON时,虽然做了转义,但在某些shell环境下可能还是会有解析问题,改用单引号包裹整个JSON字符串会更稳妥,避免繁琐的转义操作。

修正后的命令

方案1:使用标准的--tags格式

aws secretsmanager create-secret \
 --name sample_auth_aws_secret1 \
 --description "My test secret created with the CLI." \
 --tags Key=env,Value=dev Key=sample,Value=test \
 --secret-string '{"clientId":"sample123","secret":"wjwjwjwjwjwjwjsjsjsj"}'

方案2:用JSON格式传入完整请求(适合复杂配置)

如果你更习惯用JSON来定义所有参数,可以用--cli-input-json参数,这样标签格式也符合你最初的写法:

aws secretsmanager create-secret --cli-input-json '{
  "Name": "sample_auth_aws_secret1",
  "Description": "My test secret created with the CLI.",
  "Tags": [
    {"Key": "env", "Value": "dev"},
    {"Key": "sample", "Value": "test"}
  ],
  "SecretString": "{\"clientId\":\"sample123\",\"secret\":\"wjwjwjwjwjwjwjsjsjsj\"}"
}'

为什么之前的命令报错?

因为-- tags的空格导致AWS CLI无法识别tags这个合法参数,进而把后面的env:devsample=test等内容都当成了未知的命令选项,同时--secret-string的解析也因为前面的错误受到影响,所以才会抛出那些"Unknown options"的提示。

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

火山引擎 最新活动