2016-10-13 1 views
0

Попытка получить этот код работает. Я хочу получить теги экземпляров в моем vpc. Я получил код отсюда (Displaying EC2 Instance name using Boto 3)boto3 error не удалось получить теги для экземпляров

import boto3 
import boto3.ec2 

s3 = boto3.resource('s3') 

#for bucket in s3.buckets.all(): 
# print(bucket.name) 
# 

ec2 = boto3.resource('ec2', region_name='us-west-1') 
vpc = ec2.Vpc("vpc-59d5d73d") 
for i in vpc.instances.all(): 
    for tag in i.tags: 
    if tag['Key'] == 'Name': 
     print tag['Value'] 

Я использовал код S3, просто чтобы убедиться, что я установлен и настроен Boto правильно и это действительно вернуть ведра на моем счете.

Моя проблема в том, когда я запускаю этот код я получаю:

python botoGetTags.py 
Traceback (most recent call last): 
    File "botoGetTags.py", line 9, in <module> 
    ec2 = boto3.resource('ec2', region_name='us-west-2') 
    File "/Library/Python/2.7/site-packages/boto3/__init__.py", line 92, in resource 
    return _get_default_session().resource(*args, **kwargs) 
    File "/Library/Python/2.7/site-packages/boto3/session.py", line 389, in resource 
    aws_session_token=aws_session_token, config=config) 
    File "/Library/Python/2.7/site-packages/boto3/session.py", line 263, in client 
    aws_session_token=aws_session_token, config=config) 
    File "/Library/Python/2.7/site-packages/botocore/session.py", line 818, in create_client 
    client_config=config, api_version=api_version) 
    File "/Library/Python/2.7/site-packages/botocore/client.py", line 62, in create_client 
    service_model = self._load_service_model(service_name, api_version) 
    File "/Library/Python/2.7/site-packages/botocore/client.py", line 92, in _load_service_model 
    api_version=api_version) 
    File "/Library/Python/2.7/site-packages/botocore/loaders.py", line 123, in _wrapper 
    data = func(self, *args, **kwargs) 
    File "/Library/Python/2.7/site-packages/botocore/loaders.py", line 358, in load_service_model 
    return self.load_data(full_path) 
    File "/Library/Python/2.7/site-packages/botocore/loaders.py", line 123, in _wrapper 
    data = func(self, *args, **kwargs) 
    File "/Library/Python/2.7/site-packages/botocore/loaders.py", line 382, in load_data 
    raise DataNotFoundError(data_path=name) 

Я просто потерял от того, где искать исправления на эту ошибку.

ответ

1

Ваш код работал отлично для меня!

Я предлагаю вам проверить, что вы используете последнюю версию Бото:

sudo pip install boto3 --upgrade --ignore six 

Successfully installed boto3-1.4.1 botocore-1.4.61 docutils-0.12 futures-3.0.5 jmespath-0.9.0 python-dateutil-2.5.3 s3transfer-0.1.7 six-1.10.0 
+0

, что это было! что делает --ignore six do? Я сделал установку в соответствии с руководством 'pip install boto3' – chowpay

+1

Что-то использует библиотеку' six', и теперь она устарела (или, по крайней мере, часто я получаю ошибки). Таким образом, я считаю, что именно исключение помогает обновлению. –

Смежные вопросы