翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CLI バージョン 2 の新機能と変更点
このトピックでは、 AWS CLI バージョン 1 と AWS CLI バージョン 2 の動作に関する新機能と変更について説明します。これらの変更では、バージョン 1 と同じ動作をバージョン 2 で実行するために、スクリプトまたはコマンドを更新する必要がある場合があります。
AWS CLI バージョン 2 の新機能
AWS CLI バージョン 2 は の最新バージョン AWS CLI であり、すべての最新機能をサポートしています。 バージョン 2 で導入された一部の機能は、バージョン 1 との下位互換性がないため、これらの機能にアクセスするには、アップグレードする必要があります。主な機能は以下のとおりです。
- Python インタプリタは不要です
-
AWS CLI バージョン 2 では、Python を別途インストールする必要はありません。組み込みバージョンが含まれています。
- ウィザード
-
AWS CLI ウィザードはバージョン 2 で使用できます。ウィザードの指示に従って、特定のコマンドを作成できます。
- IAM Identity Center 認証
-
組織が AWS IAM Identity Center (IAM Identity Center) を使用している場合、ユーザーは Active Directory、組み込みの IAM Identity Center ディレクトリ、または IAM Identity Center に接続された別の IdP にサインインできます。次に、 AWS CLI コマンドの実行を許可する (IAM) AWS Identity and Access Management ロールにマッピングされます。
- 自動プロンプト
-
有効にすると、 AWS CLI バージョン 2 では、コマンドの実行時に
aws
コマンド、パラメータ、リソースの入力を求めるプロンプトが表示されます。 - の公式 Amazon ECR Public または Docker イメージの実行 AWS CLI
-
の公式 Docker イメージ AWS CLI は、 AWS 直接サポートおよび維持する分離、移植性、セキュリティを提供します。これにより、自分でインストールを管理することなく、コンテナベースの環境で AWS CLI バージョン 2 を使用できます。
- クライアント側のページャー
-
AWS CLI バージョン 2 では、出力にクライアント側のポケットベルプログラムを使用できます。デフォルトでは、この機能がオンになり、オペレーティングシステムのデフォルトのページャープログラムを介してすべての出力を返します。
- aws configure import
-
AWS Management Consoleから生成された重要な
.csv
認証情報をインポートします。.csv
ファイルは、IAMユーザー名と一致するプロファイル名でインポートされます。 aws configure list-profiles
-
設定したすべてのプロファイルの名前を一覧表示します。
- YAML ストリーム出力形式
-
yaml
およびyaml-stream
形式は、 YAML形式を利用すると同時に、データをストリーミングすることで、大きなデータセットをより迅速に表示できます。クエリ全体がダウンロードされる前に、YAMLデータの表示と使用を開始できます。 - DynamoDB 用の新しい高レベルの
ddb
コマンド -
AWS CLI バージョン 2 には、高レベルの Amazon DynamoDB コマンド
ddb put
と があります ddb select
。これらのコマンドは、DynamoDB テーブルに項目を配置し、DynamoDB テーブルまたはインデックスを検索するためのシンプルなインターフェイスを提供します。 aws logs tail
-
AWS CLI バージョン 2 には、Amazon CloudWatch Logs グループのログを格納するカスタム
aws logs tail
コマンドがあります。デフォルトでは、 コマンドは過去 10 分間に、関連付けられたすべての CloudWatch Logs ストリームからログを返します。 - 高レベルの s3 コマンドに対するメタデータのサポートを追加
-
AWS CLI バージョン 2 では、高レベル
s3
コマンドに--copy-props
パラメータが追加されます。このパラメータを使用すると、Amazon Simple Storage Service (Amazon S3) の追加のメタデータとタグを設定できます。 - AWS_REGION
-
AWS CLI バージョン 2 には、 という AWS SDK互換の環境変数があります
AWS_REGION
。この変数は AWS リージョン 、リクエストを送信する を指定します。これは、AWS_DEFAULT_REGION
環境変数を上書きします ( AWS CLIにのみに適用されます)。
AWS CLI バージョン 1 と AWS CLI バージョン 2 の変更のブレーク
このセクションでは、 AWS CLI バージョン 1 と AWS CLI バージョン 2 の動作のすべての変更について説明します。これらの変更では、バージョン 1 と同じ動作をバージョン 2 で実行するために、スクリプトまたはコマンドを更新する必要がある場合があります。
トピック
- テキストファイルのエンコードを設定するために環境変数を追加
- バイナリパラメータはデフォルトで base64 エンコードされた文字列として渡されるようになりました
- マルチパートコピーのファイルプロパティとタグの Amazon S3 処理が改善されました
- パラメータの http://または https:// URLs の自動取得なし
- デフォルトですべての出力に使用されるページャー
- タイムスタンプ出力値は 8601 ISO 形式に標準化されています
- 変更のない CloudFormation デプロイの処理を改善
- us-east-1 リージョンの Amazon S3 エンドポイントのデフォルト動作を変更しました
- リージョン AWS STS エンドポイントのデフォルト動作を変更
- ecr get-login を削除し、ecr get-login-password に置き換えました
- AWS CLI プラグインのバージョン 2 のサポートが変更されています
- 非表示エイリアスのサポートを削除しました
- api_versions 設定ファイルの設定はサポートされていません
- AWS CLI バージョン 2 では、署名 v4 のみを使用して Amazon S3 リクエストを認証します
- AWS CLI バージョン 2 はページングパラメータとより一貫しています
- AWS CLI バージョン 2 は、すべてのコマンドでより一貫したリターンコードを提供します。
テキストファイルのエンコードを設定するために環境変数を追加
デフォルトでは、blob のテキストファイルはインストールされたロケールと同じエンコードを使用します。 AWS CLI バージョン 2 は Python の埋め込みバージョンを使用しているため、 PYTHONUTF8
および PYTHONIOENCODING
環境変数はサポートされていません。テキストファイルのエンコードをロケールと異なるように設定するには、AWS_CLI_FILE_ENCODING
環境変数を使用します。次の例では、Windows UTF-8
で を使用してテキストファイルを開く AWS CLI ように を設定します。
AWS_CLI_FILE_ENCODING=UTF-8
詳細については、「の環境変数の設定 AWS CLI」を参照してください。
バイナリパラメータはデフォルトで base64 エンコードされた文字列として渡されるようになりました
では AWS CLI、一部のコマンドには base64
デフォルトでは、 AWS CLI バージョン 2 はすべてのバイナリ入力パラメータとバイナリ出力パラメータを base64 でエンコードされた文字列 blobs
(バイナリラージオブジェクト) として渡します。詳細については、「blob」を参照してください。
AWS CLI バージョン 1 の動作に戻すには、cli_binary_format
ファイル設定または --cli-binary-format
パラメータを使用します。
マルチパートコピーのファイルプロパティとタグの Amazon S3 処理が改善されました
aws s3
名前空間で AWS CLI バージョン 1 コマンドを使用して S3 バケットの場所から別の場所にファイルをコピーし、そのオペレーションでマルチパートコピー を使用する場合、ソースオブジェクトからのファイルプロパティはコピー先オブジェクトにコピーされません。
デフォルトでは、 AWS CLI バージョン 2 の対応するコマンドは、すべてのタグと一部のプロパティをソースからコピー先に転送します。 AWS CLI バージョン 1 と比較すると、Amazon S3 エンドポイントへの呼び出しが増える AWS API可能性があります。 AWS CLI バージョン 2 のs3
コマンドのデフォルトの動作を変更するには、 --copy-props
パラメータを使用します。
詳細については、「マルチパートコピーのファイルプロパティとタグ」を参照してください。
パラメータの http://
または https://
URLs の自動取得なし
AWS CLI バージョン 2 は、パラメータ値が http://
または で始まる場合、GET
オペレーションを実行せずhttps://
、返されたコンテンツをパラメータ値として使用しません。その結果、関連するコマンドラインオプションcli_follow_urlparam
が AWS CLI バージョン 2 から削除されます。
を取得し、URL内容をパラメータ値にURL渡す必要がある場合は、 curl
または同様のツールを使用して、 の内容をURLローカルファイルにダウンロードすることをお勧めします。次に、file://
構文を使用してそのファイルの内容を読み込み、パラメータの値として使用します。
例えば、次のコマンドでは、http://www.example.com
で見つかったページの内容を取得し、その内容をパラメータとして渡そうとしなくなりました。代わりに、リテラルテキスト文字列 https://example.com
をパラメータとして渡します。
$
aws ssm put-parameter \
--value http://www.example.com \
--name prod.microservice1.db.secret \
--type String 2
ウェブの内容を取得してパラメータURLとして使用する必要がある場合は、バージョン 2 で以下を実行できます。
$
curl https://my.example.com/mypolicyfile.json -o mypolicyfile.json$
aws iam put-role-policy \ --policy-document file://./mypolicyfile.json \ --role-name MyRole \ --policy-name MyReadOnlyPolicy
前の例では、-o
パラメータは、ソースファイルと同じ名前で現在のフォルダにファイルを保存するよう curl
に指示します。2 番目のコマンドは、ダウンロードしたファイルの内容を取得し、その内容を --policy-document
の値として渡します。
デフォルトですべての出力に使用されるページャー
デフォルトでは、 AWS CLI バージョン 2 はオペレーティングシステムのデフォルトのページャープログラムを通じてすべての出力を返します。このプログラムは Linux および macOS では less
more
AWS CLI バージョン 2 は、別のページングプログラムを使用するか、まったく使用しないように設定できます。詳細については、「クライアント側のページャー」を参照してください。
タイムスタンプ出力値は 8601 ISO 形式に標準化されています
デフォルトでは、 AWS CLI バージョン 2 はすべてのタイムスタンプレスポンス値を ISO 8601 形式で
HTTP API レスポンスによって返される形式のタイムスタンプを表示するには、 config
ファイルの wire
値を使用します。詳細については、「cli_timestamp_format
」を参照してください。
変更のない CloudFormation デプロイの処理を改善
AWS CLI バージョン 1 では、デフォルトで変更のない AWS CloudFormation テンプレートをデプロイすると、 は失敗したエラーコード AWS CLI を返します。これをエラーと見なさずにスクリプトを続行すると、問題が発生する可能性があります。 AWS CLI これをバージョン 1 で回避するには-–no-fail-on-empty-changeset
、 を返すフラグ を追加します0
。
これは一般的なユースケースであるため、デプロイによる変更がなく、オペレーションが空の変更セットを返0
す場合、 AWS CLI バージョン 2 はデフォルトで の正常な終了コードを返すことになります。
元の動作に戻すには、フラグ --fail-on-empty-changeset
を追加します。
us-east-1
リージョンの Amazon S3 エンドポイントのデフォルト動作を変更しました
us-east-1
リージョンを使用するようにAWS CLI バージョン 1 を設定すると、 AWS CLI はus-east-1
リージョンで物理的にホストされているグローバルs3.amazonaws.com
エンドポイントを使用します。 AWS CLI バージョン 2 は、そのリージョンが指定されs3.us-east-1.amazonaws.com
ている場合、真のリージョンエンドポイントを使用します。 AWS CLI バージョン 2 に強制的にグローバルエンドポイントを使用するには、 コマンドのリージョンを に設定しますaws-global
。
リージョン AWS STS エンドポイントのデフォルト動作を変更
デフォルトでは、 AWS CLI バージョン 2 は、現在設定されている のすべての AWS Security Token Service (AWS STS) APIリクエストをリージョンエンドポイントに送信します AWS リージョン。
デフォルトでは、 AWS CLI バージョン 1 はグローバル AWS STS エンドポイントに AWS STS リクエストを送信します。このバージョン 1 のデフォルト動作は、sts_regional_endpoints
設定を使用して制御できます。
ecr get-login
を削除し、ecr get-login-password
に置き換えました
AWS CLI バージョン 2 は、 コマンドを、コンテナ認証aws ecr get-login
との自動統合を改善する aws ecr get-login-password
コマンドに置き換えます。
aws ecr get-login-password
コマンドでは、プロセスリスト、シェル履歴、またはその他のログファイル内の認証情報が公開されるリスクが減ります。また、docker login
コマンドとの互換性が向上し、オートメーションが向上します。
aws ecr get-login-password
コマンドは、 AWS CLI バージョン 1.17.10 以降、および AWS CLI バージョン 2 で使用できます。以前のaws ecr get-login
コマンドは、下位互換性のために AWS CLI バージョン 1 でも引き続き使用できます。
aws ecr get-login-password
コマンドを使用すると、パスワードを取得する以下のコードを置き換えることができます。
$
(aws ecr get-login --no-include-email)
パスワードをシェルの履歴またはログに公開するリスクを減らすには、代わりに以下の例のコマンドを使用します。この例では、パスワードは docker login
コマンドに直接パイプされ、そこで --password-stdin
オプションによってパスワードパラメータに割り当てられます。
$
aws ecr get-login-password | docker login --username AWS
--password-stdin
MY-REGISTRY-URL
詳細については、AWS CLI バージョン 2 リファレンスガイドの「aws ecr get-login-password
AWS CLI プラグインのバージョン 2 のサポートが変更されています
AWS CLI バージョン 2 のプラグインサポートは完全に暫定的であり、ユーザーが AWS CLI バージョン 1 から安定した更新されたプラグインインターフェイスがリリースされるまで移行するのを支援することを目的としています。特定のプラグイン、または AWS CLI プラグインインターフェイスが AWS CLI バージョン 2 の将来のバージョンでサポートされる保証はありません。プラグインを使用する場合は、アップグレード時に の特定のバージョンにロック AWS CLI し、プラグインの機能をテストしてください。
プラグインサポートを有効にするには、[plugins]
に ~/.aws/config
セクションを作成します。
[plugins] cli_legacy_plugin_path =
<path-to-plugins>
/python3.7/site-packages<plugin-name>
=<plugin-module>
[plugins]
セクションで、cli_legacy_plugin_path
変数を定義し、その値を、プラグインモジュールがある Python サイトパッケージのパスに設定します。次に、プラグインの名前 (plugin-name
)、およびプラグインのソースコードを含む Python モジュールのファイル名 (plugin-module
) を指定して、プラグインを設定できます。は、プラグインをインポートplugin-module
してawscli_initialize
関数を呼び出すことで、各プラグインを AWS CLI ロードします。
非表示エイリアスのサポートを削除しました
AWS CLI バージョン 2 では、バージョン 1 でサポートされている以下の非表示エイリアスがサポートされなくなりました。
次の表では、最初の列に、バージョン 2 AWS CLI を含むすべてのバージョンで動作するサービス、コマンド、およびパラメータが表示されます。2 番目の列には、 AWS CLI バージョン 2 で機能しなくなったエイリアスが表示されます。
作業サービス、コマンド、パラメータ | 廃止されたエイリアス |
---|---|
cognito-identity create-identity-pool open-id-connect-provider-arns | open-id-connect-provider-ar-ns |
storagegateway describe-tapes tape-arns | tape-ar-ns |
storagegateway.describe-tape-archives.tape-arns | tape-ar-ns |
storagegatewaydescribe-vtl-devices。vtl-device-arns | vtl-device-ar-ns |
storagegateway.describe-cached-iscsi-volumes.volume-arns | volume-ar-ns |
storagegateway.describe-stored-iscsi-volumes.volume-arns | volume-ar-ns |
route53domains.view-billing.start-time | start |
deploy.create-deployment-group.ec2-tag-set | ec-2-tag-set |
deploy.list-application-revisions.s3-bucket | s-3-bucket |
deploy.list-application-revisions.s3-key-prefix | s-3-key-prefix |
deploy.update-deployment-group.ec2-tag-set | ec-2-tag-set |
iam.enable-mfa-device.authentication-code1 | authentication-code-1 |
iam.enable-mfa-device.authentication-code2 | authentication-code-2 |
iam.resync-mfa-device.authentication-code1 | authentication-code-1 |
iam.resync-mfa-device.authentication-code2 | authentication-code-2 |
importexport.get-shipping-label.street1 | street-1 |
importexport.get-shipping-label.street2 | street-2 |
importexport.get-shipping-label.street3 | street-3 |
lambda.publish-version.code-sha256 | code-sha-256 |
lightsailimport-key-pair..public-key-base64 | public-key-base-64 |
opsworks.register-volume.ec2-volume-id | ec-2-volume-id |
api_versions
設定ファイルの設定はサポートされていません
AWS CLI バージョン 2 では、api_versions
設定ファイル設定APIsを使用した以前のバージョンの AWS サービスの呼び出しはサポートされていません。すべての AWS CLI コマンドAPIsが、エンドポイントで現在サポートされているサービスの最新バージョンを呼び出すようになりました。
AWS CLI バージョン 2 では、署名 v4 のみを使用して Amazon S3 リクエストを認証します
AWS CLI バージョン 2 は、Amazon S3 エンドポイントに送信されたサービスリクエストを暗号化して認証するための以前の署名アルゴリズムをサポートしていません。この署名は、すべての Amazon S3 リクエストで自動的に行われます。また、署名バージョン 4 の署名プロセスのみがサポートされています。署名バージョンを設定することはできません。すべての Amazon S3 バケット署名で SigV4 のみが使用され、最大有効期限は 1 週間URLsになりました。
AWS CLI バージョン 2 はページングパラメータとより一貫しています
AWS CLI バージョン 1 では、コマンドラインでページ分割パラメータを指定すると、自動ページ分割は期待どおりにオフになります。ただし、‐‐cli-input-json
パラメータを指定したファイルを使用してページ分割パラメータを指定する場合、自動ページ分割がオフになっていないため、予期しない出力が発生する可能性があります。 AWS CLI バージョン 2 では、パラメータを指定する方法に関係なく、自動ページ分割がオフになります。
AWS CLI バージョン 2 は、すべてのコマンドでより一貫したリターンコードを提供します。
AWS CLI バージョン 2 はすべてのコマンドで一貫性が高く、 AWS CLI バージョン 1 と比較して適切な終了コードを適切に返します。また、終了コード 252、253、254 を追加しました。終了コードの詳細については、「のコマンドラインリターンコード AWS CLI」を参照してください。
AWS CLI バージョン 1 がリターンコード値をどのように使用するかに依存している場合は、終了コードを確認して、期待する値を取得していることを確認することをお勧めします。