How to enable request metrics for S3 bucket using Cloudformation or CDK

Viewed 2094

I am able to enable (request metrics for S3 bucket, apid option) in the AWS console manually by checking the checkbox(https://ibb.co/bWDLcNT). But I am trying to do that via code. I tried finding solutions that uses CloudFormation / CDK(nodeJs) / AWS CLI. But no luck. I found solutions only about creating metrics with the filters etc and not much about enabling it.. Any suggestions?

2 Answers

You can use MetricsConfiguration:

Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.

The example would be:

  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: somey-bucket-3344-name
      MetricsConfigurations: 
        - Id: EntireBucket

Note EntireBucket. This is the required Id to enable the paid metrics.

The CDK equivalent for Marcin's answer would be to use the Bucket construct:

new Bucket(this, 'metric-example-bucket', {
  bucketName: "somey-bucket-3344-name",
  metrics: [{
    id: "EntireBucket"
  }]
}) 

If you've already created that bucket in CDK, you can use the addMetric() method:

existingBucket.addMetric({id: "EntireBucket"})
Related