EC2实例重新启动-实例ID不存在



我正在尝试重新启动远程实例:

ec2 = boto.connect_ec2(aws_access_key_id = key_id, aws_secret_access_key = access_key)
ec2.reboot_instances([instanceId]) 

得到错误CCD_ 1

看起来我应该连接到区域-如果实例ID是唯一的输入参数,我如何获得该值?

与凭据相关的信息,如访问密钥、秘密访问密钥和区域,应该在代码之外进行配置。这是为了确保可移植性。

boto3查找凭据的机制是搜索可能的位置列表,并在找到凭据后立即停止。Boto3搜索凭据的顺序是:

  1. boto.client()方法中将凭据作为参数传递
  2. 创建会话对象时将凭据作为参数传递
  3. 环境变量
  4. 共享凭据文件(~/.aws/credentials
  5. AWS配置文件(~/.aws/config
  6. 假定角色提供程序
  7. Boto2配置文件(/etc/boto.cfg~/.boto
  8. 已配置IAM角色的Amazon EC2实例上的实例元数据服务

如果脚本本身在EC2实例中运行,则最佳做法是依赖将承担IAM角色的实例元数据。

假设您从本地机器调用脚本,最简单的方法是通过运行$ aws configure并在那里指定区域来修改~/.aws/credentials

阅读更多:http://boto3.readthedocs.io/en/latest/guide/configuration.html

您的实例是否处于运行状态??尝试使用以下命令:-

reservations = ec2_conn.get_all_instances(filters={'instance-id' : 'i-xxxxxxxx'})
new_instance = reservations[0].instances[0]

最新更新