airflow.providers.amazon.aws.operators.datasync
¶
创建、获取、更新、执行和删除 AWS DataSync 任务。
模块内容¶
类¶
查找、创建、更新、执行和删除 AWS DataSync 任务。 |
- class airflow.providers.amazon.aws.operators.datasync.DataSyncOperator(*, wait_interval_seconds=30, max_iterations=60, wait_for_completion=True, task_arn=None, source_location_uri=None, destination_location_uri=None, allow_random_task_choice=False, allow_random_location_choice=False, create_task_kwargs=None, create_source_location_kwargs=None, create_destination_location_kwargs=None, update_task_kwargs=None, task_execution_kwargs=None, delete_task_after_execution=False, **kwargs)[源代码]¶
基类:
airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator
[airflow.providers.amazon.aws.hooks.datasync.DataSyncHook
]查找、创建、更新、执行和删除 AWS DataSync 任务。
如果
do_xcom_push
为 True,则执行的 DataSync TaskArn 和 TaskExecutionArn 将被推送到 XCom。另请参阅
有关如何使用此操作符的更多信息,请查看指南: 与 AWS DataSync 任务交互
注意
在您的 AWS 环境中可能定义了 0、1 或多个现有的 DataSync 任务。默认行为是,如果有 0 个任务,则创建新任务;如果只有 1 个任务,则执行该任务;如果有多个任务,则失败。
- 参数
wait_interval_seconds (
int
) – 检查 TaskExecution 状态的两个连续调用之间等待的时间。max_iterations (
int
) – 检查 TaskExecution 状态的连续调用最大次数。wait_for_completion (
bool
) – 如果为 True,则等待任务执行达到最终状态task_arn (
str
|None
) – 要使用的 AWS DataSync TaskArn。如果为 None,则此操作符将尝试搜索现有任务或尝试创建新任务。source_location_uri (
str
|None
) – 要搜索的源位置 URI。将考虑具有此 URI 的 LocationArn 的所有 DataSync 任务。示例:smb://server/subdir
destination_location_uri (
str
|None
) – 要搜索的目标位置 URI。将考虑具有此 URI 的 LocationArn 的所有 DataSync 任务。示例:s3://airflow_bucket/stuff
allow_random_task_choice (
bool
) – 如果匹配多个任务,则必须选择一个来执行。如果 allow_random_task_choice 为 True,则会随机选择一个。allow_random_location_choice (
bool
) – 如果匹配多个位置,则必须在创建任务时选择一个。如果 allow_random_location_choice 为 True,则会随机选择一个。create_task_kwargs (
dict
|None
) – 如果未识别到合适的 TaskArn,则在定义create_task_kwargs
时将创建该任务。然后,create_task_kwargs
将在内部像这样使用:boto3.create_task(**create_task_kwargs)
示例:{'Name': 'xyz', 'Options': ..., 'Excludes': ..., 'Tags': ...}
create_source_location_kwargs (
dict
|None
) – 如果未找到合适的 LocationArn,则在定义create_source_location_kwargs
时将创建位置。然后,create_source_location_kwargs
将在内部像这样使用:boto3.create_location_xyz(**create_source_location_kwargs)
xyz 是根据 source_location_uri 的前缀确定的,例如smb:/...
或s3:/...
示例:{'Subdirectory': ..., 'ServerHostname': ..., ...}
create_destination_location_kwargs (
dict
|None
) – 如果未找到合适的 LocationArn,则在定义create_destination_location_kwargs
时将创建位置。create_destination_location_kwargs
在内部像这样使用:boto3.create_location_xyz(**create_destination_location_kwargs)
xyz 是根据 destination_location_uri 的前缀确定的,例如smb:/...` 或 ``s3:/...
示例:{'S3BucketArn': ..., 'S3Config': {'BucketAccessRoleArn': ...}, ...}
update_task_kwargs (
dict
|None
) – 如果找到或创建了合适的 TaskArn,则在定义update_task_kwargs
时将对其进行更新。update_task_kwargs
在内部像这样使用:boto3.update_task(TaskArn=task_arn, **update_task_kwargs)
示例:{'Name': 'xyz', 'Options': ..., 'Excludes': ...}
task_execution_kwargs (
dict
|None
) – 启动任务执行时直接传递的额外 kwargs,在内部像这样使用:boto3.start_task_execution(TaskArn=task_arn, **task_execution_kwargs)
delete_task_after_execution (
bool
) – 如果为 True,则在成功完成后,将从 AWS DataSync 中删除已执行的 TaskArn。aws_conn_id – 用于 AWS 凭据的 Airflow 连接。如果为
None
或为空,则使用默认的 boto3 行为。如果以分布式方式运行 Airflow,并且 aws_conn_id 为 None 或为空,则将使用默认的 boto3 配置(并且必须在每个工作节点上维护)。region_name – AWS region_name。如果未指定,则使用默认的 boto3 行为。
verify – 是否验证 SSL 证书。请参阅:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html
botocore_config – botocore 客户端的配置字典(键值对)。请参阅:https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html
- 抛出
AirflowException – 如果未指定
task_arn
,或者未指定source_location_uri
或destination_location_uri
。AirflowException – 如果未找到源位置或目标位置,并且无法创建它们。
AirflowException – 如果
choose_task
或choose_location
失败。AirflowException – 如果任务创建、更新、执行或删除失败。
- template_fields: collections.abc.Sequence[str][来源]¶