Amazon Web Services ブログ
AWS CLI v2 が一般利用可能となりました
AWS CLI バージョン 2 (v2) の v2.0.0 GA リリースを発表できることを嬉しく思います。
AWS CLI v2 は AWS CLI v1 をベースに構築され、コミュニティのフィードバックに基づいた多くの機能と拡張機能が含まれています。
新機能
AWS CLI v2 には、改良されたインストーラ、AWS シングルサインオン(SSO)などの新しい設定オプション、さまざまなインタラクティブ機能など、いくつかの新機能があります。
新しいインストールメカニズム
AWS CLI v2 には、Windows、Linux、および macOS 用のビルド済みのバイナリが用意されています。 AWS CLI を使用するために Python をインストールする必要はありません。 互換性のあるPythonバージョン、仮想環境、または競合するPythonパッケージについて心配する必要はありません。 WindowsではMSIインストーラを提供し、macOSでは.pkgインストーラを提供します。 AWS CLI v2 のインストールの詳細については、インストール手順を参照してください。
AWS CLIの設定メカニズム
AWS CLI v2 では、認証情報を設定するためのいくつかの新しいメカニズムが導入されています。 AWS コンソールで生成された .csv ファイルから認証情報をインポートする新しい aws configure import
コマンドが追加されました。
$ aws configure import --csv file://path/to/creds.csv
また、AWS 認証情報の設定に関するガイド付き手順を提供する新しい aws configure wizard
コマンドのサポートも追加されました。 これらのコマンドに加えて、AWS CLI v2 では、新しい aws configure sso
コマンドを使用した AWS SSO による認証情報の設定と使用がサポートされています。 AWS CLI の設定に役立つ一連の質問が行われます。
$ aws configure sso
SSO start URL [None]: https://d-0123456790.awsapps.com/start
SSO Region [None]: us-west-2
Attempting to automatically open the SSO authorization page in your default
browser. If the browser does not open or you wish to use a different device to
authorize this request, open the following URL:
https://device.sso.us-west-2.amazonaws.com/
Then enter the code:
ABCD-EFGH
Successully logged into Start URL: https://d-1234567890.awsapps.com/start
There are 2 AWS accounts available to you.
Using the account ID 123456789012
There are 2 roles available to you.
Using the role name "readOnly"
CLI default client Region [None]: us-west-2
CLI default output format [None]: json
CLI profile name [readOnly-123456789012]: my-sso-profile
To use this profile, specify the profile name using --profile, as shown:
aws s3 ls --profile my-sso-profile
AWS CLI v2 で AWS SSO を使用する方法をステップバイステップでお伝えするブログ記事を書きました。 re: Invent 2019 の「Introduction to the AWS CLI v2」セッションには、AWS CLI v2 および AWS SSO を使用したデモも含まれています。
対話型機能
AWS CLI v2 の主なテーマの 1 つに、お客様を支援するよりインタラクティブな機能が含まれていました。 AWS CLI は、自動化スクリプトや対話的な操作のために使用されており、私たちはターミナルで CLI コマンドをインタラクティブに実行するのを楽にする機能を追加したいと考えていました。 新しい対話型機能には、サーバー側の自動補完、--cli-auto-prompt
コマンド、ウィザードなどがあります。
サーバー側の自動補完
AWS CLI v1 では、aws_completer
コマンドを使用して、コマンド名とパラメータ名をタブ補完できます。 たとえば、自動補完を使用するように aws
コマンドを設定した後、次のように自動補完できます。
$ complete -C aws_completer aws
$ aws cloud<TAB>
cloud9 cloudformation cloudhsm cloudsearch cloudtrail
clouddirectory cloudfront cloudhsmv2 cloudsearchdomain cloudwatch
AWS CLI v2 では、自動補完がアップデートされ、サービス側のリソース名を補完できます。 たとえば、次のコマンドのようにAmazon DynamoDB テーブル名を自動補完できるようになりました。
$ aws dynamodb update-table --table-name MyTable<TAB>
MyTable1 MyTable2
Auto-prompt
自動補完により、CLI パラメータをより効率的に入力できますが、どのパラメータを指定するかわからない場合があります。 そういった場合に、新しい --cli-auto-prompt
機能が役に立つでしょう。 このパラメータは、組み込みの CLI コマンドに追加できます。CLI の指示に従って、パラメータ値を入力します。
まず、必要なすべてのパラメータを入力するよう求められます。
必要なすべてのパラメータを入力すると、オプションパラメータのリストが表示されます。各パラメータには、マニュアルドキュメントの最初の部分も記載されています。
必要なすべてのパラメータを入力してParameter input finished
を選択すると、AWS CLI でコマンドを実行するか、コマンドを標準出力するかを選択できます。
ウィザード
AWS CLI v2 の新しいウィザード機能を使用すると、さまざまな AWS リソースを管理できます。 このウィザードは --cli-auto-prompt
よりも高いレベルの抽象化であり、通常、複数の AWS API 呼び出しを組み合わせて AWS リソースを作成、更新、または削除します。 AWS CLIのウィザードは、AWS コンソールではじめに行うワークフローに似ています。今回のアップデートで、私たちは一部のAWSサービスの初期セットアップ用ウィザードを追加しました。このウィザードにアクセスするには、aws <service-name> wizard <wizard-name>
を実行してください。
新しい DynamoDB テーブルを作成する例を見ていきます。 まず、aws dynamodb wizard new-table
コマンドを実行すると、一連の質問をされます。 以下のスクリーンショットでは、テーブルの主キーの型を選択するように求められます。
ウィザードでは、データの入力を求めるプロンプトが表示されたときに、既存のリソースを探すクエリもサポートされています。 次のスクリーンショットでは、サーバー側の暗号化設定を尋ねられているもので、「KMS – Customer managed CMK」を選択している画面です。
このオプションを選択すると、ウィザードによってクエリが発行され、利用できる既存の KMS キーが表示されてその中から選択が求められます。 この例では、1 つの KMS キーしか使用できません。
すべての質問に回答すると、ウィザードによって DynamoDB テーブルが作成されます。
configure
、dynamodb
、iam
、および lambda
コマンド用のウィザードが追加されています。
次のステップ
機能、拡張、バグ修正の全ての一覧については、AWS CLI v2 の変更履歴を参照してください。 AWS CLI v2 は AWS CLI v1 とほぼ下位互換性がありますが、AWS CLI v2 移行ガイドに記載されている下位互換性のない変更があります。 AWS CLI の使用方法の詳細については、ユーザーガイドを参照してください。
また、GitHubのリポジトリで機能をリクエストしたり、Issueを送ることもできます。 AWS CLI v2 に関するご意見をお待ちしております。
翻訳: ソリューションアーキテクト 内田 大樹 @nikuyoshi