6

Python スクリプト (aws に接続) で ~/.aws/credentials の aws プロファイルを使用したい

だから、私は ~/.aws/credentials ファイルを持っています:

[default]
aws_access_key_id = XXX
aws_secret_access_key = AAA
region = eu-west-1

[test]
aws_access_key_id = WWW
aws_secret_access_key = ZZZ
region = eu-west-1

私のpythonコード

import boto.ec2

conn = boto.ec2.EC2Connection(profile_name='test')
print conn
print conn.get_all_instances()

出力は

EC2Connection:ec2.us-east-1.amazonaws.com
[]

そのため、構成からプロファイルを取得していないようです。地域が間違っています。

env | grep -i aws <- returns nothing

私は何が欠けていますか?

ありがとうございました。

=====更新=====

~/.aws/config ファイルもあり、次のようになります

⟩ cat config
[default]
output = text
region = eu-west-1

[profile test]
output = text
region = eu-west-1

=====更新=====

どうやら、接続の詳細が必要ですが、地域は必要ありません。だから、私がするなら

reg = next(x for x in boto.ec2.regions() if x.name=='eu-west-1')

conn = boto.ec2.EC2Connection(profile_name='test', region=reg)
print conn
print conn.get_all_instances()

インスタンスのリストを取得できます。

したがって、問題は AWS config/credentials からデフォルトの「リージョン」を取得する方法です。

4

1 に答える 1

2

このcredentialsファイルは、資格情報にのみ使用されることになっています。プロファイルに他の属性を指定する場合は、~/.aws/configファイルで指定する必要があります。したがって、あなたの場合、次を含む構成ファイルを作成します。

[default]
region = eu-west-1

[test]
region = eu-west-1
于 2015-05-19T16:11:03.450 に答える