我正在尝试重新启动远程实例:
ec2 = boto.connect_ec2(aws_access_key_id = key_id, aws_secret_access_key = access_key)
ec2.reboot_instances([instanceId])
并得到了错误The instance ID 'i-xxxxx' does not exist
看起来我应该连接到区域 - 如果实例 ID 是唯一的输入参数,我如何获得这个值?
我正在尝试重新启动远程实例:
ec2 = boto.connect_ec2(aws_access_key_id = key_id, aws_secret_access_key = access_key)
ec2.reboot_instances([instanceId])
并得到了错误The instance ID 'i-xxxxx' does not exist
看起来我应该连接到区域 - 如果实例 ID 是唯一的输入参数,我如何获得这个值?
凭据相关信息,例如访问密钥、秘密访问密钥和区域,应在您的代码之外配置。这是为了确保便携性。
boto3 查找凭据的机制是搜索可能位置的列表,并在找到凭据后立即停止。Boto3 搜索凭据的顺序是:
boto.client()
方法中将凭据作为参数传递~/.aws/credentials
)~/.aws/config
)/etc/boto.cfg
和~/.boto
)如果脚本本身在 EC2 实例中运行,则最佳做法是依赖将承担 IAM 角色的实例元数据。
假设您从本地计算机调用脚本,最简单的方法是~/.aws/credentials
通过运行$ aws configure
并指定那里的区域来进行修改。
阅读更多: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]