airflow.providers.amazon.aws.operators.eks

此模块包含 Amazon EKS 运算符。

属性

CHECK_INTERVAL_SECONDS

TIMEOUT_SECONDS

DEFAULT_COMPUTE_TYPE

DEFAULT_CONN_ID

DEFAULT_FARGATE_PROFILE_NAME

DEFAULT_NAMESPACE_NAME

DEFAULT_NODEGROUP_NAME

CAN_NOT_DELETE_MSG

MISSING_ARN_MSG

SUCCESS_MSG

SUPPORTED_COMPUTE_VALUES

NODEGROUP_FULL_NAME

FARGATE_FULL_NAME

EksCreateClusterOperator

创建 Amazon EKS 集群控制平面。

EksCreateNodegroupOperator

为现有的 Amazon EKS 集群创建 Amazon EKS 管理节点组。

EksCreateFargateProfileOperator

为 Amazon EKS 集群创建 AWS Fargate 配置文件。

EksDeleteClusterOperator

删除 Amazon EKS 集群控制平面及其附加的所有节点组。

EksDeleteNodegroupOperator

从 Amazon EKS 集群中删除 Amazon EKS 管理节点组。

EksDeleteFargateProfileOperator

从 Amazon EKS 集群中删除 AWS Fargate 配置文件。

EksPodOperator

在指定的 Amazon EKS 集群上的 Kubernetes Pod 中执行任务。

模块内容

airflow.providers.amazon.aws.operators.eks.CHECK_INTERVAL_SECONDS = 15[source]
airflow.providers.amazon.aws.operators.eks.TIMEOUT_SECONDS = 1500[source]
airflow.providers.amazon.aws.operators.eks.DEFAULT_COMPUTE_TYPE = 'nodegroup'[source]
airflow.providers.amazon.aws.operators.eks.DEFAULT_CONN_ID = 'aws_default'[source]
airflow.providers.amazon.aws.operators.eks.DEFAULT_FARGATE_PROFILE_NAME = 'profile'[source]
airflow.providers.amazon.aws.operators.eks.DEFAULT_NAMESPACE_NAME = 'default'[source]
airflow.providers.amazon.aws.operators.eks.DEFAULT_NODEGROUP_NAME = 'nodegroup'[source]
airflow.providers.amazon.aws.operators.eks.CAN_NOT_DELETE_MSG = '附加了 {compute} 的集群无法删除。正在删除 {count} {compute}。'[source]
airflow.providers.amazon.aws.operators.eks.MISSING_ARN_MSG = '创建 {compute} 需要传入 {requirement}。'[source]
airflow.providers.amazon.aws.operators.eks.SUCCESS_MSG = '没有剩余的 {compute},正在删除集群。'[source]
airflow.providers.amazon.aws.operators.eks.SUPPORTED_COMPUTE_VALUES[source]
airflow.providers.amazon.aws.operators.eks.NODEGROUP_FULL_NAME = 'Amazon EKS 管理节点组'[source]
airflow.providers.amazon.aws.operators.eks.FARGATE_FULL_NAME = 'AWS Fargate 配置文件'[source]
class airflow.providers.amazon.aws.operators.eks.EksCreateClusterOperator(cluster_name, cluster_role_arn, resources_vpc_config, compute=DEFAULT_COMPUTE_TYPE, create_cluster_kwargs=None, nodegroup_name=DEFAULT_NODEGROUP_NAME, nodegroup_role_arn=None, create_nodegroup_kwargs=None, fargate_profile_name=DEFAULT_FARGATE_PROFILE_NAME, fargate_pod_execution_role_arn=None, fargate_selectors=None, create_fargate_profile_kwargs=None, wait_for_completion=False, region=None, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), waiter_delay=30, waiter_max_attempts=40, **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.eks.EksHook]

创建 Amazon EKS 集群控制平面。

可选地,也可以创建支持的计算架构

  • 如果参数 ‘compute’ 的值为 ‘nodegroup’,也将

    尝试为集群创建一个 Amazon EKS 管理节点组。请参阅 EksCreateNodegroupOperator 文档以了解要求。

  • 如果参数 ‘compute’ 的值为 ‘fargate’,也将尝试创建一个 AWS

    Fargate 配置文件。请参阅 EksCreateFargateProfileOperator 文档以了解要求。

另请参阅

有关如何使用此运算符的更多信息,请参阅指南: 创建 Amazon EKS 集群

参数:
  • cluster_name (str) – 为您的 Amazon EKS 集群指定的唯一名称。(templated)

  • cluster_role_arn (str) – IAM 角色的 Amazon 资源名称 (ARN),该角色提供 Kubernetes 控制平面代表您调用 AWS API 操作的权限。(templated)

  • resources_vpc_config (dict) – 集群控制平面使用的 VPC 配置。(templated)

  • compute (str | None) – 与集群一起生成的计算架构类型。(templated) 默认为 ‘nodegroup’ 以生成 EKS 管理节点组。

  • create_cluster_kwargs (dict | None) – 传递给 CreateCluster API 的可选参数 (templated)

  • wait_for_completion (bool) – 如果为 True,则等待运算符完成。(default: False) (templated)

  • 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

如果 compute 被赋值为 ‘nodegroup’

参数:
  • nodegroup_name (str) – REQUIRED 为您的 Amazon EKS 管理节点组指定的唯一名称。(templated)

  • nodegroup_role_arn (str | None) – REQUIRED 与 Amazon EKS 管理节点组关联的 IAM 角色的 Amazon 资源名称 (ARN)。(templated)

  • create_nodegroup_kwargs (dict | None) – 传递给 CreateNodegroup API 的可选参数 (templated)

如果 compute 被赋值为 ‘fargate’

参数:
  • fargate_profile_name (str) – REQUIRED 为您的 AWS Fargate 配置文件指定的唯一名称。(templated)

  • fargate_pod_execution_role_arn (str | None) – REQUIRED 用于与 AWS Fargate 配置文件中的选择器匹配的 Pod 的 Pod 执行角色的 Amazon 资源名称 (ARN)。(templated)

  • fargate_selectors (list | None) – 用于匹配使用此 AWS Fargate 配置文件的 Pod 的选择器。(templated)

  • create_fargate_profile_kwargs (dict | None) – 传递给 CreateFargateProfile API 的可选参数 (templated)

  • waiter_delay (int) – 两次连续调用之间等待检查集群状态的时间(秒)

  • waiter_max_attempts (int) – 检查集群状态的最大尝试次数

  • deferrable (bool) – 如果为 True,运算符将异步等待作业完成。这意味着等待完成。此模式需要安装 aiobotocore 模块。(default: False)

aws_hook_class[source]
template_fields: collections.abc.Sequence[str][source]
compute = 'nodegroup'[source]
cluster_name[source]
cluster_role_arn[source]
resources_vpc_config[source]
create_cluster_kwargs[source]
nodegroup_role_arn = None[source]
fargate_pod_execution_role_arn = None[source]
create_fargate_profile_kwargs[source]
wait_for_completion = False[source]
waiter_delay = 30[source]
waiter_max_attempts = 40[source]
nodegroup_name = 'nodegroup'[source]
create_nodegroup_kwargs[source]
fargate_selectors[source]
fargate_profile_name = 'profile'[source]
deferrable = True[source]
execute(context)[source]

创建运算符时派生。

Context 与渲染 jinja 模板时使用的字典相同。

有关更多 context,请参阅 get_template_context。

deferrable_create_cluster_next(context, event=None)[source]
execute_failed(context, event=None)[source]
execute_complete(context, event=None)[source]
class airflow.providers.amazon.aws.operators.eks.EksCreateNodegroupOperator(cluster_name, nodegroup_subnets, nodegroup_role_arn, nodegroup_name=DEFAULT_NODEGROUP_NAME, create_nodegroup_kwargs=None, wait_for_completion=False, region=None, waiter_delay=30, waiter_max_attempts=80, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.eks.EksHook]

为现有的 Amazon EKS 集群创建 Amazon EKS 管理节点组。

另请参阅

有关如何使用此运算符的更多信息,请参阅指南: 创建 Amazon EKS 管理节点组

参数:
  • cluster_name (str) – 要在其中创建管理节点组的 Amazon EKS 集群的名称。(templated)

  • nodegroup_name (str) – 为您的管理节点组指定的唯一名称。(templated)

  • nodegroup_subnets (list[str] | str) – 用于为管理节点组创建的 Auto Scaling 组的子网。(templated)

  • nodegroup_role_arn (str) – 与管理节点组关联的 IAM 角色的 Amazon 资源名称 (ARN)。(templated)

  • create_nodegroup_kwargs (dict | None) – 传递给 Create Nodegroup API 的可选参数 (templated)

  • wait_for_completion (bool) – 如果为 True,则等待运算符完成。(default: False) (templated)

  • 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

  • waiter_delay (int) – 两次连续调用之间等待检查节点组状态的时间(秒)

  • waiter_max_attempts (int) – 检查节点组状态的最大尝试次数

  • deferrable (bool) – 如果为 True,运算符将异步等待节点组创建完成。这意味着等待完成。此模式需要安装 aiobotocore 模块。(default: False)

aws_hook_class[source]
template_fields: collections.abc.Sequence[str][source]
nodegroup_subnets[source]
compute = 'nodegroup'[source]
cluster_name[source]
nodegroup_role_arn[source]
nodegroup_name = 'nodegroup'[source]
create_nodegroup_kwargs[source]
wait_for_completion = False[source]
waiter_delay = 30[source]
waiter_max_attempts = 80[source]
deferrable = True[source]
execute(context)[source]

创建运算符时派生。

Context 与渲染 jinja 模板时使用的字典相同。

有关更多 context,请参阅 get_template_context。

execute_complete(context, event=None)[source]
class airflow.providers.amazon.aws.operators.eks.EksCreateFargateProfileOperator(cluster_name, pod_execution_role_arn, selectors, fargate_profile_name=DEFAULT_FARGATE_PROFILE_NAME, create_fargate_profile_kwargs=None, region=None, wait_for_completion=False, waiter_delay=10, waiter_max_attempts=60, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.eks.EksHook]

为 Amazon EKS 集群创建 AWS Fargate 配置文件。

另请参阅

有关如何使用此操作符的更多信息,请参阅指南:创建 AWS Fargate 配置文件

参数:
  • cluster_name (str) – 要应用 AWS Fargate 配置文件的 Amazon EKS 集群的名称。(模板化)

  • pod_execution_role_arn (str) – 与 AWS Fargate 配置文件中的选择器匹配的 Pod 所使用的 Pod 执行角色的 Amazon Resource Name (ARN)。(模板化)

  • selectors (list) – 要使用此 AWS Fargate 配置文件的 Pod 的匹配选择器。(模板化)

  • fargate_profile_name (str) – 为您的 AWS Fargate 配置文件指定的唯一名称。(模板化)

  • create_fargate_profile_kwargs (dict | None) – 传递给 CreateFargate Profile API 的可选参数 (模板化)

  • wait_for_completion (bool) – 如果为 True,则等待运算符完成。(default: False) (templated)

  • 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

  • waiter_delay (int) – 两次连续调用检查配置文件状态之间等待的时间(以秒为单位)

  • waiter_max_attempts (int) – 检查配置文件状态的最大尝试次数。

  • deferrable (bool) – 如果为 True,操作符将异步等待配置文件的创建。这意味着等待完成。此模式需要安装 aiobotocore 模块。(默认值: False)

aws_hook_class[source]
template_fields: collections.abc.Sequence[str][source]
cluster_name[source]
selectors[source]
pod_execution_role_arn[source]
fargate_profile_name = 'profile'[source]
create_fargate_profile_kwargs[source]
wait_for_completion = False[source]
waiter_delay = 10[source]
waiter_max_attempts = 60[source]
deferrable = True[source]
compute = 'fargate'[source]
execute(context)[source]

创建运算符时派生。

Context 与渲染 jinja 模板时使用的字典相同。

有关更多 context,请参阅 get_template_context。

execute_complete(context, event=None)[source]
class airflow.providers.amazon.aws.operators.eks.EksDeleteClusterOperator(cluster_name, force_delete_compute=False, region=None, wait_for_completion=False, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), waiter_delay=30, waiter_max_attempts=40, **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.eks.EksHook]

删除 Amazon EKS 集群控制平面及其附加的所有节点组。

另请参阅

有关如何使用此操作符的更多信息,请参阅指南:删除 Amazon EKS 集群

参数:
  • cluster_name (str) – 要删除的 Amazon EKS 集群的名称。(模板化)

  • force_delete_compute (bool) – 如果为 True,将删除任何关联的资源。(模板化) 默认为 False。

  • wait_for_completion (bool) – 如果为 True,则等待运算符完成。(default: False) (templated)

  • aws_conn_id – 用于 AWS 凭据的 Airflow 连接。(模板化) 如果此参数为 None 或空,则使用默认的 boto3 行为。如果在分布式模式下运行 Airflow 且 aws_conn_id 为 None 或空,则将使用默认的 boto3 配置(并且必须在每个工作节点上维护该配置)。

  • region (str | None) – 连接应使用的 AWS 区域。(模板化) 如果此参数为 None 或空,则使用默认的 boto3 行为。

  • verify – 是否验证 SSL 证书。请参阅: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • waiter_delay (int) – 两次连续调用之间等待检查集群状态的时间(秒)

  • waiter_max_attempts (int) – 检查集群状态的最大尝试次数

  • deferrable (bool) – 如果为 True,操作符将异步等待集群被删除。这意味着等待完成。此模式需要安装 aiobotocore 模块。(默认值: False)

aws_hook_class[source]
template_fields: collections.abc.Sequence[str][source]
cluster_name[source]
force_delete_compute = False[source]
wait_for_completion = False[source]
deferrable = True[source]
waiter_delay = 30[source]
waiter_max_attempts = 40[source]
execute(context)[source]

创建运算符时派生。

Context 与渲染 jinja 模板时使用的字典相同。

有关更多 context,请参阅 get_template_context。

delete_any_nodegroups()[source]

删除给定 Amazon EKS 集群的所有 Amazon EKS 托管节点组。

Amazon EKS 托管节点组可以并行删除,因此我们可以批量发送所有删除命令,并在节点组数量为零后继续。

delete_any_fargate_profiles()[source]

删除给定 Amazon EKS 集群的所有 EKS Fargate 配置文件。

EKS Fargate 配置文件必须逐个删除,因此在发送下一个删除命令之前,我们必须等待当前配置文件被删除。

execute_complete(context, event=None)[source]
class airflow.providers.amazon.aws.operators.eks.EksDeleteNodegroupOperator(cluster_name, nodegroup_name, region=None, wait_for_completion=False, waiter_delay=30, waiter_max_attempts=40, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.eks.EksHook]

从 Amazon EKS 集群中删除 Amazon EKS 管理节点组。

另请参阅

有关如何使用此操作符的更多信息,请参阅指南:删除 Amazon EKS 托管节点组

参数:
  • cluster_name (str) – 与您的节点组关联的 Amazon EKS 集群的名称。(模板化)

  • nodegroup_name (str) – 要删除的节点组的名称。(模板化)

  • wait_for_completion (bool) – 如果为 True,则等待运算符完成。(default: False) (templated)

  • aws_conn_id – 用于 AWS 凭据的 Airflow 连接。(模板化) 如果此参数为 None 或空,则使用默认的 boto3 行为。如果在分布式模式下运行 Airflow 且 aws_conn_id 为 None 或空,则将使用默认的 boto3 配置(并且必须在每个工作节点上维护该配置)。

  • region_name – 连接应使用的 AWS 区域。(模板化) 如果此参数为 None 或空,则使用默认的 boto3 行为。

  • verify – 是否验证 SSL 证书。请参阅: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • waiter_delay (int) – 两次连续调用之间等待检查节点组状态的时间(秒)

  • waiter_max_attempts (int) – 检查节点组状态的最大尝试次数

  • deferrable (bool) – 如果为 True,操作符将异步等待节点组被删除。这意味着等待完成。此模式需要安装 aiobotocore 模块。(默认值: False)

aws_hook_class[source]
template_fields: collections.abc.Sequence[str][source]
cluster_name[source]
nodegroup_name[source]
wait_for_completion = False[source]
waiter_delay = 30[source]
waiter_max_attempts = 40[source]
deferrable = True[source]
execute(context)[source]

创建运算符时派生。

Context 与渲染 jinja 模板时使用的字典相同。

有关更多 context,请参阅 get_template_context。

execute_complete(context, event=None)[source]
class airflow.providers.amazon.aws.operators.eks.EksDeleteFargateProfileOperator(cluster_name, fargate_profile_name, region=None, wait_for_completion=False, waiter_delay=30, waiter_max_attempts=60, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.eks.EksHook]

从 Amazon EKS 集群中删除 AWS Fargate 配置文件。

另请参阅

有关如何使用此操作符的更多信息,请参阅指南:删除 AWS Fargate 配置文件

参数:
  • cluster_name (str) – 与您的 Fargate 配置文件关联的 Amazon EKS 集群的名称。(模板化)

  • fargate_profile_name (str) – 要删除的 AWS Fargate 配置文件的名称。(模板化)

  • wait_for_completion (bool) – 如果为 True,则等待运算符完成。(default: False) (templated)

  • aws_conn_id – 用于 AWS 凭据的 Airflow 连接。(模板化) 如果此参数为 None 或空,则使用默认的 boto3 行为。如果在分布式模式下运行 Airflow 且 aws_conn_id 为 None 或空,则将使用默认的 boto3 配置(并且必须在每个工作节点上维护该配置)。

  • region_name – 连接应使用的 AWS 区域。(模板化) 如果此参数为 None 或空,则使用默认的 boto3 行为。

  • verify – 是否验证 SSL 证书。请参阅: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • waiter_delay (int) – 两次连续调用检查配置文件状态之间等待的时间(以秒为单位)

  • waiter_max_attempts (int) – 检查配置文件状态的最大尝试次数。

  • deferrable (bool) – 如果为 True,操作符将异步等待配置文件被删除。这意味着等待完成。此模式需要安装 aiobotocore 模块。(默认值: False)

aws_hook_class[source]
template_fields: collections.abc.Sequence[str][source]
cluster_name[source]
fargate_profile_name[source]
wait_for_completion = False[source]
waiter_delay = 30[source]
waiter_max_attempts = 60[source]
deferrable = True[source]
execute(context)[source]

创建运算符时派生。

Context 与渲染 jinja 模板时使用的字典相同。

有关更多 context,请参阅 get_template_context。

execute_complete(context, event=None)[source]
class airflow.providers.amazon.aws.operators.eks.EksPodOperator(cluster_name, in_cluster=False, namespace=DEFAULT_NAMESPACE_NAME, pod_name=None, aws_conn_id=DEFAULT_CONN_ID, region=None, on_finish_action=None, **kwargs)[source]

基类: airflow.providers.cncf.kubernetes.operators.pod.KubernetesPodOperator

在指定的 Amazon EKS 集群上的 Kubernetes Pod 中执行任务。

另请参阅

有关如何使用此 Operator 的更多信息,请参阅指南:在 Amazon EKS 集群上执行任务

参数:
  • cluster_name (str) – 执行任务的 Amazon EKS 集群名称。(模板化)

  • in_cluster (bool) – 如果为 True,则在集群内查找配置;如果为 False,则查找本地文件路径。

  • namespace (str) – 执行 Pod 的命名空间。(模板化)

  • pod_name (str | None) – 分配给 Pod 的唯一名称。(模板化)

  • aws_profile – 包含要使用的 AWS CLI 工具凭据的命名配置。

  • region (str | None) – 连接应使用的 AWS 区域。(模板化) 如果此参数为 None 或空,则使用默认的 boto3 行为。

  • aws_conn_id (str | None) – 用于 AWS 凭据的 Airflow 连接。(模板化)如果此参数为 None 或为空,则使用默认的 boto3 行为。如果在分布式环境中运行 Airflow 且 aws_conn_id 为 None 或为空,则将使用默认的 boto3 配置(并且必须在每个工作节点上维护此配置)。

  • on_finish_action (str | None) – 当 Pod 达到其最终状态或执行中断时要执行的操作。如果为“delete_pod”,无论其状态如何,Pod 都将被删除;如果为“delete_succeeded_pod”,则仅删除成功的 Pod。您可以设置为“keep_pod”以保留 Pod。当前默认值为 keep_pod,但这将在该 Provider 的下一个主要版本中更改。

template_fields: collections.abc.Sequence[str][source]
cluster_name[source]
in_cluster = False[source]
namespace = 'default'[source]
pod_name = None[source]
aws_conn_id = 'aws_default'[source]
region = None[source]
execute(context)[source]

根据可延迟参数异步或同步运行 Pod。

此条目是否有帮助?