24

我已经设置了一些亚马逊 AWS CLI 工具(EC2、Auto Scaling、监控和 ELB)。这些工具设置正确并且工作正常。我的环境变量都设置好了,与这个 Q 相关的是:

export EC2_REGION=eu-west-1
export EC2_URL=https://ec2.$EC2_REGION.amazonaws.com
export AWS_ELB_URL=https://elasticloadbalancing.$EC2_REGION.amazonaws.com

当我为我ec2-describe-instance-status i-XXXXXXXX的任何实例运行时,我得到:

Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist

我知道实例 ID 存在,我将它从 AWS Web 控制台复制出来,它位于 eu-west-1 区域中,并且我的 env vars 设置为该区域。

对于我的生活,我无法弄清楚为什么它找不到我的实例。有什么明显的地方我做错了吗?

更新:重新创建 x509 cert/pk 解决了这个问题……出于某种原因。

4

6 回答 6

45

我有同样的问题。这是因为我没有为我的命令定义一个区域。我假设它会列出所有地区的所有实例,但它默认为us-west-1并且我在那里没有任何实例。

为了描述我在爱尔兰的机器,我使用以下内容:

ec2-describe-instances --region eu-west-1
注意:我在别处定义我的 AWS 访问密钥和秘密。

为了避免这个问题继续发生,我现在通过我的 linux 和 windows 机器上的环境变量EC2_URL=https://ec2.eu-west-1.amazonaws.com设置我的区域: 这样我就不必在命令行上明确说明。

2014 年 5 月更新您还可以通过将以下行添加到~/.aws/config您的主文件夹中的文件来设置区域(未在 Windows 上测试)。这是我现在首选的方法,尤其是在我的 VM 和容器上:

[default]
region = eu-west-1

有关更多信息,请参阅此处的官方文档。

2021 年 5 月更新 由于我现在在这么多区域工作,因此我使用隐式和临时环境变量来为该命令定义我的区域,并且在我的区域中没有默认值,.aws/config这可能很危险。这也使 bash 脚本编写更容易,因为我可以为整个脚本/实用程序定义它。打字要多一点,但更安全、更灵活、更透明,例如:

AWS_DEFAULT_REGION=eu-central-1 aws ec2 describe-instances

# or for a script/utility
AWS_DEFAULT_REGION=us-east-1 ./tagInstances.sh
于 2013-09-23T10:24:54.757 回答
3

奇怪的问题——像往常一样,在软件开发中遇到奇怪的事情时,首先应该质疑假设:

我知道实例 ID 存在,我将它从 AWS Web 控制台复制出来,它位于 eu-west-1 区域中,并且我的 env vars 设置为该区域。

因此,实例 ID 源自与您要使用它的环境不同的环境 - 我会尝试通过相同的环境派生实例 ID,即:

ec2-describe-instances

我冒险猜测该列表不会返回您期望的实例。这表明您正在使用属于另一个账户的 AWS 凭证,或者这些凭证没有通过IAM 策略分配的所需Amazon EC2读取权限。

于 2013-04-12T11:30:24.130 回答
3

就我而言,我在~/.aws/credentials. 要指定凭证标签,请使用

aws ec2 describe-instances --instance-id <your-instance-id> --profile <your-profile-name> --region <your-region>

于 2019-07-21T01:44:20.170 回答
1

我有一个类似的问题,我在这里为任何能发现它有帮助的人写下解决方案。

我在几个小时内被这个错误困住了。

Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist

最后我发现发生了什么:我的实例位于与默认区域不同的区域(美国东部(弗吉尼亚北部)),我必须更新此信息。默认情况下,这些命令仅查找默认区域中的实例!

它在文档部分(可选)中进行了解释:设置区域 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html

于 2013-11-29T11:48:13.923 回答
1

这是非常简单的问题。如果您收到此错误

Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist

然后按照步骤操作。

  1. 在此处查看您的实例所在的国家/地区

现在输入root@Indian:~# aws configure

进入

AWS Access Key ID [****************D7M2]:

AWS Secret Access Key [****************2h3r]:

Default region name [us-east-1]:

当询问默认区域时,更改实例所在的区域。例如:us-east-2。然后按 Enter。实际上,这些是可用区域名称“RegionNames”的列表

 "Regions": [
    {
        "RegionName": "ap-south-1",
        "Endpoint": "ec2.ap-south-1.amazonaws.com"
    },
    {
        "RegionName": "eu-west-2",
        "Endpoint": "ec2.eu-west-2.amazonaws.com"
    },
    {
        "RegionName": "eu-west-1",
        "Endpoint": "ec2.eu-west-1.amazonaws.com"
    },
    {
        "RegionName": "ap-northeast-2",
        "Endpoint": "ec2.ap-northeast-2.amazonaws.com"
    },
    {
        "RegionName": "ap-northeast-1",
        "Endpoint": "ec2.ap-northeast-1.amazonaws.com"
    },
    {
        "RegionName": "sa-east-1",
        "Endpoint": "ec2.sa-east-1.amazonaws.com"
    },
    {
        "RegionName": "ca-central-1",
        "Endpoint": "ec2.ca-central-1.amazonaws.com"
    },
    {
        "RegionName": "ap-southeast-1",
        "Endpoint": "ec2.ap-southeast-1.amazonaws.com"
    },
    {
        "RegionName": "ap-southeast-2",
        "Endpoint": "ec2.ap-southeast-2.amazonaws.com"
    },
    {
        "RegionName": "eu-central-1",
        "Endpoint": "ec2.eu-central-1.amazonaws.com"
    },
    {
        "RegionName": "us-east-1",
        "Endpoint": "ec2.us-east-1.amazonaws.com"
    },
    {
        "RegionName": "us-east-2",
        "Endpoint": "ec2.us-east-2.amazonaws.com"
    },
    {
        "RegionName": "us-west-1",
        "Endpoint": "ec2.us-west-1.amazonaws.com"
    },
    {
        "RegionName": "us-west-2",
        "Endpoint": "ec2.us-west-2.amazonaws.com"
    }
]
}

Default output format [None]:

将输出格式留空,然后按 Enter。现在你完成了

现在在控制台中输入

root@Indian-3543:~# aws ec2 describe-instance --instance-id i-06343434322t

让快乐快乐

于 2017-12-05T07:38:05.470 回答
0

我通过将 EC2_URL 从“ https://ec2.ap-southeast-1.amazonaws.com ”更改为“ec2.ap-southeast-1.amazonaws.com”解决了这个问题

于 2015-02-28T16:28:38.273 回答