Python 如何创建DAG以将文件从一个S3复制到另一个S3存储桶
我正在尝试使用python创建dag,以便将一个文件从一个S3存储桶复制到另一个S3存储桶 我的代码Python 如何创建DAG以将文件从一个S3复制到另一个S3存储桶,python,python-3.x,amazon-s3,airflow,airflow-scheduler,Python,Python 3.x,Amazon S3,Airflow,Airflow Scheduler,我正在尝试使用python创建dag,以便将一个文件从一个S3存储桶复制到另一个S3存储桶 我的代码 from airflow import DAG from datetime import datetime, timedelta from utils import FAILURE_EMAILS from airflow.providers.amazon.aws.operators.s3_copy_object import S3CopyObjectOperator default_args
from airflow import DAG
from datetime import datetime, timedelta
from utils import FAILURE_EMAILS
from airflow.providers.amazon.aws.operators.s3_copy_object import S3CopyObjectOperator
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2020, 1, 1),
'email': FAILURE_EMAILS,
'email_on_failure': False,
'email_on_retry': False,
'retries': 0,
'retry_delay': timedelta(minutes=5)
}
dag = DAG(
'S3_COPY_S3',
default_args=default_args,
catchup=False,
schedule_interval=None,
max_active_runs=1
)
copy_step = S3CopyObjectOperator(
source_bucket_key='source_file',
dest_bucket_key='dest_file',
aws_conn_id='aws_connection_id',
source_bucket_name='source-bucket',
dest_bucket_name='dest-bucket',
dag=dag
)
这是正确的吗?如果您提供的值被替换为正确的bucket名称和s3键,那么您是否可以进行验证,这是您唯一缺少S3CopyObjectOperator任务id的地方
实例化运算符时,需要在关联DAG的上下文中提供唯一的任务id。Alan Ma是正确的。基于文档(如前所述,源_bucket _key等的字符串只是占位符,您需要在底部的新行中添加“copy _step”,否则您只定义了一个任务,但不会运行它)。另外,由于您已将“计划间隔”设置为“无”,我假定它是由另一个dag从外部触发的。