让我们以DAG为例。
这是它的代码。
import logging
from airflow import DAG
from datetime import datetime, timedelta
from airflow.models import TaskInstance
from airflow.operators.python import PythonOperator
from airflow.operators.dummy import DummyOperator
def task_failure_notification_alert(context):
lo
我在Red Hat Linux上运行airflow 1.10.3。我使用的是LocalExecutor,via服务器和调度程序都是通过systemd启动的。
调度程序生成的日志文件是完全可读的(即“-rw-”模式)。创建的日志目录为drwxrwxrwx。
这无法通过我的组织进行的安全扫描。我需要能够限制这些文件的权限。
/etc/profile中的umask为077。我还将UMask=0007添加到服务的systemd单元文件中。但是,尽管这似乎适用于dags/ logs /scheduler/目录中的日志,但它不会影响DAG运行日志。
[root@server logs]# ls -la s
为了让apache-airflow在任务失败时给我发送电子邮件,我需要做任何额外的设置吗?我的配置文件中有以下内容(默认设置未更改):
[email]
email_backend = airflow.utils.email.send_email_smtp
[smtp]
# If you want airflow to send emails on retries, failure, and you want to use
# the airflow.utils.email.send_email_smtp function, you have to configure an
# smtp s
我尝试了不同的方法来配置气流1.9来将日志写入s3,但是它只是忽略了它。我发现很多人在阅读日志之后都有问题,但是我的问题是日志仍然是本地的。我可以毫无问题地阅读它们,但它们不在指定的s3桶中。
我尝试的是首先写入airflow.cfg文件
# Airflow can store logs remotely in AWS S3 or Google Cloud Storage. Users
# must supply an Airflow connection id that provides access to the storage
# location.
remote_base_log_fo
在DAG中是否有自定义电子邮件和发送任何任务失败的选项。有一个类似‘email _on_failure’的选项: True,但它不提供动态添加内容到电子邮件主题或正文的选项。
我的DAG将如下所示
import airflow
from airflow import DAG
from airflow.contrib.operators.databricks_operator import DatabricksSubmitRunOperator
from airflow.operators.email_operator import EmailOperator
from airflow.ope
我在cmd中运行docker-compose up airflow-init来使用提供的模板来部署气流,创建文件夹日志、插件和dags:
C:\Users\Diego\Airflow>dir
Volume in drive C has no label.
Volume Serial Number is 4296-D163
Directory of C:\Users\Diego\Airflow
09/18/2021 07:45 PM <DIR> .
09/18/2021 07:45 PM <DIR> ..
我按照在线教程在airflow.cfg中设置了电子邮件SMTP服务器,如下所示:
[email]
email_backend = airflow.utils.email.send_email_smtp
[smtp]
# If you want airflow to send emails on retries, failure, and you want to use
# the airflow.utils.email.send_email_smtp function, you have to configure an
# smtp server here
smtp_host = smtp
我是Airflow的新手,但我已经定义了一个Dag,每天上午9点发送基本的电子邮件我的DAG如下: from airflow import DAG
from datetime import datetime, timedelta
from airflow.operators.bash_operator import BashOperator
from airflow.operators.email_operator import EmailOperator
from airflow.utils.dates import days_ago
date_log = str(datetime.to