ApplicationOutput ​
The ApplicationOutput resource lets you manage AWS KinesisAnalytics ApplicationOutputs that are used to define how the results of your application are sent to destinations such as Kinesis streams or Amazon S3.
Minimal Example ​
Create a basic ApplicationOutput with required properties and one optional property:
ts
import AWS from "alchemy/aws/control";
const basicOutput = await AWS.KinesisAnalytics.ApplicationOutput("basicOutput", {
ApplicationName: "MyKinesisApp",
Output: {
Name: "MainOutput",
KinesisStream: {
ResourceArn: "arn:aws:kinesis:us-west-2:123456789012:stream/MyKinesisStream",
RoleArn: "arn:aws:iam::123456789012:role/service-role/MyKinesisRole"
}
},
adopt: true // Optional: adopt existing resource instead of failing
});
Advanced Configuration ​
Configure an ApplicationOutput with additional settings including S3 output:
ts
const advancedOutput = await AWS.KinesisAnalytics.ApplicationOutput("advancedOutput", {
ApplicationName: "MyKinesisApp",
Output: {
Name: "AdvancedOutput",
S3: {
ResourceArn: "arn:aws:s3:::my-output-bucket",
RoleArn: "arn:aws:iam::123456789012:role/service-role/MyS3Role",
BufferingHints: {
SizeInMB: 5, // Buffer size before sending to S3
IntervalInSeconds: 300 // Buffering interval
}
}
}
});
S3 Output with Compression ​
Define an ApplicationOutput that sends data to S3 with Gzip compression enabled:
ts
const s3CompressedOutput = await AWS.KinesisAnalytics.ApplicationOutput("s3CompressedOutput", {
ApplicationName: "MyKinesisApp",
Output: {
Name: "CompressedOutput",
S3: {
ResourceArn: "arn:aws:s3:::my-compressed-output-bucket",
RoleArn: "arn:aws:iam::123456789012:role/service-role/MyS3Role",
CompressionType: "GZIP", // Enable Gzip compression
BufferingHints: {
SizeInMB: 10,
IntervalInSeconds: 60
}
}
}
});
Kinesis Stream Output with IAM Role ​
Set up an ApplicationOutput that sends data to a Kinesis Stream with the appropriate IAM role:
ts
const kinesisStreamOutput = await AWS.KinesisAnalytics.ApplicationOutput("kinesisStreamOutput", {
ApplicationName: "MyKinesisApp",
Output: {
Name: "KinesisStreamOutput",
KinesisStream: {
ResourceArn: "arn:aws:kinesis:us-west-2:123456789012:stream/MyOutputStream",
RoleArn: "arn:aws:iam::123456789012:role/service-role/MyKinesisRole"
}
}
});