AWS CLI バージョン 2 の新機能と変更点 - AWS Command Line Interface

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 で実行するために、スクリプトまたはコマンドを更新する必要がある場合があります。

テキストファイルのエンコードを設定するために環境変数を追加

デフォルトでは、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 でエンコードされた文字列が必要で、他のコマンドには UTF-8 でエンコードされたバイト文字列が必要でした。 AWS CLI バージョン 1 では、エンコードされた 2 つの文字列タイプ間でデータを渡すには、多くの場合、中間処理が必要です。 AWS CLI バージョン 2 では、バイナリパラメータの処理の一貫性が向上し、あるコマンドから別のコマンドに値をより確実に渡すことができます。

デフォルトでは、 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 プログラム、Windows では more プログラムです。これにより、出力を一度に 1 ページずつ表示することで、サービスからの大量の出力内を移動できます。

AWS CLI バージョン 2 は、別のページングプログラムを使用するか、まったく使用しないように設定できます。詳細については、「クライアント側のページャー」を参照してください。

タイムスタンプ出力値は 8601 ISO 形式に標準化されています

デフォルトでは、 AWS CLI バージョン 2 はすべてのタイムスタンプレスポンス値を ISO 8601 形式で返します。 AWS CLI バージョン 1 では、コマンドはHTTPAPIレスポンスによって返された任意の形式のタイムスタンプ値を返しました。これはサービスごとに異なる場合があります。

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 がリターンコード値をどのように使用するかに依存している場合は、終了コードを確認して、期待する値を取得していることを確認することをお勧めします。