概要
DOP343-ROFA - Introduction to the AWS CLI v2 セッションを受講しました
現状は評価バージョンですが、v1に比べパワーアップしている箇所が多く、正式版がリリースされたら早く本番環境にも投入したい!と感じました。
インストール方法等は公式ドキュメントを参照として、v2ならではの部分を取り上げています。
参考リンク
- AWS CLI バージョン 2 のインストール
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html - AWS シングルサインオン を使用するための AWS CLI の設定 (AWS SSO)
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-sso.html - Github
https://github.com/aws/aws-cli/labels/v2/ - AWS CLI v2 blog posts
https://aws.amazon.com/jp/blogs/developer/category/programing-language/aws-cli/
セッションについて
v2ハイライト箇所について

- インストール&設定
- ExecutableInstaller (v2のみ)
- Developer Previewのため実行コマンド名は aws2
- 既存Pythonの影響を受けずにインストール出来るため v1との共存が可能
- AWS SSOに対応 (後述)
- CommandI/O (後述)
- インタラクティブ機能 (後述)
AWS SSOに対応 (v2のみ)

デモ中ではSSOにて設定したRoleをインタラクティブに(コマンドプロンプト上でリストが表示され選択する形)切り替えて
選択したRoleにより aws2 s3 ls
を実行し表示されるS3バケットが異なる事を確認していました。
SSO設定について
デモ中では下記を実施していました
- aws2 configure sso にて start url等を設定
- ブラウザが開くためそちらでID/PWを入力
※内部でTokenを取得しそちらを利用し一定時間Loginオペレーションが不要となる
CommandI/O

リソース名の自動補完
CLI v1からの機能ですが v2の場合は下記のように設定
$ complete -C aws2_completer aws2


v2でのUpdateは実際に存在するリソース名の補完まで進めてくれるようになった
yaml対応
v1では JSON(パラメータはjson), text, tableのみ
$ aws2 ec2 describe-instances --output yaml
※Outputパラメータでv1で指定出来た値も指定可能
yamlを標準にする場合下記を実行しておくと便利
$ aws2 configure set output yaml
Paging機能拡張
Paging機能で次ページを要求すると結果が読み込まれるようになった (output型式に yaml-stream を指定)
特に多数のAPIが裏で呼ばれる様なコマンドの場合ロード時間が大きく異る。

$ aws2 ec2 describe-snapshots 1分程してから全結果が帰ってくる $ aws2 ec2 describe-snapshots --output yaml-stream - NextToken: eyJ2IjoiMiIsImMi.... Snapshots: - Description: ... 数秒で最初のページの結果が帰ってくる ページを進めると引き続き読み込まれた結果が表示される
インタラクティブ機能
Configの時点でも wizard というキーワードで下記のようにインタラクティブな機能を利用する事が出来ます。

DynamoDBに新しいテーブルを作成する場合
下記のような形でパラメータに指定可能な値を選択しながら作成する事が出来ます。
$ aws2 dynamodb wizard new-table


まだこれから対応が増えるそうなので、正式版の発表がとても楽しみです!