Skip to content

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"
    }
  }
});