【问题标题】:How to expand variable in aws-cli --query parameter如何在 aws-cli --query 参数中扩展变量
【发布时间】:2020-10-29 11:46:59
【问题描述】:

我正在尝试编写一个非常简单的脚本,并且对 aws cli 相当陌生。使用我的脚本,我正在输出所有允许所有开放 IP (0.0.0.0/0) 的安全组 ID,并且我正在使用

aws ec2 describe-security-groups --filters Name=ip-permission.cidr,Values='0.0.0.0/0' --region "$region" --query 'SecurityGroups[*].{Name:GroupName,vpc:VpcId,sg:GroupId,Region:"$region"}' --output table. 

region 是在脚本的前面部分定义的,因为我要遍历所有区域。

但是,当显示表格时,区域列显示None。如何仅使用 aws ec2 describe-security-groups 过滤器包含该区域,使其不输出无?

【问题讨论】:

  • region 不是结果中对象键的一部分。为什么要添加它?

标签: bash amazon-web-services aws-cli aws-security-group


【解决方案1】:

命令输出中不存在region,因此无法查找值region

describe-security-groups-output

所以另一种选择是扩展$region variable 的值,然后使用转义序列将该值打印为静态值。

Region:\``echo $region`\`

你可以使用

export region=us-east-1 && aws ec2 describe-security-groups --region=$region --filters Name=ip-permission.cidr,Values='0.0.0.0/0' --query "SecurityGroups[*].{Name:GroupName,vpc:VpcId,sg:GroupId,Region:\``echo $region`\` }" --output table

样本输出

---------------------------------------------------------------------------------------
|                               DescribeSecurityGroups                                |
+-------------------------------+------------+------------------------+---------------+
|             Name              |  Region    |          sg            |      vpc      |
+-------------------------------+------------+------------------------+---------------+
|  launch-wizard-17             |  us-west-2 |  sg-12345  |  vpc-12345 |

AWS-cli 查看区域,因此您可以一次获取所有区域,从所有区域中获取 security group 使用下面的脚本。

#!/bin/bash

for region in $(aws ec2 describe-regions --query "Regions[].RegionName" --output text); do 
    echo "SG for region ${region}"
    aws ec2 describe-security-groups --region=$  --filters Name=ip-permission.cidr,Values='0.0.0.0/0' --query "SecurityGroups[*].{Name:GroupName,vpc:VpcId,sg:GroupId,Region:\``echo $region`\` }" --output table
done

aws-cli-cheatsheet

【讨论】:

  • 这正是我需要的,非常感谢!!!!!!
猜你喜欢
  • 2020-11-14
  • 1970-01-01
  • 2012-10-16
  • 2016-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多