2013-04-12 11 views
16

У меня есть несколько инструментов AMA для амазонок AWS (EC2, Auto Scaling, MOnitoring и ELB). Инструменты настроены правильно и работают отлично. Мои среды вары все готово, соответствующие те к этому Q существа:ec2-describe-instance-status Client.InvalidInstanceID.NotFound, но у меня есть экземпляр KNOW

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 

Я знаю, что идентификатор экземпляра существует, я скопировал его из веб-консоли AWS, и он находится в регионе eu-west-1, и мои env vars настроены на этот регион.

Для жизни я не могу понять, почему он не найдет мои примеры. Есть ли что-то очевидное, что я делаю неправильно?

ОБНОВЛЕНИЕ: воссоздание x509 cert/pk разрешено это ... по некоторым причинам.

ответ

3

Weird вопрос - как обычно при встрече что-то странное в разработке программного обеспечения, следует первый вопрос предположения:

Я знаю, что идентификатор экземпляра существует, я скопировал из веб-консоли AWS, и находится в регионе eu-west-1, и мои env vars настроены на этот регион .

Так экземпляр ID вытекает из другой среды, чем тот, который вы хотите использовать его в - я хотел бы попытаться получить идентификатор экземпляра с помощью одной и той же среды, а не, например:

ec2-describe-instances 

Осмелюсь предположим, что список не вернет ожидаемые экземпляры. Это указывает на то, что вы используете либо учетные данные AWS, принадлежащие другой учетной записи, либо эти учетные данные не имеют требуемых разрешений Amazon EC2, назначенных, например, IAM policies.

+0

Спасибо за вход. Ужасно ec2-describe-instance (даже с аргументом region) ничего не выводит. Я установил последние инструменты CLI ec2 (на сегодняшний день), а ec2-describe-regions дает VALID-выход. Возможно, что-то связано с моими кредитами. – BoomShaka

+0

Я воссоздал свой сертификат x509 и закрытый ключ. Это решило проблему. Он, должно быть, истек, хотя тот, который я использовал, был отмечен как активный. Странный. – BoomShaka

+0

@BoomShaka - Я настоятельно рекомендую переключиться на использование только ключей доступа IAM, которые намного проще в использовании и значительно более универсальны и, следовательно, неявно более безопасны; Сертификаты X.509 [тем временем устарели] (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/setting_up_ec2_command_linux.html#set_aws_credentials_linux) для инструментов командной строки EC2 и почти никогда не используются в других местах уже довольно давно , См. Мой ответ на [Как загрузить сертификат EC2 X.509 с учетной записью пользователя IAM?] (Http://stackoverflow.com/a/8995926/45773) для получения дополнительной информации об этом. –

31

У меня была та же проблема. Это потому, что я не определял регион для моих команд. Я предположил, что он будет перечислять все экземпляры во всех регионах, но по умолчанию он равен us-west-1, и у меня нет никаких случаев там.

Чтобы описать свои машины в Ирландии Я использую следующие:

ec2-describe-instances --region eu-west-1
NB: я определяю свой ключ доступа AWS и секрет в другом месте.

Чтобы избежать этой проблемы, идти вперед, я теперь установлен свой регион через environment variable на моем Линукс и окна машины: EC2_URL=https://ec2.eu-west-1.amazonaws.com так, что я не должен быть явно в командной строке.

Обновление мая 2014 года Вы также можете указать регион, добавив следующие строки в файл ~/.aws/config в вашей домашней папке (не тестировалось в Windows).Это мой предпочтительный метод сейчас, особенно на моей и VM-контейнеров:

[default] 
region = eu-west-1 

Для получения дополнительной информации см offical docs here.

+0

Ваш ответ был полезен, спасибо! –

+0

Спасибо за подсказку о настройке этого файла конфигурации – asherrard

1

у меня была аналогичная проблема, и я пишу здесь решение для всех, кто может найти это полезным.

Я был застрял с этой ошибкой в ​​течение нескольких часов.

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

Наконец я нашел то, что происходит: у меня был экземпляр в другой области, чем области по умолчанию (US East (Северная Виргиния)) и мне пришлось обновить эту информацию. По умолчанию команды выглядят только для экземпляров в области по умолчанию!

Это объясняется в документации, раздел (необязательно): Установите областьhttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html

0

Это очень простая проблема. Если вы получаете эту ошибку

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

Далее следуйте инструкциям.

  1. Проверить, в какой стране регион ваш экземпляр image here

Теперь введите [email protected]:~# aws configure

Введите

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

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

Default region name [us-east-1]:

При запросе региона по умолчанию измените регион, в котором находятся экземпляры. Например: us-east-2. Затем нажмите Enter. Acutally это список доступных названий региона "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. Теперь вы сделали

Теперь в консоли просто введите

[email protected]:~# aws ec2 describe-instance --instance-id i-06343434322t 

осчастливить РАДЫ