Python 使用boto获取所有ec2实例时遇到问题

Python 使用boto获取所有ec2实例时遇到问题,python,amazon-web-services,boto,Python,Amazon Web Services,Boto,我试图在boto中使用我的aws凭据文件,但似乎无法使其正常工作。我是python和boto的新手,所以我在网上看了很多东西,试图理解这一点 我现在要做的就是获取所有ec2实例……以下是我的python代码: import boto from boto import ec2 ec2conn = ec2.connection.EC2Connection(profile_name='profile_name') ec2conn.get_all_instances() 当我运行该命令时,会出现以下

我试图在boto中使用我的aws凭据文件,但似乎无法使其正常工作。我是python和boto的新手,所以我在网上看了很多东西,试图理解这一点

我现在要做的就是获取所有ec2实例……以下是我的python代码:

import boto
from boto import ec2

ec2conn = ec2.connection.EC2Connection(profile_name='profile_name')
ec2conn.get_all_instances()
当我运行该命令时,会出现以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/ec2/connection.py", line 585, in get_all_instances
    max_results=max_results)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/ec2/connection.py", line 681, in get_all_reservations
    [('item', Reservation)], verb='POST')
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py", line 1170, in get_list
    response = self.make_request(action, params, path, verb)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py", line 1116, in make_request
    return self._mexe(http_request)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py", line 913, in _mexe
    self.is_secure)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py", line 705, in get_http_connection
    return self.new_http_connection(host, port, is_secure)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py", line 747, in new_http_connection
    connection = self.proxy_ssl(host, is_secure and 443 or 80)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py", line 835, in proxy_ssl
    ca_certs=self.ca_certificates_file)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 943, in wrap_socket
    ciphers=ciphers)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 611, in __init__
    self.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 840, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:661)
------编辑--------

所以我在stack上找到了这个链接。。。我所做的就是导出我的AWS_配置文件var

导出AWS\u PROFILE=“PROFILE\u nm”

当我这样做时,它起了作用:

>>> import boto
>>> conn = boto.connect_s3()
>>> conn.get_all_buckets()
我把所有的s3桶都拿回来了


但当我做了上述操作以取回所有ec2实例时……我仍然得到了上面的
ssl.SSLEOFError
。它似乎可以与s3一起使用,但现在不能与ec2一起使用……那么,我获取所有ec2实例的方法是否都错了?

AFAIK boto 2没有使用
~/.aws/credentials
,它有自己的凭据文件。我会推荐使用boto3,尤其是作为一个新用户。不确定我是否读对了,但我想它在这里说是吗?这个链接有助于在aws creds文件()中使用概要文件名,它可以列出所有s3存储桶,但当我尝试获取所有ec2实例时,仍然会得到
ssl.SSLEOFError
。抱歉,尽管我在前面提到afaik,我可能无论如何都应该搜索。我可以问一下您使用的是什么特定的python版本吗?2.7.9之前的版本在TLS检测方面存在一些问题。S3和EC2有不同的TLS配置,这就是为什么一个可能不工作,而另一个可能不工作的原因。这对我来说是一个代理问题…我确实导出了no_proxy=169.254.169.254,然后它工作了Edafaik boto 2没有使用
~/.aws/credentials
,它有自己的凭据文件。我会推荐使用boto3,尤其是作为一个新用户。不确定我是否读对了,但我想它在这里说是吗?这个链接有助于在aws creds文件()中使用概要文件名,它可以列出所有s3存储桶,但当我尝试获取所有ec2实例时,仍然会得到
ssl.SSLEOFError
。抱歉,尽管我在前面提到afaik,我可能无论如何都应该搜索。我可以问一下您使用的是什么特定的python版本吗?2.7.9之前的版本在TLS检测方面存在一些问题。S3和EC2有不同的TLS配置,这就是为什么其中一个可能无法工作,而另一个却无法工作。这对我来说是一个代理问题…我确实导出了no_proxy=169.254.169.254,然后它工作了
>>> import boto
>>> conn = boto.connect_s3()
>>> conn.get_all_buckets()