| :py:mod:`airflow.providers.google.cloud.operators.functions` |
| ============================================================ |
| |
| .. py:module:: airflow.providers.google.cloud.operators.functions |
| |
| .. autoapi-nested-parse:: |
| |
| This module contains Google Cloud Functions operators. |
| |
| |
| |
| Module Contents |
| --------------- |
| |
| Classes |
| ~~~~~~~ |
| |
| .. autoapisummary:: |
| |
| airflow.providers.google.cloud.operators.functions.CloudFunctionDeployFunctionOperator |
| airflow.providers.google.cloud.operators.functions.ZipPathPreprocessor |
| airflow.providers.google.cloud.operators.functions.CloudFunctionDeleteFunctionOperator |
| airflow.providers.google.cloud.operators.functions.CloudFunctionInvokeFunctionOperator |
| |
| |
| |
| |
| Attributes |
| ~~~~~~~~~~ |
| |
| .. autoapisummary:: |
| |
| airflow.providers.google.cloud.operators.functions.CLOUD_FUNCTION_VALIDATION |
| airflow.providers.google.cloud.operators.functions.GCF_SOURCE_ARCHIVE_URL |
| airflow.providers.google.cloud.operators.functions.GCF_SOURCE_UPLOAD_URL |
| airflow.providers.google.cloud.operators.functions.SOURCE_REPOSITORY |
| airflow.providers.google.cloud.operators.functions.GCF_ZIP_PATH |
| airflow.providers.google.cloud.operators.functions.FUNCTION_NAME_PATTERN |
| airflow.providers.google.cloud.operators.functions.FUNCTION_NAME_COMPILED_PATTERN |
| |
| |
| .. py:data:: CLOUD_FUNCTION_VALIDATION |
| :annotation: :List[Dict[str, Any]] |
| |
| |
| |
| .. py:class:: CloudFunctionDeployFunctionOperator(*, location, body, project_id = None, gcp_conn_id = 'google_cloud_default', api_version = 'v1', zip_path = None, validate_body = True, impersonation_chain = None, **kwargs) |
| |
| Bases: :py:obj:`airflow.models.BaseOperator` |
| |
| Creates a function in Google Cloud Functions. |
| If a function with this name already exists, it will be updated. |
| |
| .. seealso:: |
| For more information on how to use this operator, take a look at the guide: |
| :ref:`howto/operator:CloudFunctionDeployFunctionOperator` |
| |
| :param location: Google Cloud region where the function should be created. |
| :param body: Body of the Cloud Functions definition. The body must be a |
| Cloud Functions dictionary as described in: |
| https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions |
| . Different API versions require different variants of the Cloud Functions |
| dictionary. |
| :param project_id: (Optional) Google Cloud project ID where the function |
| should be created. |
| :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud. |
| Default 'google_cloud_default'. |
| :param api_version: (Optional) API version used (for example v1 - default - or |
| v1beta1). |
| :param zip_path: Path to zip file containing source code of the function. If the path |
| is set, the sourceUploadUrl should not be specified in the body or it should |
| be empty. Then the zip file will be uploaded using the upload URL generated |
| via generateUploadUrl from the Cloud Functions API. |
| :param validate_body: If set to False, body validation is not performed. |
| :param impersonation_chain: Optional service account to impersonate using short-term |
| credentials, or chained list of accounts required to get the access_token |
| of the last account in the list, which will be impersonated in the request. |
| If set as a string, the account must grant the originating account |
| the Service Account Token Creator IAM role. |
| If set as a sequence, the identities from the list must grant |
| Service Account Token Creator IAM role to the directly preceding identity, with first |
| account from the list granting this role to the originating account (templated). |
| |
| .. py:attribute:: template_fields |
| :annotation: :Sequence[str] = ['body', 'project_id', 'location', 'gcp_conn_id', 'api_version', 'impersonation_chain'] |
| |
| |
| |
| .. py:method:: execute(self, context) |
| |
| This is the main method to derive when creating an operator. |
| Context is the same dictionary used as when rendering jinja templates. |
| |
| Refer to get_template_context for more context. |
| |
| |
| |
| .. py:data:: GCF_SOURCE_ARCHIVE_URL |
| :annotation: = sourceArchiveUrl |
| |
| |
| |
| .. py:data:: GCF_SOURCE_UPLOAD_URL |
| :annotation: = sourceUploadUrl |
| |
| |
| |
| .. py:data:: SOURCE_REPOSITORY |
| :annotation: = sourceRepository |
| |
| |
| |
| .. py:data:: GCF_ZIP_PATH |
| :annotation: = zip_path |
| |
| |
| |
| .. py:class:: ZipPathPreprocessor(body, zip_path = None) |
| |
| Pre-processes zip path parameter. |
| |
| Responsible for checking if the zip path parameter is correctly specified in |
| relation with source_code body fields. Non empty zip path parameter is special because |
| it is mutually exclusive with sourceArchiveUrl and sourceRepository body fields. |
| It is also mutually exclusive with non-empty sourceUploadUrl. |
| The pre-process modifies sourceUploadUrl body field in special way when zip_path |
| is not empty. An extra step is run when execute method is called and sourceUploadUrl |
| field value is set in the body with the value returned by generateUploadUrl Cloud |
| Function API method. |
| |
| :param body: Body passed to the create/update method calls. |
| :param zip_path: (optional) Path to zip file containing source code of the function. If the path |
| is set, the sourceUploadUrl should not be specified in the body or it should |
| be empty. Then the zip file will be uploaded using the upload URL generated |
| via generateUploadUrl from the Cloud Functions API. |
| |
| |
| .. py:attribute:: upload_function |
| :annotation: :Optional[bool] |
| |
| |
| |
| .. py:method:: should_upload_function(self) |
| |
| Checks if function source should be uploaded. |
| |
| :rtype: bool |
| |
| |
| .. py:method:: preprocess_body(self) |
| |
| Modifies sourceUploadUrl body field in special way when zip_path |
| is not empty. |
| |
| |
| |
| .. py:data:: FUNCTION_NAME_PATTERN |
| :annotation: = ^projects/[^/]+/locations/[^/]+/functions/[^/]+$ |
| |
| |
| |
| .. py:data:: FUNCTION_NAME_COMPILED_PATTERN |
| |
| |
| |
| |
| .. py:class:: CloudFunctionDeleteFunctionOperator(*, name, gcp_conn_id = 'google_cloud_default', api_version = 'v1', impersonation_chain = None, **kwargs) |
| |
| Bases: :py:obj:`airflow.models.BaseOperator` |
| |
| Deletes the specified function from Google Cloud Functions. |
| |
| .. seealso:: |
| For more information on how to use this operator, take a look at the guide: |
| :ref:`howto/operator:CloudFunctionDeleteFunctionOperator` |
| |
| :param name: A fully-qualified function name, matching |
| the pattern: `^projects/[^/]+/locations/[^/]+/functions/[^/]+$` |
| :param gcp_conn_id: The connection ID to use to connect to Google Cloud. |
| :param api_version: API version used (for example v1 or v1beta1). |
| :param impersonation_chain: Optional service account to impersonate using short-term |
| credentials, or chained list of accounts required to get the access_token |
| of the last account in the list, which will be impersonated in the request. |
| If set as a string, the account must grant the originating account |
| the Service Account Token Creator IAM role. |
| If set as a sequence, the identities from the list must grant |
| Service Account Token Creator IAM role to the directly preceding identity, with first |
| account from the list granting this role to the originating account (templated). |
| |
| .. py:attribute:: template_fields |
| :annotation: :Sequence[str] = ['name', 'gcp_conn_id', 'api_version', 'impersonation_chain'] |
| |
| |
| |
| .. py:method:: execute(self, context) |
| |
| This is the main method to derive when creating an operator. |
| Context is the same dictionary used as when rendering jinja templates. |
| |
| Refer to get_template_context for more context. |
| |
| |
| |
| .. py:class:: CloudFunctionInvokeFunctionOperator(*, function_id, input_data, location, project_id = None, gcp_conn_id = 'google_cloud_default', api_version = 'v1', impersonation_chain = None, **kwargs) |
| |
| Bases: :py:obj:`airflow.models.BaseOperator` |
| |
| Invokes a deployed Cloud Function. To be used for testing |
| purposes as very limited traffic is allowed. |
| |
| .. seealso:: |
| For more information on how to use this operator, take a look at the guide: |
| :ref:`howto/operator:CloudFunctionDeployFunctionOperator` |
| |
| :param function_id: ID of the function to be called |
| :param input_data: Input to be passed to the function |
| :param location: The location where the function is located. |
| :param project_id: Optional, Google Cloud Project project_id where the function belongs. |
| If set to None or missing, the default project_id from the Google Cloud connection is used. |
| :param impersonation_chain: Optional service account to impersonate using short-term |
| credentials, or chained list of accounts required to get the access_token |
| of the last account in the list, which will be impersonated in the request. |
| If set as a string, the account must grant the originating account |
| the Service Account Token Creator IAM role. |
| If set as a sequence, the identities from the list must grant |
| Service Account Token Creator IAM role to the directly preceding identity, with first |
| account from the list granting this role to the originating account (templated). |
| |
| :return: None |
| |
| .. py:attribute:: template_fields |
| :annotation: :Sequence[str] = ['function_id', 'input_data', 'location', 'project_id', 'impersonation_chain'] |
| |
| |
| |
| .. py:method:: execute(self, context) |
| |
| This is the main method to derive when creating an operator. |
| Context is the same dictionary used as when rendering jinja templates. |
| |
| Refer to get_template_context for more context. |
| |
| |
| |