我已经设置了一些亚马逊AWS CLI工具(EC2,Auto Scaling,MOnitoring和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变量设置为此区域。
对于我的生活,我无法弄清楚为什么它找不到我的实例。有什么明显的事实我做错了吗?
更新:由于某种原因,重新创建x509 cert / pk解决了这个问题。
答案 0 :(得分:37)
我遇到了同样的问题。这是因为我没有为我的命令定义一个区域。我假设它会列出所有区域的所有实例,但默认为us-west-1
,我没有任何实例。
为了描述我在爱尔兰的机器,我使用以下内容:
ec2-describe-instances --region eu-west-1
注意:我正在其他地方定义我的AWS访问密钥和秘密。
为了避免这个问题,我现在通过我的linux和Windows机器上的environment variable设置我的区域:EC2_URL=https://ec2.eu-west-1.amazonaws.com
所以我不必在命令行上明确。
2014年5月更新您还可以通过将以下行添加到主文件夹中的~/.aws/config
文件(未在Windows上测试)来设置区域。这是我现在的首选方法,特别是在我的VM和容器上:
[default]
region = eu-west-1
有关详细信息,请参阅offical docs here.
答案 1 :(得分:3)
奇怪的问题 - 像往常一样,在软件开发中遇到奇怪的东西时,首先应该质疑这些假设:
我知道实例ID存在,我将其复制出AWS Web控制台, 它位于欧洲西部1区,我的环境变量就是这样的 区域。
因此实例ID源于与您想要使用它的环境不同的环境 - 我会尝试通过相同的环境派生实例ID,即:
ec2-describe-instances
我冒昧地猜测列表不会返回您期望的实例。这表示您使用的是属于其他帐户的AWS凭据,或者这些凭据没有通过Amazon EC2分配的必需IAM policies读取权限。
答案 2 :(得分:1)
我有一个类似的问题,我在这里写的解决方案适合任何能发现它有帮助的人。
我在几个小时内就遇到了这个错误。
Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist
最后我发现了发生的事情:我的实例位于与默认区域(美国东部(弗吉尼亚北部)不同的区域),我不得不更新此信息。默认情况下,命令仅查找默认区域中的实例!
在文档中解释了(可选)部分:设置区域 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html
答案 3 :(得分:0)
我通过将EC2_URL从“https://ec2.ap-southeast-1.amazonaws.com”更改为“ec2.ap-southeast-1.amazonaws.com”来解决此问题
答案 4 :(得分:0)
这是一个非常简单的问题。如果您收到此错误
Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist
然后按照步骤进行操作。
现在输入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
快乐地开心
答案 5 :(得分:0)
就我而言,我在~/.aws/credentials
中有两组凭据。要指定凭据标签,请使用
aws ec2 describe-instances --instance-id <your-instance-id> --profile <your-profile-name> --region <your-region>