airflow.providers.google.cloud.operators.functions

此模組包含 Google Cloud Functions 運算子。

模組內容

類別

CloudFunctionDeployFunctionOperator

在 Google Cloud Functions 中建立或更新函數。

ZipPathPreprocessor

預先處理 zip 路徑參數。

CloudFunctionDeleteFunctionOperator

從 Google Cloud Functions 刪除指定的函數。

CloudFunctionInvokeFunctionOperator

調用已部署的 Cloud Function。用於測試目的,因為僅允許非常少的流量。

屬性

CLOUD_FUNCTION_VALIDATION

GCF_SOURCE_ARCHIVE_URL

GCF_SOURCE_UPLOAD_URL

SOURCE_REPOSITORY

GCF_ZIP_PATH

FUNCTION_NAME_PATTERN

FUNCTION_NAME_COMPILED_PATTERN

airflow.providers.google.cloud.operators.functions.CLOUD_FUNCTION_VALIDATION: list[dict[str, Any]][原始碼]
class airflow.providers.google.cloud.operators.functions.CloudFunctionDeployFunctionOperator(*, location, body, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1', zip_path=None, validate_body=True, impersonation_chain=None, **kwargs)[原始碼]

基底類別: airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator

在 Google Cloud Functions 中建立或更新函數。

參閱

有關如何使用此運算子的更多資訊,請查看指南: CloudFunctionDeployFunctionOperator

參數
  • location (str) – 函數應建立所在的 Google Cloud 區域。

  • body (dict) – Cloud Functions 定義的本文。本文必須是 Cloud Functions 字典,如以下連結所述: https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions 。不同的 API 版本需要不同變體的 Cloud Functions 字典。

  • project_id (str) – (可選) 函數應建立所在的 Google Cloud 專案 ID。

  • gcp_conn_id (str) – (可選) 用於連線至 Google Cloud 的連線 ID。預設值為 ‘google_cloud_default’。

  • api_version (str) – (可選) 使用的 API 版本 (例如 v1 - 預設值 - 或 v1beta1)。

  • zip_path (str | None) – 包含函數原始碼的 zip 檔案路徑。如果設定了路徑,則不應在本文中指定 sourceUploadUrl,或應為空。然後將使用從 Cloud Functions API 的 generateUploadUrl 產生的上傳 URL 來上傳 zip 檔案。

  • validate_body (bool) – 如果設定為 False,則不執行本文驗證。

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬,或取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬。如果設定為字串,則該帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則列表中的身分必須將「服務帳戶權杖建立者」IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶 (可使用範本)。

template_fields: collections.abc.Sequence[str] = ('body', 'project_id', 'location', 'gcp_conn_id', 'api_version', 'impersonation_chain')[原始碼]
execute(context)[原始碼]

在建立運算子時衍生。

Context 是與呈現 jinja 範本時使用的相同字典。

有關更多上下文,請參閱 get_template_context。

airflow.providers.google.cloud.operators.functions.GCF_SOURCE_ARCHIVE_URL = 'sourceArchiveUrl'[原始碼]
airflow.providers.google.cloud.operators.functions.GCF_SOURCE_UPLOAD_URL = 'sourceUploadUrl'[原始碼]
airflow.providers.google.cloud.operators.functions.SOURCE_REPOSITORY = 'sourceRepository'[原始碼]
airflow.providers.google.cloud.operators.functions.GCF_ZIP_PATH = 'zip_path'[原始碼]
class airflow.providers.google.cloud.operators.functions.ZipPathPreprocessor(body, zip_path=None)[原始碼]

預先處理 zip 路徑參數。

負責檢查 zip 路徑參數是否與 source_code 本文字段正確指定。非空的 zip 路徑參數很特別,因為它與 sourceArchiveUrl 和 sourceRepository 本文字段互斥。它也與非空的 sourceUploadUrl 互斥。當 zip_path 不為空時,預處理會以特殊方式修改 sourceUploadUrl 本文字段。當呼叫 execute 方法並在本體中設定由 generateUploadUrl Cloud Function API 方法傳回的值時,會執行額外步驟。

參數
  • body (dict) – 傳遞給 create/update 方法呼叫的本文。

  • zip_path (str | None) – (可選) 包含函數原始碼的 zip 檔案路徑。如果設定了路徑,則不應在本文中指定 sourceUploadUrl,或應為空。然後將使用從 Cloud Functions API 的 generateUploadUrl 產生的上傳 URL 來上傳 zip 檔案。

upload_function: bool | None[原始碼]
should_upload_function()[原始碼]

檢查是否應上傳函數原始碼。

preprocess_body()[原始碼]

當 zip_path 不為空時,以特殊方式修改 sourceUploadUrl 本文字段。

airflow.providers.google.cloud.operators.functions.FUNCTION_NAME_PATTERN = '^projects/[^/]+/locations/[^/]+/functions/[^/]+$'[原始碼]
airflow.providers.google.cloud.operators.functions.FUNCTION_NAME_COMPILED_PATTERN[原始碼]
class airflow.providers.google.cloud.operators.functions.CloudFunctionDeleteFunctionOperator(*, name, gcp_conn_id='google_cloud_default', api_version='v1', impersonation_chain=None, project_id=PROVIDE_PROJECT_ID, **kwargs)[原始碼]

基底類別: airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator

從 Google Cloud Functions 刪除指定的函數。

參閱

有關如何使用此運算子的更多資訊,請查看指南: CloudFunctionDeleteFunctionOperator

參數
  • name (str) – 完整函數名稱,符合以下模式: ^projects/[^/]+/locations/[^/]+/functions/[^/]+$

  • gcp_conn_id (str) – 用於連線至 Google Cloud 的連線 ID。

  • api_version (str) – 使用的 API 版本 (例如 v1 或 v1beta1)。

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬,或取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬。如果設定為字串,則該帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則列表中的身分必須將「服務帳戶權杖建立者」IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶 (可使用範本)。

template_fields: collections.abc.Sequence[str] = ('name', 'gcp_conn_id', 'api_version', 'impersonation_chain')[原始碼]
execute(context)[原始碼]

在建立運算子時衍生。

Context 是與呈現 jinja 範本時使用的相同字典。

有關更多上下文,請參閱 get_template_context。

class airflow.providers.google.cloud.operators.functions.CloudFunctionInvokeFunctionOperator(*, function_id, input_data, location, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1', impersonation_chain=None, **kwargs)[原始碼]

基底類別: airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator

調用已部署的 Cloud Function。用於測試目的,因為僅允許非常少的流量。

參閱

有關如何使用此運算子的更多資訊,請查看指南: CloudFunctionDeployFunctionOperator

參數
  • function_id (str) – 要呼叫的函數 ID

  • input_data (dict) – 傳遞至函數的輸入

  • location (str) – 函數所在的位置。

  • project_id (str) – (可選) Google Cloud 專案 project_id,函數屬於該專案。如果設定為 None 或遺失,則使用來自 Google Cloud 連線的預設 project_id。

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務帳戶,用於使用短期憑證模擬,或取得列表中最後一個帳戶的 access_token 所需的鏈式帳戶列表,該帳戶將在請求中被模擬。如果設定為字串,則該帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則列表中的身分必須將「服務帳戶權杖建立者」IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶 (可使用範本)。

回傳

None

template_fields: collections.abc.Sequence[str] = ('function_id', 'input_data', 'location', 'project_id', 'impersonation_chain')[原始碼]
execute(context)[原始碼]

在建立運算子時衍生。

Context 是與呈現 jinja 範本時使用的相同字典。

有關更多上下文,請參閱 get_template_context。

此條目是否有幫助?