AWS CLI で実行環境によって –region を付与しないとコマンドがエラーになるときの対処方法
困っていた内容
複数の環境(開発環境、検証環境)で、AWS CLI によるコマンド操作を実施しています。環境構成、設定内容はほぼ同等なのですが、同じコマンドを実行しても環境によって--region
パラメータを設定しないと、コマンドがエラーになることがあります。なぜでしょうか?
どう対応すればいいの?
デフォルトリージョンの設定有無をご確認ください。
AWS CLI でコマンドを実行する際は、基本的にリージョンの指定が必要です。リージョンを指定する方法には、大きく3つの方法が提供されており、コマンドに--region
パラメータを付与する方法はその一つです。
--region
パラメータで指定するAWS_DEFAULT_REGION
環境変数で指定する- 設定ファイルの
region
設定で指定する
リージョンの指定は上記のいずれかの方法で指定すれば良いため、環境によって--region
パラメータ要否が変わるのは、他の方法でリージョンが指定されているためと推測されます。
そのため、環境毎の設定状況を確認して、必要に応じて設定方法を揃えると、環境によって--region
パラメータの要否が変わる事象を解消することができます。
なお、複数の方法で指定(設定ファイルと--region
パラメータなど)で指定した場合は、優先順位が高い方法のリージョン設定が使用されます。
設定の基本 - AWS Command Line Interface
(優先度:高)
--region
パラメータで指定するAWS_DEFAULT_REGION
環境変数で指定する- 設定ファイルの
region
設定で指定する
(優先度:低)
設定状況を確認する方法
設定ファイルでリージョンが設定されているか確認したい場合は、次のコマンドを実行します。
# 設定されている場合 $ aws configure get region ap-northeast-1 $ # 設定されていない場合 $ aws configure get region $
参考:構成設定の設定および表示
aws configure set
aws configure set を使用して、任意の認証情報または構成設定を設定できます。--profile 設定で表示または変更するプロファイルを指定します。
同様にAWS_DEFAULT_REGION
環境変数で指定されているかは、次のコマンドで確認します。
# Windowsの場合 echo %AWS_DEFAULT_REGION% # Mac、Linuxの場合 echo ${AWS_DEFAULT_REGION}
※設定ファイル同様、何も表示されない場合は、環境変数にリージョンは設定されていません。
参考:環境変数の設定方法
参考資料
You must specify an AWS Region when using the AWS CLI, either explicitly or by setting a default Region.