URL с поддержкой CORS не работают для AWS Healthcheck
У меня есть приложение Elastic Beanstalk для размещения моих конечных точек Django Rest Framework.
Я включил Corsheader для защиты от подделки перекрестного запроса. Теперь проблема в том, что при проверке работоспособности на ELB он отправляет запрос на URL-адрес работоспособности по адресу:80/api/health/, но этот URL выдает 400 неверных запросов, поскольку URL через любой домен, за исключением одного, указанного в allow_host, не разрешен.
Я попытался вставить в значение allow_host как ["172.", "192.", "10.", ".mydomina.com"]
Но это не похоже на работу.
1 ответ
Я поднял это как билет с поддержкой AWS и нашел решение как https://dryan.com/articles/elb-django-allowed-hosts/
Внесите изменения в вашу производственную конфигурацию как
# Add Private IP of the ELB Instance to Allowed Host for the Health check not to throw CORS 400 Bad Request
EC2_PRIVATE_IP = None
try:
EC2_PRIVATE_IP = requests.get('http://169.254.169.254/latest/meta-data/local-ipv4', timeout=0.01).text
except requests.exceptions.RequestException:
pass
if EC2_PRIVATE_IP:
ALLOWED_HOSTS.append(EC2_PRIVATE_IP)
print("Allowed Host List:")
print(ALLOWED_HOSTS)