我是 AWS 世界的新手。我想从 aws cli 更新秘密凭证。 下面的命令非常适合我:
aws secretsmanager update-secret --secret-id mysecret --region us-east-1 --secret-string '{"username":"anika","password":"mypwd"}'
但是如果我传递一个变量 $serverPwd 它不会替换变量 $serverPwd=mypwd
aws secretsmanager update-secret --secret-id mysecret --region us-east-1 --secret-string '{"username":"anika","password":"$serverPwd"}
任何想法如何传递变量?
答案 0 :(得分:0)
AWS CLI 命令支持使用 --cli-input-json 和 --cli-input-yaml 参数接受来自文件的所有参数输入的能力。如下:
生成 JSON 格式的模板
aws secretsmanager update-secret --generate-cli-skeleton input > secretsmanage.json
编辑 secretsmanage.json 并为您需要的参数提供值并删除您不需要的参数。
使用 --cli-input-json 参数运行 aws secretsmanager update-secret,如下所示:
aws secretsmanager update-secret --cli-input-json file://secretsmanage.json
答案 1 :(得分:0)
问题不在于 aws-cli,而在于解析变量的方式。试试这个:
aws secretsmanager update-secret --secret-id mysecret --region us-east-1 --secret-string '{"username":"anika","password":"'"$serverPwd"'"}'
这将允许变量正确扩展。