S3BucketProps

class aws_cdk.aws_kinesisfirehose_destinations.S3BucketProps(*, buffering_interval=None, buffering_size=None, compression=None, data_output_prefix=None, encryption_key=None, error_output_prefix=None, logging=None, log_group=None, processor=None, role=None, s3_backup=None)

Bases: CommonDestinationS3Props, CommonDestinationProps

(experimental) Props for defining an S3 destination of a Kinesis Data Firehose delivery stream.

Parameters:
  • buffering_interval (Optional[Duration]) – (experimental) The length of time that Firehose buffers incoming data before delivering it to the S3 bucket. Minimum: Duration.seconds(60) Maximum: Duration.seconds(900) Default: Duration.seconds(300)

  • buffering_size (Optional[Size]) – (experimental) The size of the buffer that Kinesis Data Firehose uses for incoming data before delivering it to the S3 bucket. Minimum: Size.mebibytes(1) Maximum: Size.mebibytes(128) Default: Size.mebibytes(5)

  • compression (Optional[Compression]) – (experimental) The type of compression that Kinesis Data Firehose uses to compress the data that it delivers to the Amazon S3 bucket. The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift destinations because they are not supported by the Amazon Redshift COPY operation that reads from the S3 bucket. Default: - UNCOMPRESSED

  • data_output_prefix (Optional[str]) – (experimental) A prefix that Kinesis Data Firehose evaluates and adds to records before writing them to S3. This prefix appears immediately following the bucket name. Default: “YYYY/MM/DD/HH”

  • encryption_key (Optional[IKey]) – (experimental) The AWS KMS key used to encrypt the data that it delivers to your Amazon S3 bucket. Default: - Data is not encrypted.

  • error_output_prefix (Optional[str]) – (experimental) A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. Default: “YYYY/MM/DD/HH”

  • logging (Optional[bool]) – (experimental) If true, log errors when data transformation or data delivery fails. If logGroup is provided, this will be implicitly set to true. Default: true - errors are logged.

  • log_group (Optional[ILogGroup]) – (experimental) The CloudWatch log group where log streams will be created to hold error logs. Default: - if logging is set to true, a log group will be created for you.

  • processor (Optional[IDataProcessor]) – (experimental) The data transformation that should be performed on the data before writing to the destination. Default: - no data transformation will occur.

  • role (Optional[IRole]) – (experimental) The IAM role associated with this destination. Assumed by Kinesis Data Firehose to invoke processors and write to destinations Default: - a role will be created with default permissions.

  • s3_backup (Union[DestinationS3BackupProps, Dict[str, Any], None]) – (experimental) The configuration for backing up source records to S3. Default: - source records will not be backed up to S3.

Stability:

experimental

ExampleMetadata:

infused

Example:

# bucket: s3.Bucket
# Provide a Lambda function that will transform records before delivery, with custom
# buffering and retry configuration
lambda_function = lambda_.Function(self, "Processor",
    runtime=lambda_.Runtime.NODEJS_14_X,
    handler="index.handler",
    code=lambda_.Code.from_asset(path.join(__dirname, "process-records"))
)
lambda_processor = firehose.LambdaFunctionProcessor(lambda_function,
    buffer_interval=Duration.minutes(5),
    buffer_size=Size.mebibytes(5),
    retries=5
)
s3_destination = destinations.S3Bucket(bucket,
    processor=lambda_processor
)
firehose.DeliveryStream(self, "Delivery Stream",
    destinations=[s3_destination]
)

Attributes

buffering_interval

(experimental) The length of time that Firehose buffers incoming data before delivering it to the S3 bucket.

Minimum: Duration.seconds(60) Maximum: Duration.seconds(900)

Default:

Duration.seconds(300)

Stability:

experimental

buffering_size

(experimental) The size of the buffer that Kinesis Data Firehose uses for incoming data before delivering it to the S3 bucket.

Minimum: Size.mebibytes(1) Maximum: Size.mebibytes(128)

Default:

Size.mebibytes(5)

Stability:

experimental

compression

(experimental) The type of compression that Kinesis Data Firehose uses to compress the data that it delivers to the Amazon S3 bucket.

The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift destinations because they are not supported by the Amazon Redshift COPY operation that reads from the S3 bucket.

Default:
  • UNCOMPRESSED

Stability:

experimental

data_output_prefix

(experimental) A prefix that Kinesis Data Firehose evaluates and adds to records before writing them to S3.

This prefix appears immediately following the bucket name.

Default:

“YYYY/MM/DD/HH”

See:

https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html

Stability:

experimental

encryption_key

(experimental) The AWS KMS key used to encrypt the data that it delivers to your Amazon S3 bucket.

Default:
  • Data is not encrypted.

Stability:

experimental

error_output_prefix

(experimental) A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3.

This prefix appears immediately following the bucket name.

Default:

“YYYY/MM/DD/HH”

See:

https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html

Stability:

experimental

log_group

(experimental) The CloudWatch log group where log streams will be created to hold error logs.

Default:
  • if logging is set to true, a log group will be created for you.

Stability:

experimental

logging

(experimental) If true, log errors when data transformation or data delivery fails.

If logGroup is provided, this will be implicitly set to true.

Default:

true - errors are logged.

Stability:

experimental

processor

(experimental) The data transformation that should be performed on the data before writing to the destination.

Default:
  • no data transformation will occur.

Stability:

experimental

role

(experimental) The IAM role associated with this destination.

Assumed by Kinesis Data Firehose to invoke processors and write to destinations

Default:
  • a role will be created with default permissions.

Stability:

experimental

s3_backup

(experimental) The configuration for backing up source records to S3.

Default:
  • source records will not be backed up to S3.

Stability:

experimental