it-roy-ru.com

ec2-description-instance-status Client.InvalidInstanceID.NotFound, но я ЗНАЮ, что экземпляр существует

Я установил несколько инструментов CLI Amazon AWS (EC2, автоматическое масштабирование, 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

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

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

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

20
BoomShaka

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

Для описания моих машин в Ирландии я использую следующее:

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

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

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

[default]
region = eu-west-1

Для получения дополнительной информации см. официальные документы здесь.

37
Jujhar Singh

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

Я ЗНАЮ, что идентификатор экземпляра существует, я скопировал его из веб-консоли AWS, и это в регионе eu-west-1, и мои envars настроены на это область, край.

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

ec2-describe-instances

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

3
Steffen Opel

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

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

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

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

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

1
Miquel

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

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

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

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

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

Войти

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

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

Default region name [us-east-1]:

Когда будет задан вопрос о регионе по умолчанию, измените регион, в котором находятся экземпляры. Например: США-Восток-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. Теперь вы готовы

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

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

СДЕЛАЙТЕ СЧАСТЛИВЫМ БЫТЬ СЧАСТЛИВЫМ

0
imran

Я исправил это, изменив EC2_URL с ' https://ec2.ap-southeast-1.amazonaws.com ' на 'ec2.ap-southeast-1.amazonaws.com'

0
Mark Khor