json - 从 Linux 命令中的 json 样式输出中提取变量
问题描述
我尝试在 linux 系统中使用 AWS Secrets Manager。我可以使用 aws cli 命令
aws secretsmanager get-secret-value --secret-id abc_account --version-stage AWSCURRENT
获得以下输出
{
"ARN": "arn:aws:secretsmanager:us-east-1:123456789:secret:abc_account-XhteiW",
"Name": "abc_account",
"VersionId": "89637ef4-4594-4c63-9887-3f7d2c7ccc6f",
"SecretString": "{\"username\":\"abc_account\",\"password\":\"PASSWORD111\"}",
"VersionStages": [
"AWSCURRENT"
],
"CreatedDate": "2021-02-08T23:57:58.325000-05:00"
}
我需要将密码 PASSWORD111 保存到 linux 中的变量 var1 中。就像是
var1=$(aws secretsmanager get-secret-value --secret-id svc_vma_insights_data_platform --version-stage AWSCURRENT | awk XXXXXX )
or
var1=$(aws secretsmanager get-secret-value --secret-id svc_vma_insights_data_platform --version-stage AWSCURRENT | grep XXXXXX )
解决方案
这是从 JSON 输出中提取秘密字符串,然后从该JSON 中提取密码:
passwd=$(aws ... | jq -r '.SecretString' | jq -r '.password')
推荐阅读
- visual-studio-code - Visual Studio Code 和 pylint 未发现模块问题
- javascript - 等待事件未触发
- intel - 带有 Z80 处理器的任何东西都可以运行 Gameboy 游戏吗?
- vba - 不断收到运行时错误“13”:类型不匹配
- c# - 更改类库中的用户设置
- node.js - Nodejs - Apache Cassandra(使用 Datastax 驱动程序)
- sql - 返回 Netezza SQL 中每个组的最大值日期
- ios - Swift4.2:为什么 func gameDidEnd(_:) 不需要使用游戏参数但仍然在函数中声明?
- amazon-web-services - 如何找出 AMI 的 S3 链接
- c - 在数组中搜索特定字符