Python使用Fabric连接到EC2实例

Python使用Fabric连接到EC2实例,python,amazon-ec2,fabric,Python,Amazon Ec2,Fabric,我正在学习织物。我想实现以下功能:将ssh连接到我的EC2机器中,并将ls连接到主目录中 我从以下几点开始: from boto import ec2 from fabric.colors import green as _green, yellow as _yellow class EC2Conn: def __init__(self): print(_green("Started...")) self.ec2conn = None

我正在学习织物。我想实现以下功能:将ssh连接到我的EC2机器中,并将ls连接到主目录中

我从以下几点开始:

from boto import ec2

from fabric.colors import green as _green, yellow as _yellow


class EC2Conn:
    def __init__(self):
        print(_green("Started..."))
        self.ec2conn = None
        self.user = 'fabUser'
        self.access_key = 'xxxx'
        self.secret_key = 'xxxx'

    def connect(self):
        print(_green("Connecting..."))
        ec2.connect_to_region("eu-west-1a")
        self.ec2conn = ec2.connection.EC2Connection(self.access_key, self.secret_key)

        print(self.get_instances())


    def get_instances(self):
        return self.ec2conn.get_all_instances()


def run_me():
    a = EC2Conn()
    a.connect()

但这给了我一个空白列表[]我确实有一个实例正在运行,因此这是不正确的。

请尝试在代码中做如下更改

self.ec2conn = ec2.connect_to_region('eu-west-1', 
                  aws_access_key_id=self.access_key,
                  aws_secret_access_key=self.secret_key)

print(self.get_instances())


记住
ec2.connect\u到\u区域
ec2.connection.EC2Connection
都返回
ec2.connection.EC2Connection
对象。参考

是否显示任何错误?无错误它与详细信息连接,但显示为空[]。当它应该有2个实例时。我设置了一个新用户,并给了他们正确的权限(完全管理)顶级代码给了我非类型对象没有属性“get_all_instances”,第二个用户做了相同的[]blank你检查了区域了吗?对吗?使用aws控制台进行检查。在控制台中,它说明实例的可用区域为eu-west-1a。将
eu-west-1a
更改为
eu-west-1
。现在应该可以了。
region = ec2.get_region('eu-west-1')
self.ec2conn = ec2.connection.EC2Connection(self.access_key,
                  self.secret_key, region=region)

print(self.get_instances())