Обнаружение выполнения в облаке Amazon из скрипта Python с использованием boto3

Как я могу найти, что мой скрипт на Python выполняется в AWS (экземпляр EC2, контейнер ECS или Lambda), а не, например, с моей рабочей станции, в сценарии, использующем в идеале boto3,

Я ожидаю, что boto3 есть какой-то способ сказать: "True - да, ты в AWS"или"False - Нет, ты не ". Однако я не мог найти ничего подобного.

Кажется, что-то относительно близкое boto.utils.get_instance_metadata - это, я думаю, по крайней мере, сбой при выполнении на моей рабочей станции, но, очевидно, такая функциональность даже не существует в boto3: https://github.com/boto/boto3/issues/313

1 ответ

Почему бы вам не использовать requests модуль для подключения к серверу метаданных и определения, работает ли он в AWS или нет.

import requests

try:
  resp = requests.get('http://169.254.169.254', timeout=0.001)
  print 'In AWS'
except:
  print 'Not in AWS'
Другие вопросы по тегам