Я использую docker-compose для создания масштабируемого кластера воздушного потока. Я основывал свой подход на этом Dockerfile https://hub.docker.com/r/puckel/docker-airflow/
Моя проблема заключается в том, что журналы созданы для записи/чтения из s3. Когда завершение dag завершено, я получаю ошибку, подобную этой
*** Log file isn't local.
*** Fetching here: http://ea43d4d49f35:8793/log/xxxxxxx/2017-06-26T11:00:00
*** Failed to fetch log file from worker.
*** Reading remote logs...
Could not read logs from s3://buckets/xxxxxxx/airflow/logs/xxxxxxx/2017-06-
26T11:00:00
Я установил новый раздел в файле airflow.cfg
, подобный этому
[MyS3Conn]
aws_access_key_id = xxxxxxx
aws_secret_access_key = xxxxxxx
aws_default_region = xxxxxxx
Затем укажите путь s3 в разделе удаленных журналов в airflow.cfg
remote_base_log_folder = s3://buckets/xxxx/airflow/logs
remote_log_conn_id = MyS3Conn
Я правильно настроил это, и есть ошибка? Есть ли рецепт успеха здесь, который мне не хватает?
- Обновить
Я попробовал экспортировать в форматах URI и JSON и, похоже, не работал. Затем я экспортировал aws_access_key_id и aws_secret_access_key, а затем поток воздуха начал его собирать. Теперь я получаю его ошибку в рабочих журналах
6/30/2017 6:05:59 PMINFO:root:Using connection to: s3
6/30/2017 6:06:00 PMERROR:root:Could not read logs from s3://buckets/xxxxxx/airflow/logs/xxxxx/2017-06-30T23:45:00
6/30/2017 6:06:00 PMERROR:root:Could not write logs to s3://buckets/xxxxxx/airflow/logs/xxxxx/2017-06-30T23:45:00
6/30/2017 6:06:00 PMLogging into: /usr/local/airflow/logs/xxxxx/2017-06-30T23:45:00
- Обновить
Я тоже нашел эту ссылку https://www.mail-archive.com/[email protected]/msg00462.html
Затем я обрушился на одну из моих рабочих машин (отдельно от веб-сервера и планировщика) и запустил этот бит кода в python
import airflow
s3 = airflow.hooks.S3Hook('s3_conn')
s3.load_string('test', airflow.conf.get('core', 'remote_base_log_folder'))
Я получаю эту ошибку.
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden
Я попытался экспортировать несколько различных типов AIRFLOW_CONN_
envs, как описано здесь, в разделе соединений https://airflow.incubator.apache.org/concepts.html и другими ответами на этот вопрос.
s3://<AWS_ACCESS_KEY_ID>:<AWS_SECRET_ACCESS_KEY>@S3
{"aws_account_id":"<xxxxx>","role_arn":"arn:aws:iam::<xxxx>:role/<xxxxx>"}
{"aws_access_key_id":"<xxxxx>","aws_secret_access_key":"<xxxxx>"}
Я также экспортировал AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY без успеха.
Эти учетные данные хранятся в базе данных, поэтому, как только я добавлю их в пользовательский интерфейс, они должны быть отобраны рабочими, но по какой-то причине они не могут писать/читать журналы.