| :mod:`airflow.contrib.operators.gcp_function_operator` |
| ====================================================== |
| |
| .. py:module:: airflow.contrib.operators.gcp_function_operator |
| |
| |
| Module Contents |
| --------------- |
| |
| .. function:: _validate_available_memory_in_mb(value) |
| |
| .. function:: _validate_max_instances(value) |
| |
| .. data:: CLOUD_FUNCTION_VALIDATION |
| |
| |
| |
| |
| .. py:class:: GcfFunctionDeployOperator(location, body, project_id=None, gcp_conn_id='google_cloud_default', api_version='v1', zip_path=None, validate_body=True, *args, **kwargs) |
| |
| Bases: :class:`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:GcfFunctionDeployOperator` |
| |
| :param location: Google Cloud Platform region where the function should be created. |
| :type location: str |
| :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. |
| :type body: dict or google.cloud.functions.v1.CloudFunction |
| :param project_id: (Optional) Google Cloud Platform project ID where the function |
| should be created. |
| :type project_id: str |
| :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud |
| Platform - default 'google_cloud_default'. |
| :type gcp_conn_id: str |
| :param api_version: (Optional) API version used (for example v1 - default - or |
| v1beta1). |
| :type api_version: str |
| :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. |
| :type zip_path: str |
| :param validate_body: If set to False, body validation is not performed. |
| :type validate_body: bool |
| |
| .. attribute:: template_fields |
| :annotation: = ['project_id', 'location', 'gcp_conn_id', 'api_version'] |
| |
| |
| |
| |
| .. method:: _validate_inputs(self) |
| |
| |
| |
| |
| .. method:: _validate_all_body_fields(self) |
| |
| |
| |
| |
| .. method:: _create_new_function(self) |
| |
| |
| |
| |
| .. method:: _update_function(self) |
| |
| |
| |
| |
| .. method:: _check_if_function_exists(self) |
| |
| |
| |
| |
| .. method:: _upload_source_code(self) |
| |
| |
| |
| |
| .. method:: _set_airflow_version_label(self) |
| |
| |
| |
| |
| .. method:: execute(self, context) |
| |
| |
| |
| |
| .. data:: GCF_SOURCE_ARCHIVE_URL |
| :annotation: = sourceArchiveUrl |
| |
| |
| |
| .. data:: GCF_SOURCE_UPLOAD_URL |
| :annotation: = sourceUploadUrl |
| |
| |
| |
| .. data:: SOURCE_REPOSITORY |
| :annotation: = sourceRepository |
| |
| |
| |
| .. data:: GCF_ZIP_PATH |
| :annotation: = zip_path |
| |
| |
| |
| .. py:class:: ZipPathPreprocessor(body, zip_path) |
| |
| 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. |
| :type body: dict |
| :param zip_path: path to the zip file containing source code. |
| :type body: dict |
| |
| .. attribute:: upload_function |
| |
| |
| |
| |
| |
| .. staticmethod:: _is_present_and_empty(dictionary, field) |
| |
| |
| |
| |
| .. method:: _verify_upload_url_and_no_zip_path(self) |
| |
| |
| |
| |
| .. method:: _verify_upload_url_and_zip_path(self) |
| |
| |
| |
| |
| .. method:: _verify_archive_url_and_zip_path(self) |
| |
| |
| |
| |
| .. method:: should_upload_function(self) |
| |
| |
| |
| |
| .. method:: preprocess_body(self) |
| |
| |
| |
| |
| .. data:: FUNCTION_NAME_PATTERN |
| :annotation: = ^projects/[^/]+/locations/[^/]+/functions/[^/]+$ |
| |
| |
| |
| .. data:: FUNCTION_NAME_COMPILED_PATTERN |
| |
| |
| |
| |
| .. py:class:: GcfFunctionDeleteOperator(name, gcp_conn_id='google_cloud_default', api_version='v1', *args, **kwargs) |
| |
| Bases: :class:`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:GcfFunctionDeleteOperator` |
| |
| :param name: A fully-qualified function name, matching |
| the pattern: `^projects/[^/]+/locations/[^/]+/functions/[^/]+$` |
| :type name: str |
| :param gcp_conn_id: The connection ID to use to connect to Google Cloud Platform. |
| :type gcp_conn_id: str |
| :param api_version: API version used (for example v1 or v1beta1). |
| :type api_version: str |
| |
| .. attribute:: template_fields |
| :annotation: = ['name', 'gcp_conn_id', 'api_version'] |
| |
| |
| |
| |
| .. method:: _validate_inputs(self) |
| |
| |
| |
| |
| .. method:: execute(self, context) |
| |
| |
| |
| |