De manière interactive, je peux utiliser "aws configure" pour changer ou voir la région par défaut. Existe-t-il une fonction de type "pwd", documentée ou non, qui me permet de déterminer ou de confirmer le mid-script de la région actuelle? Même si AWS_DEFAULT_REGION n'est pas défini? Je veux qu'un script s'exécute sous plusieurs profils. Je peux gratter de la liste de configuration aws, mais y a-t-il quelque chose de plus soigné?
aws configure get region
vous donnera la région actuelle à ce point de votre script.
Si vous utilisez un profil, saisissez aws configure get --profile $PROFILE_NAME
.
Peut-être, AWS n'a pas fourni pour obtenir la région actuelle. Cependant, au lieu d'obtenir la région actuelle, ils prévoient d'obtenir une zone de disponibilité actuelle via une métadonnée d'instance. Toutes les zones de disponibilité incluent une région actuelle, vous pouvez donc déterminer la région actuelle en remplaçant une partie de la zone de disponibilité actuelle dans un script sur l'instance EC2.
Par exemple:
curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/\(.*\)[a-z]/\1/'
aws configure get region
est bien mais je voulais pouvoir connaître la région même quand AWS_DEFAULT_REGION
était défini. Malheureusement, selon la documentation:
Notez que aws configure get ne regarde que les valeurs du fichier de configuration AWS. Il ne résout pas les variables de configuration spécifiées ailleurs, y compris les variables d'environnement, les arguments de ligne de commande, etc.
À la place, en supposant que vous avez Python et boto3 installés, vous pouvez exécuter:
python -c 'import boto3;print(boto3.Session().region_name)'
Par exemple.
$ AWS_DEFAULT_REGION=us-east-1 python -c 'import boto3;print(boto3.Session().region_name)'
us-east-1
ceci est le chemin
aws configure get region
La région est la suivante:
curl http://169.254.169.254/latest/dynamic/instance-identity/document
Alors...
curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}'
Si vous avez des informations sur la région pour vos profils dans .aws/config
, vous pouvez procéder comme suit:
Exemple de .aws/config
( notez que le profil dev
est appelé profile dev
). Le profile
Word est imporant .
[default]
region = ap-southeast-2
[profile dev]
region = us-east-1
Ensuite, en utilisant cli, vous pouvez:
aws configure get profile.default.region
qui donne ap-southeast-2
et
aws configure get profile.dev.region
qui donne us-east-1
.
Tiré du commentaire de @ RichVel dans cette réponse , pour obtenir la région résolue définie à partir de AWS_DEFAULT_REGION
ou la région du fichier de configuration aws (aws configure get region
ne donne que la valeur définie dans le fichier de configuration) utilisez:
aws configure list | grep region | awk '{print $2}'
Exemple:
avec $AWS_DEFAULT_REGION
non défini:
$ 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
avec $AWS_DEFAULT_REGION
ensemble:
$ 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