| .. Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| .. http://www.apache.org/licenses/LICENSE-2.0 |
| |
| .. Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| ============== |
| Amazon AppFlow |
| ============== |
| |
| `Amazon AppFlow <https://aws.amazon.com/appflow/>`__ is a fully managed integration service |
| that enables you to securely transfer data between Software-as-a-Service (SaaS) applications |
| like Salesforce, SAP, Zendesk, Slack, and ServiceNow, and AWS services like Amazon S3 and |
| Amazon Redshift, in just a few clicks. With AppFlow, you can run data flows at enterprise |
| scale at the frequency you choose - on a schedule, in response to a business event, or on |
| demand. You can configure data transformation capabilities like filtering and validation to |
| generate rich, ready-to-use data as part of the flow itself, without additional steps. |
| AppFlow automatically encrypts data in motion, and allows users to restrict data from |
| flowing over the public Internet for SaaS applications that are integrated with |
| AWS PrivateLink, reducing exposure to security threats. |
| |
| Prerequisite Tasks |
| ------------------ |
| |
| .. include:: _partials/prerequisite_tasks.rst |
| |
| Operators |
| --------- |
| |
| Run Flow |
| ======== |
| |
| To run an AppFlow flow keeping all filters as is, use: |
| :class:`~airflow.providers.amazon.aws.operators.appflow.AppflowRunOperator`. |
| |
| .. exampleinclude:: /../../airflow/providers/amazon/aws/example_dags/example_appflow.py |
| :language: python |
| :dedent: 4 |
| :start-after: [START howto_operator_appflow_run] |
| :end-before: [END howto_operator_appflow_run] |
| |
| .. note:: |
| Supported sources: Salesforce, Zendesk |
| |
| .. _howto/operator:AppflowRunOperator: |
| |
| Run Flow Full |
| ============= |
| |
| To run an AppFlow flow removing all filters, use: |
| :class:`~airflow.providers.amazon.aws.operators.appflow.AppflowRunFullOperator`. |
| |
| .. exampleinclude:: /../../airflow/providers/amazon/aws/example_dags/example_appflow.py |
| :language: python |
| :dedent: 4 |
| :start-after: [START howto_operator_appflow_run_full] |
| :end-before: [END howto_operator_appflow_run_full] |
| |
| .. note:: |
| Supported sources: Salesforce, Zendesk |
| |
| .. _howto/operator:AppflowRunFullOperator: |
| |
| Run Flow Daily |
| ============== |
| |
| To run an AppFlow flow filtering daily records, use: |
| :class:`~airflow.providers.amazon.aws.operators.appflow.AppflowRunDailyOperator`. |
| |
| .. exampleinclude:: /../../airflow/providers/amazon/aws/example_dags/example_appflow.py |
| :language: python |
| :dedent: 4 |
| :start-after: [START howto_operator_appflow_run_daily] |
| :end-before: [END howto_operator_appflow_run_daily] |
| |
| .. note:: |
| Supported sources: Salesforce |
| |
| .. _howto/operator:AppflowRunDailyOperator: |
| |
| Run Flow Before |
| =============== |
| |
| To run an AppFlow flow filtering future records and selecting the past ones, use: |
| :class:`~airflow.providers.amazon.aws.operators.appflow.AppflowRunBeforeOperator`. |
| |
| .. exampleinclude:: /../../airflow/providers/amazon/aws/example_dags/example_appflow.py |
| :language: python |
| :dedent: 4 |
| :start-after: [START howto_operator_appflow_run_before] |
| :end-before: [END howto_operator_appflow_run_before] |
| |
| .. note:: |
| Supported sources: Salesforce |
| |
| .. _howto/operator:AppflowRunBeforeOperator: |
| |
| Run Flow After |
| ============== |
| |
| To run an AppFlow flow filtering past records and selecting the future ones, use: |
| :class:`~airflow.providers.amazon.aws.operators.appflow.AppflowRunAfterOperator`. |
| |
| .. exampleinclude:: /../../airflow/providers/amazon/aws/example_dags/example_appflow.py |
| :language: python |
| :dedent: 4 |
| :start-after: [START howto_operator_appflow_run_after] |
| :end-before: [END howto_operator_appflow_run_after] |
| |
| .. note:: |
| Supported sources: Salesforce, Zendesk |
| |
| .. _howto/operator:AppflowRunAfterOperator: |
| |
| Skipping Tasks For Empty Runs |
| ============================= |
| |
| To skip tasks when some AppFlow run return zero records, use: |
| :class:`~airflow.providers.amazon.aws.operators.appflow.AppflowRecordsShortCircuitOperator`. |
| |
| .. exampleinclude:: /../../airflow/providers/amazon/aws/example_dags/example_appflow.py |
| :language: python |
| :dedent: 4 |
| :start-after: [START howto_operator_appflow_shortcircuit] |
| :end-before: [END howto_operator_appflow_shortcircuit] |
| |
| .. note:: |
| Supported sources: Salesforce, Zendesk |
| |
| .. _howto/operator:AppflowRecordsShortCircuitOperator: |
| |
| Reference |
| --------- |
| |
| * `AWS boto3 library documentation for Amazon AppFlow <https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/appflow.html>`__ |