PutBucketMetricsConfigurationCommand

This operation is not supported for directory buckets.

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations  and Managing Access Permissions to Your Amazon S3 Resources .

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch .

The following operations are related to PutBucketMetricsConfiguration:

PutBucketMetricsConfiguration has the following special error:

  • Error code: TooManyConfigurations

    • Description: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

    • HTTP Status Code: HTTP 400 Bad Request

Example Syntax

Use a bare-bones client and the command you need to make an API call.

import { S3Client, PutBucketMetricsConfigurationCommand } from "@aws-sdk/client-s3"; // ES Modules import
// const { S3Client, PutBucketMetricsConfigurationCommand } = require("@aws-sdk/client-s3"); // CommonJS import
const client = new S3Client(config);
const input = { // PutBucketMetricsConfigurationRequest
  Bucket: "STRING_VALUE", // required
  Id: "STRING_VALUE", // required
  MetricsConfiguration: { // MetricsConfiguration
    Id: "STRING_VALUE", // required
    Filter: { // MetricsFilter Union: only one key present
      Prefix: "STRING_VALUE",
      Tag: { // Tag
        Key: "STRING_VALUE", // required
        Value: "STRING_VALUE", // required
      },
      AccessPointArn: "STRING_VALUE",
      And: { // MetricsAndOperator
        Prefix: "STRING_VALUE",
        Tags: [ // TagSet
          {
            Key: "STRING_VALUE", // required
            Value: "STRING_VALUE", // required
          },
        ],
        AccessPointArn: "STRING_VALUE",
      },
    },
  },
  ExpectedBucketOwner: "STRING_VALUE",
};
const command = new PutBucketMetricsConfigurationCommand(input);
const response = await client.send(command);
// {};

PutBucketMetricsConfigurationCommand Input

Parameter
Type
Description
Bucket
Required
string | undefined

The name of the bucket for which the metrics configuration is set.

Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "aws-sdk/signature-v4-crt" package to your project dependencies. For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

Id
Required
string | undefined

The ID used to identify the metrics configuration. The ID has a 64 character limit and can only contain letters, numbers, periods, dashes, and underscores.

MetricsConfiguration
Required
MetricsConfiguration | undefined

Specifies the metrics configuration.

ExpectedBucketOwner
string | undefined

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

PutBucketMetricsConfigurationCommand Output

Parameter
Type
Description
$metadata
Required
ResponseMetadata
Metadata pertaining to this request.

Throws

Name
Fault
Details
S3ServiceException
Base exception class for all service exceptions from S3 service.