Я пытаюсь опросить какую-то конечную точку, чтобы дождаться, пока заголовок Last-Modified
не покажет, что конечная точка была обновлена за последние пять минут (интервал проверки по умолчанию для HttpSensor). В журналах Airflow я вижу следующее:
[2020-07-11 22:40:53,794] {http_sensor.py:77} INFO - Poking: https://<the URL I want>
[2020-07-11 22:40:53,802] {logging_mixin.py:112} INFO - [2020-07-11 22:40:53,802] {base_hook.py:87} INFO - Using connection to: id: http_default. Host: https://www.httpbin.org/, Port: None, Schema: None, Login: None, Password: None, extra: None
[2020-07-11 22:40:53,803] {logging_mixin.py:112} INFO - [2020-07-11 22:40:53,803] {http_hook.py:136} INFO - Sending 'GET' to url: https://www.httpbin.org/https://<the URL I want>
[2020-07-11 22:40:53,837] {logging_mixin.py:112} WARNING - /usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py:986: InsecureRequestWarning: Unverified HTTPS request is being made to host 'www.httpbin.org'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
[2020-07-11 22:40:53,841] {logging_mixin.py:112} INFO - [2020-07-11 22:40:53,841] {http_hook.py:150} ERROR - HTTP error: NOT FOUND
[2020-07-11 22:40:53,841] {logging_mixin.py:112} INFO - [2020-07-11 22:40:53,841] {http_hook.py:151} ERROR - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>
Как показывают журналы, имя хоста, которое он использует: Using connection to: id: http_default. Host: https://www.httpbin.org/
, поэтому, когда он отправляется для формирования запроса, он добавляет URL-адрес I ' m действительно интересует https://www.httpbin.org/, в результате получается 404. Это мое определение датчика (довольно простое):
data_is_updated = HttpSensor(
task_id="data-is-updated",
endpoint=DAILY_URL,
response_check=endpoint_is_updated_recently
)
, где DAILY_URL
- это нужный мне URL, а endpoint_is_updated_recently
- это функция для синтаксического анализа заголовка Last-Modified
, чтобы определить, обновлялся ли он с момента последнего тыка.
Есть ли у кого-нибудь идеи, почему он использует httpbin.org в качестве хоста? Это нигде не упоминается в моем коде, коде воздушного потока и т. Д. c. и curl <the URL I want>
работает.