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

Amazon ec2 EC2实例重新启动-实例ID不存在,amazon-ec2,boto,Amazon Ec2,Boto,我正在尝试重新启动远程实例: ec2 = boto.connect_ec2(aws_access_key_id = key_id, aws_secret_access_key = access_key) ec2.reboot_instances([instanceId]) 并获得错误实例ID“i-xxxxx”不存在 看起来我应该连接到区域-如果实例ID是唯一的输入参数,我如何获得该值?您的实例是否处于运行状态??请尝试使用以下命令:- reservations = ec2_conn.get_

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

ec2 = boto.connect_ec2(aws_access_key_id = key_id, aws_secret_access_key = access_key)
ec2.reboot_instances([instanceId]) 
并获得错误
实例ID“i-xxxxx”不存在


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

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

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

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

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

  • boto.client()方法中将凭据作为参数传递
  • 创建会话对象时将凭据作为参数传递
  • 环境变量
  • 共享凭证文件(
    ~/.aws/credentials
  • AWS配置文件(
    ~/.AWS/config
  • 担任提供者角色
  • Boto2配置文件(
    /etc/boto.cfg
    ~/.boto
  • 已配置IAM角色的Amazon EC2实例上的实例元数据服务
  • 如果脚本本身在EC2实例中运行,那么最佳实践是依赖将承担IAM角色的实例元数据

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

    阅读更多: