gpt4 book ai didi

python - Boto Python 库在迁移到另一个数据中心后仍然认为它位于原始 EC2 数据中心

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:55 25 4
gpt4 key购买 nike

我已将 Debian Amazon EC2 服务器从北弗吉尼亚迁移(实际上是复制)到 VPC 内的爱尔兰数据中心。

我一直在使用this python script很想晚上做自动EBS快照备份,但是由于我已经迁移了服务器,所以它不起作用。

新卷未被识别为已存在,但它可以为北弗吉尼亚州的旧卷制作快照,即使服务器位于爱尔兰也是如此。

我收到这个错误:

root@ip-10-0-0-100:~# python /srv/bin/manage_snapshots.py vol-fac935ae 14 "Test Backup"
Traceback (most recent call last):
File "/srv/bin/manage_snapshots.py", line 36, in <module>
volumes = conn.get_all_volumes([vol_id])
File "/usr/local/lib/python2.7/dist-packages/boto/ec2/connection.py", line 2099, in get_all_volumes
[('item', Volume)], verb='POST')
File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 1131, in get_list
raise self.ResponseError(response.status, response.reason, body)
boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>InvalidVolume.NotFound</Code><Message>The volume 'vol-fac935ae' does not exist.</Message></Error></Errors><RequestID>30ba36b6-2f07-4c5f-b307-36865cb7ef44</RequestID></Response>

假设问题出在 boto 配置中,我如何告诉它服务器现在在爱尔兰?

我已经在 ~/.profile 中有了这个:

# set AWS region
export EC2_URL=https://ec2.eu-west-1.amazonaws.com

但我认为这仅适用于命令行 ec2-api-tools。

最佳答案

您可以像这样以编程方式找出 EC2 实例位于哪个区域:

import boto.utils
data = boto.utils.get_instance_identity()
region_name = data['document']['region']

一旦知道区域,就可以像这样连接到脚本中的正确区域:

import boto.ec2
conn = boto.ec2.connect_to_region(region_name)

这应该允许您的脚本能够在任何区域的任何实例上运行。

关于python - Boto Python 库在迁移到另一个数据中心后仍然认为它位于原始 EC2 数据中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21365408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com