airflow.providers.google.cloud.hooks.compute

本模块包含 Google Compute Engine Hook。

属性

TIME_TO_SLEEP_IN_SECONDS

GceOperationStatus

包含 GCE 操作状态的类。

ComputeEngineHook

用于 Google Compute Engine API 的 Hook。

模块内容

airflow.providers.google.cloud.hooks.compute.TIME_TO_SLEEP_IN_SECONDS = 1[源码]
class airflow.providers.google.cloud.hooks.compute.GceOperationStatus[源码]

包含 GCE 操作状态的类。

PENDING = 'PENDING'[源码]
RUNNING = 'RUNNING'[源码]
DONE = 'DONE'[源码]
class airflow.providers.google.cloud.hooks.compute.ComputeEngineHook(api_version='v1', gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[源码]

Bases: airflow.providers.google.common.hooks.base_google.GoogleBaseHook

用于 Google Compute Engine API 的 Hook。

在钩子中使用 project_id 的所有方法必须使用关键字参数而非位置参数调用。

api_version = 'v1'[源码]
get_conn()[源码]

检索 Google Compute Engine 的连接。

返回:

Google Compute Engine 服务对象

返回类型:

dict

get_compute_instance_template_client()[源码]

返回 Compute Engine 实例模板客户端。

get_compute_instance_client()[源码]

返回 Compute Engine 实例客户端。

get_compute_instance_group_managers_client()[源码]

返回 Compute Engine 实例组管理器客户端。

insert_instance_template(body, request_id=None, project_id=PROVIDE_PROJECT_ID, retry=None, timeout=None, metadata=())[源码]

使用指定的 body 创建实例模板。

必须使用关键字参数调用,而非位置参数。

参数:
  • body (dict) – 以对象形式表示的实例模板。

  • request_id (str | None) – 您可以添加唯一的 request_id 以实现完全幂等性(例如,当客户端调用超时时,使用相同的 request_id 重复请求将不会再次创建新的实例模板)。它应该采用 RFC 4122 中定义的 UUID 格式。

  • project_id (str) – Compute Engine 实例模板所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

delete_instance_template(resource_id, request_id=None, project_id=PROVIDE_PROJECT_ID, retry=None, timeout=None, metadata=())[源码]

删除实例模板。

删除实例模板是永久性的,且无法撤销。无法删除已被托管实例组使用的模板。必须使用关键字参数调用,而非位置参数。

参数:
  • resource_id (str) – Compute Engine 实例模板资源的名称。

  • request_id (str | None) – 您可以添加唯一的 request_id 以实现完全幂等性(例如,当客户端调用超时时,使用相同的 request_id 重复请求将不会再次创建新的实例模板)。它应该采用 RFC 4122 中定义的 UUID 格式。

  • project_id (str) – Compute Engine 实例模板所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

get_instance_template(resource_id, project_id=PROVIDE_PROJECT_ID, retry=None, timeout=None, metadata=())[源码]

通过 project_id 和 resource_id 检索实例模板。

必须使用关键字参数调用,而非位置参数。

参数:
  • resource_id (str) – 实例模板的名称。

  • project_id (str) – Compute Engine 实例模板所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

返回:

根据 https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates 以对象形式表示的实例模板。

返回类型:

对象

insert_instance(body, zone, project_id=PROVIDE_PROJECT_ID, request_id=None, source_instance_template=None, retry=None, timeout=None, metadata=())[源码]

使用指定的 body 创建实例。

必须使用关键字参数调用,而非位置参数。

参数:
  • body (dict) – 以对象形式表示的实例。至少应包含 ‘name’、‘machine_type’、‘disks’ 和 ‘network_interfaces’ 字段,但不包含 ‘zone’ 字段,因为该字段将在 ‘zone’ 参数中指定。可以是完整或部分 URL,示例如下:1. “machine_type”: “projects/your-project-name/zones/your-zone/machineTypes/your-machine-type” 2. “source_image”: “projects/your-project-name/zones/your-zone/diskTypes/your-disk-type” 3. “subnetwork”: “projects/your-project-name/regions/your-region/subnetworks/your-subnetwork”

  • zone (str) – 实例所在的 Google Cloud 可用区

  • project_id (str) – Compute Engine 实例模板所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • source_instance_template (str | None) – 创建新实例时用作基础的现有实例模板。指定后,在 ‘body’ 参数中创建新实例时,只需提供新实例的名称作为输入参数。所有其他参数将按实例模板中指定的传给实例。可以是完整或部分 URL,示例如下:1. “https://www.googleapis.com/compute/v1/projects/your-project/global/instanceTemplates/temp” 2. “projects/your-project/global/instanceTemplates/temp” 3. “global/instanceTemplates/temp”

  • request_id (str | None) – 您可以添加唯一的 request_id 以实现完全幂等性(例如,当客户端调用超时时,使用相同的 request_id 重复请求将不会再次创建新的实例模板)。它应该采用 RFC 4122 中定义的 UUID 格式。

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

get_instance(resource_id, zone, project_id=PROVIDE_PROJECT_ID, retry=None, timeout=None, metadata=())[源码]

通过 project_id 和 resource_id 检索实例。

必须使用关键字参数调用,而非位置参数。

参数:
  • resource_id (str) – 实例的名称

  • zone (str) – 实例所在的 Google Cloud 可用区

  • project_id (str) – Compute Engine 实例所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

返回:

根据 https://cloud.google.com/compute/docs/reference/rest/v1/instances 以对象形式表示的实例

返回类型:

对象

delete_instance(resource_id, zone, project_id=PROVIDE_PROJECT_ID, request_id=None, retry=None, timeout=None, metadata=())[源码]

永久且不可撤销地删除实例。

无法删除已被托管实例组使用的实例。必须使用关键字参数调用,而非位置参数。

参数:
  • resource_id (str) – Compute Engine 实例模板资源的名称。

  • request_id (str | None) – 您可以添加唯一的 request_id 以实现完全幂等性(例如,当客户端调用超时时,使用相同的 request_id 重复请求将不会再次创建新的实例模板)。它应该采用 RFC 4122 中定义的 UUID 格式。

  • project_id (str) – Compute Engine 实例模板所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • zone (str) – 实例所在的 Google Cloud 可用区

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

start_instance(zone, resource_id, project_id)[源码]

启动由 project_id、zone 和 resource_id 定义的现有实例。

必须使用关键字参数调用,而非位置参数。

参数:
  • zone (str) – 实例所在的 Google Cloud 可用区

  • resource_id (str) – Compute Engine 实例资源的名称

  • project_id (str) – 可选,Compute Engine 实例所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

返回:

返回类型:

stop_instance(zone, resource_id, project_id)[源码]

停止由 project_id、zone 和 resource_id 定义的实例。

必须使用关键字参数调用,而非位置参数。

参数:
  • zone (str) – 实例所在的 Google Cloud 可用区

  • resource_id (str) – Compute Engine 实例资源的名称

  • project_id (str) – 可选,Compute Engine 实例所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

返回:

返回类型:

set_machine_type(zone, resource_id, body, project_id)[源码]

设置由 project_id、zone 和 resource_id 定义的实例的机器类型。

必须使用关键字参数调用,而非位置参数。

参数:
返回:

返回类型:

insert_instance_group_manager(body, zone, project_id=PROVIDE_PROJECT_ID, request_id=None, retry=None, timeout=None, metadata=())[源码]

使用指定的 body 创建实例组管理器。

创建组后,组内的实例将使用指定的实例模板进行创建。必须使用关键字参数调用,而非位置参数。

参数:
  • body (dict) – 以对象形式表示的实例组管理器。

  • request_id (str | None) – 您可以添加唯一的 request_id 以实现完全幂等性(例如,当客户端调用超时时,使用相同的 request_id 重复请求将不会再次创建新的实例组管理器)。它应该采用 RFC 4122 中定义的 UUID 格式。

  • project_id (str) – Compute Engine 实例组管理器所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • zone (str) – 实例所在的 Google Cloud 可用区

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

get_instance_group_manager(resource_id, zone, project_id=PROVIDE_PROJECT_ID, retry=None, timeout=None, metadata=())[源码]

通过 project_id、zone 和 resource_id 检索实例组管理器。

必须使用关键字参数调用,而非位置参数。

参数:
  • resource_id (str) – 托管实例组的名称

  • zone (str) – 实例组管理器所在的 Google Cloud 可用区

  • project_id (str) – Compute Engine 实例组管理器所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

返回:

根据 https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagers 以对象形式表示的实例组管理器

返回类型:

对象

delete_instance_group_manager(resource_id, zone, project_id=PROVIDE_PROJECT_ID, request_id=None, retry=None, timeout=None, metadata=())[源码]

永久且不可撤销地删除实例组管理器。

必须使用关键字参数调用,而非位置参数。

参数:
  • resource_id (str) – Compute Engine 实例组管理器资源的名称。

  • request_id (str | None) – 您可以添加唯一的 request_id 以实现完全幂等性(例如,当客户端调用超时时,使用相同的 request_id 重复请求将不会再次创建新的实例模板)。它应该采用 RFC 4122 中定义的 UUID 格式。

  • project_id (str) – Compute Engine 实例组管理器所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • zone (str) – 实例组管理器所在的 Google Cloud 可用区

  • retry (google.api_core.retry.Retry | None) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(秒)。注意,如果指定了 retry,则超时适用于每次单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给该方法的附加元数据。

patch_instance_group_manager(zone, resource_id, body, project_id, request_id=None)[源码]

使用指定的 body 修补实例组管理器。

必须使用关键字参数调用,而非位置参数。

参数:
  • zone (str) – 实例组管理器所在的 Google Cloud 可用区

  • resource_id (str) – 实例组管理器的名称

  • body (dict) – 根据 https://cloud.google.com/compute/docs/reference/rest/beta/instanceTemplates/patch 以 json-merge-patch 对象形式表示的实例组管理器

  • request_id (str | None) – 可选,您可以添加唯一的 request_id 以实现完全幂等性(例如,当客户端调用超时时,使用相同的 request_id 重复请求将不会再次创建新的实例模板)。它应该采用 RFC 4122 中定义的 UUID 格式。

  • project_id (str) – 可选,Compute Engine 实例所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

返回:

返回类型:

get_instance_info(zone, resource_id, project_id)[源码]

获取实例信息。

参数:
  • zone (str) – 实例组管理器所在的 Google Cloud 可用区

  • resource_id (str) – 实例组管理器的名称

  • project_id (str) – 可选,Compute Engine 实例所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

get_instance_address(zone, resource_id, project_id=PROVIDE_PROJECT_ID, use_internal_ip=False)[源码]

返回关联到实例的网络地址。

参数:
  • zone (str) – 实例组管理器所在的 Google Cloud 可用区

  • resource_id (str) – 实例组管理器的名称

  • project_id (str) – 可选,Compute Engine 实例所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

  • use_internal_ip (bool) – 如果为 true,则返回私有 IP 地址。

set_instance_metadata(zone, resource_id, metadata, project_id)[源码]

设置实例元数据。

参数:
  • zone (str) – 实例组管理器所在的 Google Cloud 可用区

  • resource_id (str) – 实例组管理器的名称

  • metadata (dict[str, str]) – 新的实例元数据。

  • project_id (str) – 可选,Compute Engine 实例所在的 Google Cloud 项目 ID。如果设置为 None 或缺失,则使用 Google Cloud 连接中的默认 project_id。

此条目是否有帮助?