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)[source]¶
Bases:
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。另请参阅
欲了解如何使用此算子,请参考指南: Interact with AWS DataSync Tasks
注意
在您的 AWS 环境中可能不存在、仅有一个或存在多个 DataSync 任务。默认行为是:当不存在任务时创建新任务,只有一个任务时直接执行该任务,若存在多个任务则报错。
- 参数:
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/subdirdestination_location_uri (str | None) – 待搜索的目标位置 URI。所有拥有此 URI 的 LocationArn 的 DataSync 任务皆会被考虑。例如:
s3://airflow_bucket/stuffallow_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已定义的情况下创建任务。内部调用方式等同于:boto3.create_task(**create_task_kwargs)示例:{'Name': 'xyz', 'Options': ..., 'Excludes': ..., 'Tags': ...}create_source_location_kwargs (dict | None) – 若未找到合适的 LocationArn,则在
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已定义的情况下创建位置。内部调用方式等同于: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已定义的情况下对任务进行更新。内部调用方式等同于:boto3.update_task(TaskArn=task_arn, **update_task_kwargs)示例:{'Name': 'xyz', 'Options': ..., 'Excludes': ...}task_execution_kwargs (dict | None) – 启动任务执行时直接传入的额外参数,内部调用方式等同于:
boto3.start_task_execution(TaskArn=task_arn, **task_execution_kwargs)delete_task_after_execution (bool) – 若为 True,则在任务成功完成后删除已执行的 TaskArn。
aws_conn_id – Airflow 用于 AWS 凭证的连接 ID。如果该值为
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 – 如果未找到源或目标 Location 且无法创建。
AirflowException – 如果
choose_task或choose_location失败。AirflowException – 如果任务的创建、更新、执行或删除过程出现错误。
- template_fields: collections.abc.Sequence[str][source]¶