Flow
The Flow resource lets you manage AWS AppFlow Flows for transferring data between various services securely and efficiently.
Minimal Example
Section titled “Minimal Example”Create a simple flow with required properties and a description.
import AWS from "alchemy/aws/control";
const simpleFlow = await AWS.AppFlow.Flow("simpleFlow", { FlowName: "CustomerDataFlow", Description: "A flow to transfer customer data from Salesforce to S3", Tasks: [ { Source: { ConnectorType: "Salesforce", Object: "Contact" }, Destination: { ConnectorType: "S3", BucketName: "customer-data-bucket", BucketPrefix: "salesforce/" } } ], TriggerConfig: { TriggerType: "OnDemand" }, SourceFlowConfig: { ConnectorType: "Salesforce", Object: "Contact", SourceConnectorProperties: { EnableDynamicFieldUpdate: true } }, DestinationFlowConfigList: [ { ConnectorType: "S3", DestinationConnectorProperties: { BucketName: "customer-data-bucket", BucketPrefix: "salesforce/" } } ]});
Advanced Configuration
Section titled “Advanced Configuration”Configure a flow with custom KMS encryption and additional tasks for data transformation.
const advancedFlow = await AWS.AppFlow.Flow("advancedFlow", { FlowName: "OrderDataFlow", Description: "A flow to transfer order data from Shopify to Redshift", KMSArn: "arn:aws:kms:us-east-1:123456789012:key/abcd-1234-efgh-5678", Tasks: [ { Source: { ConnectorType: "Shopify", Object: "Order" }, Destination: { ConnectorType: "Redshift", ClusterIdentifier: "my-redshift-cluster", Database: "orders", Table: "shopify_orders" }, TaskType: "Filter" }, { Source: { ConnectorType: "Shopify", Object: "Order" }, Destination: { ConnectorType: "S3", BucketName: "orders-data-bucket", BucketPrefix: "shopify/" }, TaskType: "Map" } ], TriggerConfig: { TriggerType: "Scheduled", Schedule: "rate(5 minutes)" }, SourceFlowConfig: { ConnectorType: "Shopify", Object: "Order", SourceConnectorProperties: { EnableDynamicFieldUpdate: false } }, DestinationFlowConfigList: [ { ConnectorType: "Redshift", DestinationConnectorProperties: { ClusterIdentifier: "my-redshift-cluster", Database: "orders", Table: "shopify_orders" } }, { ConnectorType: "S3", DestinationConnectorProperties: { BucketName: "orders-data-bucket", BucketPrefix: "shopify/" } } ]});
Using Tags for Organization
Section titled “Using Tags for Organization”Create a flow with tagging for better resource management.
const taggedFlow = await AWS.AppFlow.Flow("taggedFlow", { FlowName: "InventoryDataFlow", Description: "A flow to transfer inventory data from Dynamics 365 to S3", Tasks: [ { Source: { ConnectorType: "Dynamics365", Object: "ProductInventory" }, Destination: { ConnectorType: "S3", BucketName: "inventory-data-bucket", BucketPrefix: "dynamics365/" } } ], TriggerConfig: { TriggerType: "OnDemand" }, SourceFlowConfig: { ConnectorType: "Dynamics365", Object: "ProductInventory", SourceConnectorProperties: { EnableDynamicFieldUpdate: true } }, DestinationFlowConfigList: [ { ConnectorType: "S3", DestinationConnectorProperties: { BucketName: "inventory-data-bucket", BucketPrefix: "dynamics365/" } } ], Tags: [ { Key: "Project", Value: "InventoryManagement" }, { Key: "Environment", Value: "Production" } ]});