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。

此條目是否有幫助?