Как определить, работает ли мое приложение в Amazon EC2 * без * сетевых вызовов? - PullRequest
0 голосов
/ 10 января 2019

У меня есть инструмент, который я пишу, который предназначен для доступа к S3 либо с неявными учетными данными роли IAM (при работе в S3), либо с явными учетными данными в среде или файлах конфигурации (при работе вне S3).

Поведение AWS SDK по умолчанию (я использую версию Go, но я предполагаю, что другие SDK похожи) предпочитает учетные данные среды, затем конфигурационные учетные данные, затем возвращается к учетным данным роли IAM и завершается ошибкой только в том случае, если учетные данные роли IAM не могут быть получены. К сожалению, для этого требуется сетевой вызов, который может занять до 20 секунд.

Я бы хотел быстро определить, работаю ли я в EC2, поэтому я знаю, стоит ли вообще делать этот вызов. К сожалению, API-интерфейсы AWS, которые выглядят так, как будто они должны предоставлять эту информацию (например, EC2Metadata.Available ), выполняют тот же сетевой вызов и страдают от той же проблемы времени ожидания.

На данный момент единственное, о чем я могу подумать, это раскошелиться и проверить, включает ли uname -a "amzn".

Это кажется не идеальным.

Есть ли хороший способ проверить среду EC2, не совершая никаких сетевых вызовов?

1 Ответ

0 голосов
/ 12 января 2019

Вы можете установить переменные окружения для вашего инструмента, которые сообщают вашему приложению, где он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...