Pipeline ​
The Pipeline resource lets you create and manage AWS OSIS Pipelines for orchestrating data processing workflows.
Minimal Example ​
Create a basic OSIS Pipeline with required properties and a common optional property.
ts
import AWS from "alchemy/aws/control";
const basicPipeline = await AWS.OSIS.Pipeline("basicPipeline", {
PipelineName: "DataProcessingPipeline",
PipelineConfigurationBody: JSON.stringify({
source: {
type: "s3",
uri: "s3://my-data-bucket/input/"
},
destination: {
type: "s3",
uri: "s3://my-data-bucket/output/"
}
}),
MinUnits: 1,
MaxUnits: 10,
BufferOptions: {
BufferSize: 100,
BufferInterval: 60
}
});
Advanced Configuration ​
Configure a pipeline with encryption at rest and logging options for better security and monitoring.
ts
const advancedPipeline = await AWS.OSIS.Pipeline("advancedPipeline", {
PipelineName: "SecureDataProcessingPipeline",
PipelineConfigurationBody: JSON.stringify({
source: {
type: "kinesis",
streamName: "myKinesisStream"
},
destination: {
type: "redshift",
clusterId: "myRedshiftCluster",
database: "myDatabase",
table: "myTable"
}
}),
MinUnits: 2,
MaxUnits: 20,
EncryptionAtRestOptions: {
Enabled: true,
KmsKeyId: "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-abcd-1234abcd1234"
},
LogPublishingOptions: {
PipelineLogLevel: "INFO",
CloudWatchLogGroup: "myLogGroup",
CloudWatchLogStream: "myLogStream"
}
});
Using VPC Options ​
Create a pipeline that uses VPC options for enhanced security by restricting access to a specific VPC.
ts
const vpcPipeline = await AWS.OSIS.Pipeline("vpcPipeline", {
PipelineName: "VpcRestrictedPipeline",
PipelineConfigurationBody: JSON.stringify({
source: {
type: "http",
uri: "https://api.example.com/data"
},
destination: {
type: "s3",
uri: "s3://my-secure-bucket/output/"
}
}),
MinUnits: 1,
MaxUnits: 5,
VpcOptions: {
SubnetIds: ["subnet-0bb1c79c", "subnet-0bb1c79d"],
SecurityGroupIds: ["sg-0c1234567890abcdef"]
}
});
Tagging Pipelines ​
Create a pipeline with tags for better resource management and cost tracking.
ts
const taggedPipeline = await AWS.OSIS.Pipeline("taggedPipeline", {
PipelineName: "TaggedDataProcessingPipeline",
PipelineConfigurationBody: JSON.stringify({
source: {
type: "s3",
uri: "s3://my-data-bucket/input/"
},
destination: {
type: "s3",
uri: "s3://my-data-bucket/output/"
}
}),
MinUnits: 1,
MaxUnits: 10,
Tags: [
{ Key: "Environment", Value: "Production" },
{ Key: "Project", Value: "DataProcessing" }
]
});