airflow.providers.google.cloud.operators.functions

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

屬性

CLOUD_FUNCTION_VALIDATION

GCF_SOURCE_ARCHIVE_URL

GCF_SOURCE_UPLOAD_URL

SOURCE_REPOSITORY

GCF_ZIP_PATH

FUNCTION_NAME_PATTERN

FUNCTION_NAME_COMPILED_PATTERN

CloudFunctionDeployFunctionOperator

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

ZipPathPreprocessor

預處理 zip_path 引數。

CloudFunctionDeleteFunctionOperator

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

CloudFunctionInvokeFunctionOperator

呼叫已部署的 Cloud Function。由於允許的流量非常有限,此運算子用於測試目的。

模組內容

airflow.providers.google.cloud.operators.functions.CLOUD_FUNCTION_VALIDATION: list[dict[str, Any]][source]
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)[source]

基類: 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 的鏈式賬號列表,最後一個賬號將在請求中被模擬。如果設定為字串,該賬號必須授予原始賬號 Service Account Token Creator IAM 角色。如果設定為序列,列表中的身份必須向緊鄰的前一個身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予原始賬號(模板化)。

template_fields: collections.abc.Sequence[str] = ('body', 'project_id', 'location', 'gcp_conn_id', 'api_version', 'impersonation_chain')[source]
project_id = None[source]
location[source]
body[source]
gcp_conn_id = 'google_cloud_default'[source]
api_version = 'v1'[source]
zip_path = None[source]
zip_path_preprocessor[source]
impersonation_chain = None[source]
execute(context)[source]

在建立運算子時派生此方法。

上下文與渲染 Jinja 模板時使用的字典相同。

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

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

預處理 zip_path 引數。

負責檢查 zip_path 引數與 source_code 主體欄位是否正確指定。非空的 zip_path 引數很特別,因為它與 sourceArchiveUrl 和 sourceRepository 主體欄位互斥。它也與非空的 sourceUploadUrl 互斥。當 zip_path 非空時,預處理會以特殊方式修改 sourceUploadUrl 主體欄位。當呼叫 execute 方法並且 sourceUploadUrl 欄位值在主體中設定為 generateUploadUrl Cloud Function API 方法返回的值時,會執行一個額外步驟。

引數:
  • body (dict) – 傳遞給 create/update 方法呼叫的主體。

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

upload_function: bool | None = None[source]
body[source]
zip_path = None[source]
should_upload_function()[source]

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

preprocess_body()[source]

當 zip_path 非空時,以特殊方式修改 sourceUploadUrl 主體欄位。

airflow.providers.google.cloud.operators.functions.FUNCTION_NAME_PATTERN = '^projects/[^/]+/locations/[^/]+/functions/[^/]+$'[source]
airflow.providers.google.cloud.operators.functions.FUNCTION_NAME_COMPILED_PATTERN[source]
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)[source]

基類: 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 的鏈式賬號列表,最後一個賬號將在請求中被模擬。如果設定為字串,該賬號必須授予原始賬號 Service Account Token Creator IAM 角色。如果設定為序列,列表中的身份必須向緊鄰的前一個身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予原始賬號(模板化)。

template_fields: collections.abc.Sequence[str] = ('name', 'gcp_conn_id', 'api_version', 'impersonation_chain')[source]
name[source]
project_id = None[source]
gcp_conn_id = 'google_cloud_default'[source]
api_version = 'v1'[source]
impersonation_chain = None[source]
execute(context)[source]

在建立運算子時派生此方法。

上下文與渲染 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)[source]

基類: 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 project_id。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑證進行模擬,或者用於獲取列表中最後一個賬號的 access_token 的鏈式賬號列表,最後一個賬號將在請求中被模擬。如果設定為字串,該賬號必須授予原始賬號 Service Account Token Creator IAM 角色。如果設定為序列,列表中的身份必須向緊鄰的前一個身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予原始賬號(模板化)。

返回:

None

template_fields: collections.abc.Sequence[str] = ('function_id', 'input_data', 'location', 'project_id', 'impersonation_chain')[source]
function_id[source]
input_data[source]
location[source]
project_id = None[source]
gcp_conn_id = 'google_cloud_default'[source]
api_version = 'v1'[source]
impersonation_chain = None[source]
execute(context)[source]

在建立運算子時派生此方法。

上下文與渲染 Jinja 模板時使用的字典相同。

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

此條目是否有幫助?