创建 Amazon S3 Storage Lens 存储统计管理工具控制面板
可以创建其它 S3 Storage Lens 存储统计管理工具自定义控制面板,其范围可以限定为涵盖 AWS Organizations 中您的组织,或者账户中的特定 AWS 区域或存储桶。
注意
对控制面板配置所做的任何更新最长可能需要 48 小时才能准确显示或可视化。
使用以下步骤在 Amazon S3 控制台中创建 Amazon S3 Storage Lens 存储统计管理工具控制面板。
步骤 1:配置常规设置
登录到 AWS 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在页面顶部的导航栏中,选择当前所显示 AWS 区域的名称。接下来,选择要切换到的区域。
-
在导航窗格中,在 S3 Storage Lens 存储统计管理工具下选择控制面板。
-
选择创建控制面板。
-
在控制面板页面的常规部分中,执行以下操作:
-
查看控制面板的主区域。主区域是在其中存储此 Storage Lens 存储分析功能控制面板的配置和指标的 AWS 区域。
-
输入控制面板名称。
控制面板名称必须少于 65 个字符,且不得包含特殊字符或空格。
注意
创建控制面板后,您无法更改此控制面板名称。
-
选择启用可在控制面板中显示更新的每日指标。
-
(可选)您可以选择将标签添加到控制面板。您可以使用标签管理控制面板的权限并跟踪 S3 Storage Lens 存储统计管理工具的成本。有关更多信息,请参阅《IAM 用户指南》中的使用标签控制对 AWS 资源的访问以及《AWS Billing 用户指南》中的使用 AWS 生成的标签。
注意
您最多可以在控制面板配置中添加 50 个标签。
-
-
选择下一步以保存您的更改并继续。
步骤 2:定义控制面板范围
-
在控制面板范围部分,选择希望 S3 Storage Lens 存储统计管理工具在控制面板中包括或排除的区域和存储桶。
-
在所选区域中选择希望 S3 Storage Lens 存储统计管理工具包括或排除的桶。您可以包括或排除桶,但不能同时包括和排除桶。创建组织级控制面板时,此选项不可用。
注意
-
您可以包括或排除区域和桶。在组织中跨成员账户创建组织级控制面板时,此选项仅限于“区域”。
-
您最多可以选择 50 个桶来包括或排除。
-
-
选择下一步以保存您的更改并继续。
步骤 3:选择 Storage Lens 存储统计管理工具套餐
-
在 Storage Lens 存储统计管理工具套餐部分,选择要用于此控制面板的功能聚合套餐。
-
要包括在存储桶级别聚合且可在 14 天内供查询的免费指标,请选择免费套餐。
-
要启用高级指标,请选择高级套餐。这些选项包括前缀或 Storage Lens 组聚合、Amazon CloudWatch 发布、扩展前缀报告和情境化建议。数据可查询 15 个月。高级指标和建议需要额外付费。有关更多信息,请参阅 Amazon S3 定价
。 有关高级指标和免费指标的更多信息,请参阅指标选择。
-
-
在高级指标类别下,选择您要启用的指标类别:
-
活动指标
-
Detailed status code metrics(详细的状态代码指标
-
成本优化指标
-
数据保护指标
-
性能指标
要预览每个类别中包含哪些指标,请使用指标类别复选框列表下方的下拉箭头按钮。有关指标类别的更多信息,请参阅指标类别。要获得指标的完整列表,请参阅 Amazon S3 Storage Lens 存储统计管理工具指标词汇表。
-
-
选择或指定前缀分隔符来区分每个前缀中的级别。此值用来标识每个前缀级别。Amazon S3 中的默认值为“
/”字符,但是您的存储结构可能会使用其他分隔符字符。 -
选择下一步以保存您的更改并继续。
步骤 4:(可选)选择指标聚合
-
在其他指标聚合下,选择要聚合的指标:
-
Prefix aggregation(前缀聚合)
-
Storage Lens 组聚合
-
-
如果您启用了前缀聚合,请为控制面板指定最小前缀阈值和前缀深度。然后选择下一步以保存并继续。
注意
前缀深度设置决定 S3 Storage Lens 存储统计管理工具分析对象前缀的层次深度,最大限制为 10 级。前缀阈值指定一个前缀在存储总量中必须占有的最低百分比,只有超过该阈值的前缀才会包含在 Storage Lens 存储统计管理工具指标中。
-
如果您已启用 Storage Lens 组聚合,请选择以下选项之一:
-
包括 Storage Lens 组
-
排除 Storage Lens 组
-
-
当您在聚合中包括 Storage Lens 组时,您可以包括主区域中的所有 Storage Lens 组,也可以指定要包括的 Storage Lens 组。
-
选择下一步以保存您的更改并继续。
步骤 5:(可选)选择指标导出和发布设置
-
如果您想在 CloudWatch 控制面板中访问 Storage Lens 存储统计管理工具指标,请在指标发布下选择 CloudWatch 发布。
注意
前缀级别的指标在 CloudWatch 中不可用。
-
在指标导出下,选择要每天导出的 Storage Lens 存储统计管理工具控制面板数据:
-
默认指标报告
-
扩展前缀指标报告
-
-
(可选)如果您选择了默认指标报告,则在默认指标报告设置中,选择存储桶类型。您可以将报告导出到通用 Amazon S3 存储桶或 AWS 托管的 S3 表存储桶。根据所选存储桶类型,更新通用存储桶目标设置或表存储桶目标设置选项。
注意
默认指标报告仅包含在前缀聚合设置中所设定的阈值和深度范围内的前缀。
如果您选择指定加密密钥,则必须选择 AWS KMS 密钥(SSE-KMS)或 Amazon S3 托管密钥(SSE-S3)。如果您的目标存储桶策略要求加密,则必须为指标导出提供加密密钥。如果没有加密密钥,导出到 S3 会失败。有关更多信息,请参阅 使用 AWS KMS key 加密您的指标导出。
-
(可选)如果您选择了扩展前缀指标报告,请在扩展前缀指标报告设置中,选择存储桶类型。您可以将报告导出到通用 Amazon S3 存储桶或只读 S3 表存储桶。根据所选存储桶类型,更新通用存储桶目标设置或表存储桶目标设置。
注意
扩展前缀指标报告包括在控制面板范围内指定的所有选定存储桶中的所有前缀,前缀深度最多为 50 级。
如果您选择指定加密密钥,则必须选择 AWS KMS 密钥(SSE-KMS)或 Amazon S3 托管密钥(SSE-S3)。如果您的目标存储桶策略要求加密,则必须为指标导出提供加密密钥。如果没有加密密钥,导出到 S3 会失败。有关更多信息,请参阅 使用 AWS KMS key 加密您的指标导出。
-
选择下一步以保存您的更改并继续。
-
检查查看并创建页面上的所有内容。如果无需进行其他更改,请选择下一步以保存更改并创建控制面板。
步骤 6:检查控制面板配置并创建控制面板
-
检查常规部分中的设置。选择编辑以进行任何更改。
-
检查控制面板范围部分中的设置。选择编辑以进行任何更改。
-
检查 Storage Lens 存储统计管理工具套餐部分中的设置。选择编辑以进行任何更改。
-
检查指标聚合部分中的设置。选择编辑以进行任何更改。
-
检查指标导出部分中的设置。选择编辑以进行任何更改。
-
检查并确认所有控制面板配置设置后,选择提交以创建控制面板。
在您成功创建新的 Storage Lens 存储统计管理工具控制面板后,您可以在 Storage Lens 存储统计管理工具控制面板页面下查看列出的新控制面板。
例
以下示例命令创建带标签的 Amazon S3 Storage Lens 存储统计管理工具配置。要使用这些示例,请将 替换为您自己的信息。user input
placeholders
aws s3control put-storage-lens-configuration --account-id=111122223333--config-id=example-dashboard-configuration-id--region=us-east-1--storage-lens-configuration=file://./config.json--tags=file://./tags.json
例
以下示例命令创建不带标签的 Amazon S3 Storage Lens 存储统计管理工具配置。要使用这些示例,请将 替换为您自己的信息。user input
placeholders
aws s3control put-storage-lens-configuration --account-id=222222222222--config-id=your-configuration-id--region=us-east-1--storage-lens-configuration=file://./config.json
例– 创建和更新 Amazon S3 Storage Lens 存储统计管理工具配置
以下示例在适用于 Java 的 SDK 中创建和更新 Amazon S3 Storage Lens 存储统计管理工具配置:
package aws.example.s3control; import software.amazon.awssdk.awscore.exception.AwsServiceException; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3control.S3ControlClient; import software.amazon.awssdk.services.s3control.model.AccountLevel; import software.amazon.awssdk.services.s3control.model.ActivityMetrics; import software.amazon.awssdk.services.s3control.model.AdvancedCostOptimizationMetrics; import software.amazon.awssdk.services.s3control.model.AdvancedDataProtectionMetrics; import software.amazon.awssdk.services.s3control.model.AdvancedPerformanceMetrics; import software.amazon.awssdk.services.s3control.model.BucketLevel; import software.amazon.awssdk.services.s3control.model.CloudWatchMetrics; import software.amazon.awssdk.services.s3control.model.DetailedStatusCodesMetrics; import software.amazon.awssdk.services.s3control.model.Format; import software.amazon.awssdk.services.s3control.model.Include; import software.amazon.awssdk.services.s3control.model.OutputSchemaVersion; import software.amazon.awssdk.services.s3control.model.PrefixLevel; import software.amazon.awssdk.services.s3control.model.PrefixLevelStorageMetrics; import software.amazon.awssdk.services.s3control.model.PutStorageLensConfigurationRequest; import software.amazon.awssdk.services.s3control.model.S3BucketDestination; import software.amazon.awssdk.services.s3control.model.SSES3; import software.amazon.awssdk.services.s3control.model.SelectionCriteria; import software.amazon.awssdk.services.s3control.model.StorageLensAwsOrg; import software.amazon.awssdk.services.s3control.model.StorageLensConfiguration; import software.amazon.awssdk.services.s3control.model.StorageLensDataExport; import software.amazon.awssdk.services.s3control.model.StorageLensDataExportEncryption; import software.amazon.awssdk.services.s3control.model.StorageLensExpandedPrefixesDataExport; import software.amazon.awssdk.services.s3control.model.StorageLensTableDestination; import software.amazon.awssdk.services.s3control.model.StorageLensTag; import java.util.Arrays; import java.util.List; public class CreateAndUpdateDashboard { public static void main(String[] args) { String configurationId = "ConfigurationId"; String sourceAccountId = "111122223333"; String exportAccountId = "Destination Account ID"; String exportBucketArn = "arn:aws:s3:::destBucketName"; // The destination bucket for your metrics export must be in the same Region as your S3 Storage Lens configuration. String awsOrgARN = "arn:aws:organizations::123456789012:organization/o-abcdefgh"; Format exportFormat = Format.CSV; try { SelectionCriteria selectionCriteria = SelectionCriteria.builder() .delimiter("/") .maxDepth(5) .minStorageBytesPercentage(10.0) .build(); PrefixLevelStorageMetrics prefixStorageMetrics = PrefixLevelStorageMetrics.builder() .isEnabled(true) .selectionCriteria(selectionCriteria) .build(); BucketLevel bucketLevel = BucketLevel.builder() .activityMetrics(ActivityMetrics.builder().isEnabled(true).build()) .advancedCostOptimizationMetrics(AdvancedCostOptimizationMetrics.builder().isEnabled(true).build()) .advancedDataProtectionMetrics(AdvancedDataProtectionMetrics.builder().isEnabled(true).build()) .advancedPerformanceMetrics(AdvancedPerformanceMetrics.builder().isEnabled(true).build()) .detailedStatusCodesMetrics(DetailedStatusCodesMetrics.builder().isEnabled(true).build()) .prefixLevel(PrefixLevel.builder().storageMetrics(prefixStorageMetrics).build()) .build(); AccountLevel accountLevel = AccountLevel.builder() .activityMetrics(ActivityMetrics.builder().isEnabled(true).build()) .advancedCostOptimizationMetrics(AdvancedCostOptimizationMetrics.builder().isEnabled(true).build()) .advancedPerformanceMetrics(AdvancedPerformanceMetrics.builder().isEnabled(true).build()) .advancedDataProtectionMetrics(AdvancedDataProtectionMetrics.builder().isEnabled(true).build()) .detailedStatusCodesMetrics(DetailedStatusCodesMetrics.builder().isEnabled(true).build()) .bucketLevel(bucketLevel) .build(); Include include = Include.builder() .buckets(Arrays.asList("arn:aws:s3:::bucketName")) .regions(Arrays.asList("us-west-2")) .build(); StorageLensDataExportEncryption exportEncryption = StorageLensDataExportEncryption.builder() .sses3(SSES3.builder().build()) .build(); S3BucketDestination s3BucketDestination = S3BucketDestination.builder() .accountId(exportAccountId) .arn(exportBucketArn) .encryption(exportEncryption) .format(exportFormat) .outputSchemaVersion(OutputSchemaVersion.V_1) .prefix("Prefix") .build(); StorageLensTableDestination s3TablesDestination = StorageLensTableDestination.builder() .encryption(exportEncryption) .isEnabled(true) .build(); CloudWatchMetrics cloudWatchMetrics = CloudWatchMetrics.builder() .isEnabled(true) .build(); StorageLensDataExport dataExport = StorageLensDataExport.builder() .cloudWatchMetrics(cloudWatchMetrics) .s3BucketDestination(s3BucketDestination) .storageLensTableDestination(s3TablesDestination) .build(); StorageLensAwsOrg awsOrg = StorageLensAwsOrg.builder() .arn(awsOrgARN) .build(); StorageLensExpandedPrefixesDataExport expandedPrefixesDataExport = StorageLensExpandedPrefixesDataExport.builder() .s3BucketDestination(s3BucketDestination) .storageLensTableDestination(s3TablesDestination) .build(); StorageLensConfiguration configuration = StorageLensConfiguration.builder() .id(configurationId) .accountLevel(accountLevel) .include(include) .dataExport(dataExport) .awsOrg(awsOrg) .expandedPrefixesDataExport(expandedPrefixesDataExport) .prefixDelimiter("/") .isEnabled(true) .build(); List<StorageLensTag> tags = Arrays.asList( StorageLensTag.builder().key("key-1").value("value-1").build(), StorageLensTag.builder().key("key-2").value("value-2").build() ); S3ControlClient s3ControlClient = S3ControlClient.builder() .region(Region.US_WEST_2) .credentialsProvider(ProfileCredentialsProvider.create()) .build(); s3ControlClient.putStorageLensConfiguration(PutStorageLensConfigurationRequest.builder() .accountId(sourceAccountId) .configId(configurationId) .storageLensConfiguration(configuration) .tags(tags) .build() ); } catch (AwsServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
要访问 S3 Storage Lens 组或扩展前缀,您必须升级控制面板以使用高级套餐。将收取额外费用。有关免费和高级套餐的更多信息,请参阅指标选择。有关 S3 Storage Lens 组的更多信息,请参阅 使用 S3 Storage Lens 组筛选和汇总指标。