AWS
aws-cli

AWS CLIコマンドの実行オプション

More than 3 years have passed since last update.

AWS CLIでは、実行時のオプションで取得する情報を選択したり、フォーマットを変更したりできます。
うまく使いこなせれば、必要な情報だけを取得して確認できるし、スクリプトでちょっとした処理を実行するのも簡単にできるはず。

よく使う実行オプション

--output {json|text|table}
--region {<region>}
--filter
--query
--profile   別プロファイルでの実行(ユーザー、表示形式、region等のセット)

--region {<region>}

コマンド実行の対象となるRegionを指定。
指定しない場合はデフォルトのRegion($HOME/.aws/configで指定)が使われる。
以下のRegionが指定できる。

$ aws ec2 describe-regions --output table
----------------------------------------------------------
|                     DescribeRegions                    |
+--------------------------------------------------------+
||                        Regions                       ||
|+-----------------------------------+------------------+|
||             Endpoint              |   RegionName     ||
|+-----------------------------------+------------------+|
||  ec2.eu-central-1.amazonaws.com   |  eu-central-1    ||
||  ec2.sa-east-1.amazonaws.com      |  sa-east-1       ||
||  ec2.ap-northeast-1.amazonaws.com |  ap-northeast-1  ||
||  ec2.eu-west-1.amazonaws.com      |  eu-west-1       ||
||  ec2.us-east-1.amazonaws.com      |  us-east-1       ||
||  ec2.us-west-1.amazonaws.com      |  us-west-1       ||
||  ec2.us-west-2.amazonaws.com      |  us-west-2       ||
||  ec2.ap-southeast-2.amazonaws.com |  ap-southeast-2  ||
||  ec2.ap-southeast-1.amazonaws.com |  ap-southeast-1  ||
|+-----------------------------------+------------------+|

--output {json|text|table}

コマンド実行結果の出力形式を指定。
指定しない場合は、$HOME/.aws/configに定義されたフォーマットで出力される。

JSON、TEXT、Table形式で出力できるが、個人的にはJSON形式が一番見やすいし、jqコマンドと組み合わせれば必要な情報だけに絞って取得するのも簡単なのでおすすめ。

Text形式

$ aws ec2 describe-vpcs --output text
VPCS    172.31.0.0/16   dopt-c5a7bca7   default True    available   vpc-9f1fc8fa
VPCS    10.0.0.0/16     dopt-c5a7bca7   default False   available   vpc-2ce93449
TAGS    Name    aws_book_vpc

Table形式

$ aws ec2 describe-vpcs --output table
---------------------------------------------------------------------------------------------------
|                                          DescribeVpcs                                           |
+-------------------------------------------------------------------------------------------------+
||                                             Vpcs                                              ||
|+---------------+----------------+------------------+------------+-------------+----------------+|
||   CidrBlock   | DhcpOptionsId  | InstanceTenancy  | IsDefault  |    State    |     VpcId      ||
|+---------------+----------------+------------------+------------+-------------+----------------+|
||  172.31.0.0/16|  dopt-c5a7bca7 |  default         |  True      |  available  |  vpc-9f1fc8fa  ||
|+---------------+----------------+------------------+------------+-------------+----------------+|
||                                             Vpcs                                              ||
|+-------------+----------------+-------------------+-------------+-------------+----------------+|
||  CidrBlock  | DhcpOptionsId  |  InstanceTenancy  |  IsDefault  |    State    |     VpcId      ||
|+-------------+----------------+-------------------+-------------+-------------+----------------+|
||  10.0.0.0/16|  dopt-c5a7bca7 |  default          |  False      |  available  |  vpc-2ce93449  ||
|+-------------+----------------+-------------------+-------------+-------------+----------------+|
|||                                            Tags                                             |||
||+------------------------------+--------------------------------------------------------------+||
|||              Key             |                            Value                             |||
||+------------------------------+--------------------------------------------------------------+||
|||  Name                        |  aws_book_vpc                                                |||
||+------------------------------+--------------------------------------------------------------+||

JSON形式

$ aws ec2 describe-vpcs --output json
{
    "Vpcs": [
        {
            "VpcId": "vpc-9f1fc8fa",
            "InstanceTenancy": "default",
            "State": "available",
            "DhcpOptionsId": "dopt-c5a7bca7",
            "CidrBlock": "172.31.0.0/16",
            "IsDefault": true
        },
        {
            "VpcId": "vpc-2ce93449",
            "InstanceTenancy": "default",
            "Tags": [
                {
                    "Value": "aws_book_vpc",
                    "Key": "Name"
                }
            ],
            "State": "available",
            "DhcpOptionsId": "dopt-c5a7bca7",
            "CidrBlock": "10.0.0.0/16",
            "IsDefault": false
        }
    ]
}

jqコマンドにパイプして使うと便利。jqを使うと、

  • colarcodedされる

スクリーンショット 2015-04-27 午後2.57.32.png

  • 値の検索が簡単
$ aws ec2 describe-vpcs --output json | jq '.Vpcs[].VpcId'
"vpc-9f1fc8fa"
"vpc-2ce93449"

--filters

検索条件を指定して検索。
ある項目が特定の値であるという条件に合致する、サービスやリソースの情報を取得することができる。

定義できるFilterの条件は、Referenceの--filtersの項を参照。
例えば aws ec2 describe-vpcs で指定できるFilterは、以下に記載されている。
describe-vpcs — AWS CLI 1.7.24 documentation

実行例

$ aws ec2 describe-vpcs --filters "Name=cidr,Values=10.0.0.0/16"
{
    "Vpcs": [
        {
            "VpcId": "vpc-2ce93449",
            "InstanceTenancy": "default",
            "Tags": [
                {
                    "Value": "vpc-awsbook",
                    "Key": "Name"
                }
            ],
            "State": "available",
            "DhcpOptionsId": "dopt-c5a7bca7",
            "CidrBlock": "10.0.0.0/16",
            "IsDefault": false
        }
    ]
}

--query

出力結果のに含める項目の絞り込み。
サービスやリソースの、特定の項目の情報だけ取得することができる。

定義できるQueryの条件は、ReferenceのOutputの項を参照。
例えば aws ec2 describe-vpcs で指定できるQueryは、以下に記載されている。
describe-vpcs — AWS CLI 1.7.24 documentation

実行例

$ aws ec2 describe-vpcs --query 'Vpcs[].VpcId[]'
[
    "vpc-6d11cc08",
    "vpc-9f1fc8fa",
    "vpc-2ce93449"
]

--filters--queryは組み合わせて使うと便利。

$ aws ec2 describe-vpcs --filters "Name=cidr,Values=10.0.0.0/16" --query 'Vpcs[].VpcId[]'
[
    "vpc-2ce93449"
]

リンク