対話的に、「aws configure」を使用して、デフォルトのリージョンを変更または表示できます。 「pwd」のような関数はありますか。文書化されているかどうかに関係なく、現在の領域のスクリプトの中間を決定または確認できますか? AWS_DEFAULT_REGIONが定義されていなくても?複数のプロファイルでスクリプトを実行したい。私はaws設定リストからこすることができますが、もっとすてきなものはありますか?
aws configure get region
は、スクリプトのその時点での現在のリージョンを取得します。
プロファイルを使用している場合は、aws configure get --profile $PROFILE_NAME
。
おそらく、AWSは現在のリージョンを取得する機能を提供していません。ただし、現在のリージョンを取得する代わりに、インスタンスメタデータを介して現在のアベイラビリティーゾーンを取得できます。すべてのアベイラビリティーゾーンには現在のリージョンが含まれているため、EC2インスタンスのスクリプトで現在のアベイラビリティーゾーンの一部を置き換えることで、現在のリージョンを特定できます。
例えば:
curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/\(.*\)[a-z]/\1/'
aws configure get region
はすっきりしていますが、AWS_DEFAULT_REGION
だったセット。残念ながら、ドキュメントによると:
Aws configure getはAWS構成ファイルの値のみを確認することに注意してください。環境変数、コマンドライン引数など、他の場所で指定された構成変数は解決しません。
代わりに、Python=およびboto3がインストールされていると仮定すると、次のコマンドを実行できます。
python -c 'import boto3;print(boto3.Session().region_name)'
例えば。
$ AWS_DEFAULT_REGION=us-east-1 python -c 'import boto3;print(boto3.Session().region_name)'
us-east-1
これが道です
aws configure get region
地域は次のとおりです。
curl http://169.254.169.254/latest/dynamic/instance-identity/document
そう...
curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}'
.aws/config
にプロファイルの地域情報がある場合、次のようにできます。
.aws/config
の例(dev
プロファイルはprofile dev
と呼ばれます)。 profile
Wordは 重要 です。
[default]
region = ap-southeast-2
[profile dev]
region = us-east-1
次に、cliを使用して、次のことができます。
aws configure get profile.default.region
ap-southeast-2
と
aws configure get profile.dev.region
us-east-1
が得られます。
@RichVelのコメント この回答では から取得し、AWS_DEFAULT_REGION
またはaws構成ファイル(aws configure get region
内の領域から解決された領域セットを取得するには、設定ファイル)使用:
aws configure list | grep region | awk '{print $2}'
例:
$AWS_DEFAULT_REGION
が未設定の場合:
$ echo $AWS_DEFAULT_REGION
$ cat ~/.aws/credentials
[foo]
region = us-east-1
$ aws configure list | grep region | awk '{print $2}'
us-east-1
$ aws configure get region
us-east-1
$AWS_DEFAULT_REGION
セット:
$ export AWS_DEFAULT_REGION=us-west-2
$ echo $AWS_DEFAULT_REGION
us-west-2
$ cat ~/.aws/credentials
[foo]
region = us-east-1
$ aws configure list | grep region | awk '{print $2}'
us-west-2
$ aws configure get region
us-east-1