【问题标题】:ec2 aws describe-volumes giving HTTPSConnectionPool errorec2 aws describe-volumes 给出 HTTPSConnectionPool 错误
【发布时间】:2018-06-01 10:48:02
【问题描述】:

这个让我有点困惑,所以我认为它可能值得在这里发布。

为了进行备份,我正在尝试定期拍摄 Amazon EC2 实例的快照。值得庆幸的是,一些非常聪明的人已经编写了一个相当不错的 shell 脚本来执行此操作:https://github.com/colinbjohnson/aws-missing-tools/tree/master/ec2-automate-backup

这背后的想法是它使用 Amazon AWS CLI 工具调用 Amazon 并触发给定卷的快照。从理论上讲,这很好用,但是我遇到了一个奇怪的问题。

上面的脚本进行以下调用:

aws ec2 describe-volumes

这应该返回亚马逊卷的列表。但是,它失败并出现以下错误:

HTTPSConnectionPool(host='ec2.us-west2a.amazonaws.com', port=443): Max retries exceeded with url: / (Cuased by <class 'socket.gaierror'>: [Errno -2] Name or service not known)

我明白为什么会抛出此错误:ec2.us-west2a.amazonaws.com 端点不是有效端点。它应该是 ec2.us-west2.amazonaws.com(“west2”之后没有“a”)。尽管在 shell 脚本中四处寻找,但我终其一生都无法弄清楚 aws ec2 describe-volumes 调用实际上是从哪里获取端点的。如果我运行命令:

ec2-describe-volumes

我得到一个有效的卷列表,包括我正在尝试备份的卷。在我的 ~/.profile 中,我已经正确设置了我的 EC2_URL、EC2_REGION 环境变量并确保重新加载它们,但仍然出现上述错误。

谁能告诉我“aws ec2 describe-volumes”实际上在哪里获取端点?

【问题讨论】:

    标签: shell amazon-web-services amazon-ec2 backup


    【解决方案1】:

    鉴于上面的列表显示了区域名称,您可以使用 --region 参数覆盖脚本自动查找区域信息的位置。例如: "aws ec2 create-snapshot --volume-id vol-xxxxxxxx --region us-west-2"

    我在尝试创建快照时遇到了同样的问题(如您在上面看到的),一旦我从之前发布的列表中获得了区域名称,就可以正常工作了。

    祝你好运!

    【讨论】:

    • 详细说明你的答案,不要把它留给这个摘要
    【解决方案2】:

    【讨论】:

    • 我想你可能误解了我的问题。我不需要知道端点——我已经知道正确的端点应该是什么样子。我所追求的是该端点实际上是如何设置的——“aws ec2 describe-volumes”从哪里拉出端点?环境变量?凭空而来?
    猜你喜欢
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 2022-06-24
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多