cyr*_*llk 6 python amazon-ec2 boto amazon-web-services aws-ec2
我希望我的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
Run Code Online (Sandbox Code Playgroud)
我的python代码
import boto.ec2
conn = boto.ec2.EC2Connection(profile_name='test')
print conn
print conn.get_all_instances()
Run Code Online (Sandbox Code Playgroud)
输出是
EC2Connection:ec2.us-east-1.amazonaws.com
[]
Run Code Online (Sandbox Code Playgroud)
所以,它似乎没有从配置中获取配置文件.该地区是错误的.
env | grep -i aws <- returns nothing
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
谢谢.
=====更新=====
我有一个〜/ .aws/config文件,看起来像
? cat config
[default]
output = text
region = eu-west-1
[profile test]
output = text
region = eu-west-1
Run Code Online (Sandbox Code Playgroud)
=====更新=====
显然,它需要连接细节..但不是区域.所以,如果我这样做
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()
Run Code Online (Sandbox Code Playgroud)
我可以得到一个实例列表.
因此,问题是如何从AWS配置/凭证中获取默认的"区域".
该credentials文件应该仅用于凭据。如果您想为您的配置文件提供其他属性,您应该在~/.aws/config文件中执行此操作。因此,在您的情况下,您将创建一个包含以下内容的配置文件:
[default]
region = eu-west-1
[test]
region = eu-west-1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3252 次 |
| 最近记录: |