Обнаружение выполнения в облаке 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'