使用 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:ReplicateObject 或 s3: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 无法访问源存储桶中要复制的对象。针对源存储桶对象的 源存储桶中的对象必须由存储桶拥有者所有。如果启用了 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 找不到要复制的源对象版本。源对象版本可能在复制完成之前已被删除。 |