使用 Amazon S3 事件通知接收复制失败事件 - Amazon Simple Storage Service

使用 Amazon S3 事件通知接收复制失败事件

如果在复制配置中启用了 S3 复制指标,则可以设置 Amazon S3 事件通知,以便在对象未复制到目标 AWS 区域时通知您。如果在复制配置中启用了 S3 Replication Time Control(S3 RTC),则当未在 15 分钟的 S3 RTC 复制阈值内复制对象时,您也会收到通知。

通过使用以下 Replication 事件类型,可以通过跟踪待处理字节数、待处理的操作和复制延迟来逐分钟监控复制事件的进度。有关 S3 复制指标的更多信息,请参阅使用 S3 复制指标

  • 当符合复制条件的对象复制失败时,s3:Replication:OperationFailedReplication 事件类型将通知您。

  • 当符合复制(使用 S3 RTC)条件的对象超过 15 分钟的复制阈值时,s3:Replication:OperationMissedThreshold 事件类型将通知您。

  • 当符合复制(使用 S3 RTC)条件的对象在 15 分钟阈值后复制时,s3:Replication:OperationReplicatedAfterThreshold 事件类型将通知您。

  • 当符合实时复制(同区域复制 [SRR] 或跨区域复制 [CRR])条件的对象不再受复制指标跟踪时,s3:Replication:OperationNotTracked 事件类型会通知您。

有关所有受支持的复制事件类型的完整描述,请参阅 SQS、SNS 和 Lambda 支持的事件类型

有关 S3 事件通知捕获的故障代码的列表,请参阅 Amazon S3 复制失败原因

您可以通过 Amazon Simple Queue Service(Amazon SQS)、Amazon Simple Notification Service(Amazon SNS)或 AWS Lambda 接收 S3 事件通知。有关更多信息,请参阅 Amazon S3 事件通知

有关如何配置 Amazon S3 事件通知的说明,请参阅 Enabling event notifications(启用事件通知)。

注意

除了启用事件通知外,还要确保您也启用 S3 复制指标。有关更多信息,请参阅 启用 S3 复制指标

以下是 Amazon S3 发送以发布 s3:Replication:OperationFailedReplication 事件的消息示例。有关更多信息,请参阅 事件消息结构

{ "Records": [ { "eventVersion": "2.2", "eventSource": "aws:s3", "awsRegion": "us-east-1", "eventTime": "2024-09-05T21:04:32.527Z", "eventName": "Replication:OperationFailedReplication", "userIdentity": { "principalId": "s3.amazonaws.com" }, "requestParameters": { "sourceIPAddress": "s3.amazonaws.com" }, "responseElements": { "x-amz-request-id": "123bf045-2b4b-4ca8-a211-c34a63c59426", "x-amz-id-2": "12VAWNDIHnwJsRhTccqQTeAPoXQmRt22KkewMV8G3XZihAuf9CLDdmkApgZzudaIe2KlLfDqGS0=" }, "s3": { "s3SchemaVersion": "1.0", "configurationId": "ReplicationEventName", "bucket": { "name": "amzn-s3-demo-bucket1", "ownerIdentity": { "principalId": "111122223333" }, "arn": "arn:aws:s3:::amzn-s3-demo-bucket1" }, "object": { "key": "replication-object-put-test.png", "size": 520080, "eTag": "e12345ca7e88a38428305d3ff7fcb99f", "versionId": "abcdeH0Xp66ep__QDjR76LK7Gc9X4wKO", "sequencer": "0066DA1CBF104C0D51" } }, "replicationEventData": { "replicationRuleId": "notification-test-replication-rule", "destinationBucket": "arn:aws:s3:::amzn-s3-demo-bucket2", "s3Operation": "OBJECT_PUT", "requestTime": "2024-09-05T21:03:59.168Z", "failureReason": "AssumeRoleNotPermitted" } } ] }

Amazon S3 复制失败原因

下表列出了 Amazon S3 复制失败原因。可以通过 Amazon S3 事件通知接收 s3:Replication:OperationFailedReplication 事件,然后查看 failureReason 值,来查看这些原因。

还可以在 S3 批量复制完成报告中查看这些失败原因。有关更多信息,请参阅 分批复制完成报告

复制失败原因 描述
AssumeRoleNotPermitted Amazon S3 无法代入在复制配置或批量操作任务中指定的 AWS Identity and Access Management(IAM)角色。
DstBucketInvalidRegion 目标存储桶未处于由批量操作任务指定的同一个 AWS 区域中。此错误特定于分批复制。
DstBucketNotFound Amazon S3 找不到在复制配置中指定的目标存储桶。
DstBucketObjectLockConfigMissing 要在启用对象锁定的情况下从源存储桶复制对象,目标存储桶也必须启用对象锁定。此错误表示目标存储桶中可能未启用对象锁定。有关更多信息,请参阅 对象锁定注意事项
DstBucketUnversioned 未为 S3 目标存储桶启用版本控制。要使用 S3 复制来复制对象,请对目标存储桶启用版本控制。
DstDelObjNotPermitted Amazon S3 无法将删除标记复制到目标存储桶。针对目标存储桶的 s3:ReplicateDelete 权限可能缺失。
DstKmsKeyInvalidState 适用于目标存储桶的 AWS Key Management Service(AWS KMS)密钥处于无效状态。查看并启用所需的 AWS KMS 密钥。有关管理 AWS KMS 密钥的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 AWS KMS 密钥的密钥状态
DstKmsKeyNotFound 在复制配置中为目标存储桶配置的 AWS KMS 密钥不存在。
DstMultipartCompleteNotPermitted Amazon S3 无法完成目标存储桶中对象的分段上传。针对目标存储桶的 s3:ReplicateObject 权限可能缺失。
DstMultipartInitNotPermitted Amazon S3 无法启动将对象分段上传到目标存储桶。针对目标存储桶的 s3:ReplicateObject 权限可能缺失。
DstMultipartPartUploadNotPermitted Amazon S3 无法将分段上传对象上传到目标存储桶。针对目标存储桶的 s3:ReplicateObject 权限可能缺失。
DstObjectHardDeleted S3 分批复制不支持重新复制从目标存储桶中使用对象的版本 ID 删除的对象。此错误特定于分批复制。
DstPutAclNotPermitted Amazon S3 无法将对象访问控制列表(ACL)复制到目标存储桶。针对目标存储桶的 s3:ReplicateObject 权限可能缺失。
DstPutLegalHoldNotPermitted 在复制不可变对象时,Amazon S3 无法对目标对象设置对象锁定法定保留。针对目标存储桶的 s3:PutObjectLegalHold 权限可能缺失。有关更多信息,请参阅 依法保留
DstPutObjectNotPermitted Amazon S3 无法将对象复制到目标存储桶。针对目标存储桶的 s3:ReplicateObjects3:ObjectOwnerOverrideToBucketOwner 权限可能缺失。
DstPutTaggingNotPermitted Amazon S3 无法将对象标签复制到目标存储桶。针对目标存储桶的 s3:ReplicateObject 权限可能缺失。
DstVersionNotFound Amazon S3 无法在目标存储桶中找到需要复制其元数据的所需对象版本。
InitiateReplicationNotPermitted Amazon S3 无法在对象上启动复制。批量操作任务可能缺少 s3:InitiateReplication 权限。此错误特定于分批复制。
SrcBucketInvalidRegion 源存储桶未处于批量操作任务指定的同一个 AWS 区域中。此错误特定于分批复制。
SrcBucketNotFound Amazon S3 找不到源存储桶。
SrcBucketReplicationConfigMissing Amazon S3 找不到源存储桶的复制配置。
SrcGetAclNotPermitted

Amazon S3 无法访问源存储桶中要复制的对象。针对源存储桶对象的 s3:GetObjectVersionAcl 权限可能缺失。

源存储桶中的对象必须由存储桶拥有者所有。如果启用了 ACL,则验证应将“对象所有权”设置为“首选存储桶拥有者”还是“对象编写者”。如果将“对象所有权”设置为“首选存储桶拥有者”,则源存储桶对象必须具有 bucket-owner-full-control ACL,存储桶拥有者才能成为对象拥有者。源账户可以通过将“对象所有权”设置为“强制存储桶拥有者”并禁用 ACL,从而获取其存储桶中所有对象的所有权。

SrcGetLegalHoldNotPermitted Amazon S3 无法访问 S3 对象锁定法定保留信息。
SrcGetObjectNotPermitted Amazon S3 无法访问源存储桶中要复制的对象。针对源存储桶的 s3:GetObjectVersionForReplication 权限可能缺失。
SrcGetRetentionNotPermitted Amazon S3 无法访问 S3 对象锁定保留期信息。
SrcGetTaggingNotPermitted Amazon S3 无法从源存储桶访问对象标签信息。针对源存储桶的 s3:GetObjectVersionTagging 权限可能缺失。
SrcHeadObjectNotPermitted Amazon S3 无法从源存储桶检索对象元数据。针对源存储桶的 s3:GetObjectVersionForReplication 权限可能缺失。
SrcKeyNotFound Amazon S3 找不到要复制的源对象密钥。源对象可能在复制完成之前已被删除。
SrcKmsKeyInvalidState 适用于源存储桶的 AWS KMS 密钥处于无效状态。查看并启用所需的 AWS KMS 密钥。有关管理 AWS KMS 密钥的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 AWS KMS 密钥的密钥状态
SrcObjectNotEligible 某些对象不符合复制条件。这可能是由于对象的存储类或对象标签与复制配置不匹配所致。
SrcObjectNotFound 源对象不存在。
SrcReplicationNotPending Amazon S3 已经复制了此对象。此对象不再处于待复制状态。
SrcVersionNotFound Amazon S3 找不到要复制的源对象版本。源对象版本可能在复制完成之前已被删除。

为实时复制设置权限

对复制进行问题排查