Airflow 气流1.10.1-更改时区

Airflow 气流1.10.1-更改时区,airflow,airflow-scheduler,Airflow,Airflow Scheduler,我通过docker在GCP上的VM内运行气流(1.10.1)。已经更改了虚拟机的本地时间,配置(afflow.cfg)也设置了我所在国家(美国/圣保罗)的默认_区域,但它仍然在主屏幕上以UTC时间继续,因此处理也以UTC时间完成。您还可以做些什么吗?从: 默认情况下启用对时区的支持。Airflow在内部和数据库中以UTC格式存储日期时间信息。它允许您使用时区相关的时间表运行DAG。目前,气流不会在用户界面中将其转换为最终用户的时区。在那里,它将始终以UTC显示。此外,运算符中使用的模板也不会转换

我通过docker在GCP上的VM内运行气流(1.10.1)。已经更改了虚拟机的本地时间,配置(afflow.cfg)也设置了我所在国家(美国/圣保罗)的默认_区域,但它仍然在主屏幕上以UTC时间继续,因此处理也以UTC时间完成。您还可以做些什么吗?

从:

默认情况下启用对时区的支持。Airflow在内部和数据库中以UTC格式存储日期时间信息。它允许您使用时区相关的时间表运行DAG。目前,气流不会在用户界面中将其转换为最终用户的时区。在那里,它将始终以UTC显示。此外,运算符中使用的模板也不会转换


时区信息是公开的,由DAG的编写者进行相应的处理。

作为对给定答案的补充,我能够通过以下代码根据我在DAG内的时区更改执行:

import pendulum 

default_args = {
    'owner': 'airflow',
        'start_date': pendulum.datetime(year=2019, month=7, day=26).astimezone('America/Sao_Paulo'),
        'depends_on_past': False,
        'email': ['airflow@airflow.com'],
        'email_on_failure': False,
        'email_on_retry': False,
        'depends_on_past': False,
        # If a task fails, retry it once after waiting
        # at least 5 minutes
        'retries': 1,
        'retry_delay': timedelta(minutes=5),
                'on_failure_callback': slack_msg
}

dag = DAG(
    dag_id=nm_dag,
    default_args=default_args,
    schedule_interval='40 11 * * *',
    dagrun_timeout=timedelta(minutes=60)
)

您可以通过在AIRFLOW config文件中的变量“AIRFLOW\uuuuu CORE\uuuuu DEFAULT\u timezone”中设置时区的正确值来更改它,或者在运行时从环境变量中进行更改。

如果我的开始日期=天之前(1)怎么办?似乎没有考虑钟摆时区:S