Один из способов определить, работает ли виртуальная машина (в моем случае контейнер Docker, работающий на виртуальной машине Linux) в Azure, - запросить у службы метаданных некоторую информацию с использованием HTTP.
Этот прием отлично работает наAWS и GCP, где запрос может быть выполнен с использованием DNS-имен (instance-data.ec2.internal
и metadata.google.internal
) и, следовательно, запрос быстро завершится неудачно, когда выполняется поиск DNS.
Но для Azure я не знаюлюбое DNS-имя для службы метаданных, только его необработанный IP-адрес (169.254.169.254
) и код должен ждать, пока не истечет время ожидания запроса, что займет гораздо больше времени.
Одним из решений этого являетсянайдите DNS-имя для службы метаданных Azure, но могут быть и другие решения этой проблемы.