AWS CLIをインストール

めっちゃ簡単である。

yum -y update
easy_install pip
pip install awscli

aws helpで現状扱えるサービスを確認。

    Available services:
      * iam
      * ses
      * rds
      * elb
      * autoscaling
      * cloudwatch
      * sqs
      * cloudformation
      * elasticbeanstalk
      * sns
      * sts
      * directconnect
      * emr
      * ec2


コードはここにあーる。ぶっちゃけboto-coreに投げてるだけにみえるw

git clone https://github.com/aws/aws-cli.git


当然、補完を効かせたいので、下記を実行ー

complete -C aws_completer aws

うは、すげー便利。でもJSONまんまで返ってくるので、ちょい読みにくい。最初は少し驚くかもだけど、ちゃんとテキストでも出せるので心配いらない。

[ec2-user@xxx ~]$ aws ec2 describe-availability-zones
{
    "requestId": "79c8df0c-a46c-4319-90c8-3ed44c5d4978",
    "availabilityZoneInfo": [
        {
            "zoneState": "available",
            "regionName": "ap-northeast-1",
            "messageSet": ,
            "zoneName": "ap-northeast-1a"
        },
        {
            "zoneState": "available",
            "regionName": "ap-northeast-1",
            "messageSet": ,
            "zoneName": "ap-northeast-1b"
        },
        {
            "zoneState": "available",
            "regionName": "ap-northeast-1",
            "messageSet": [],
            "zoneName": "ap-northeast-1c"
        }
    ]
}


プログラマブルには渡しやすくなったな。

テキストでやりたいときは--output textだそうで。でふぉが何故かJSONだ。

あと、--profileでプロファイルを切り替えれるのもナイス。

aws ec2 describe-instances --profile hoge

というわけで本年もよろしくお願いします。

AWS CLI補足


どうも出力情報のところが解せないので、調べてみたところ、CLIコードのREADMEにJSON使う場合には、jqなど使うといいよと書いてある。


JQ、http://stedolan.github.com/jq/ のことらしい。

jq is a lightweight and flexible command-line JSON processor.


というわけで、使ってみた。

cd /usr/bin/
wget http://stedolan.github.com/jq/download/linux64/jq
chmod +x jq

こんな感じ。

aws ec2 describe-availability-zones |jq '.availabilityZoneInfo[0]'

カラーもついて部分を取り出せるので、大変便利。しかも早くて良い感じ。

{
  "zoneName": "ap-northeast-1a",
  "messageSet": [],
  "regionName": "ap-northeast-1",
  "zoneState": "available"
}