在 Amazon S3 Glacier 中配置文件库通知 - Amazon S3 Glacier
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

如果您不熟悉 Amazon Simple Storage Service (Amazon S3) 中的归档存储功能,建议您先详细了解 Amazon S3 中的 S3 Glacier 存储类、S3 Glacier 即时检索S3 Glacier 灵活检索S3 Glacier 深度归档。有关更多信息,请参阅 Amazon S3 用户指南中的 S3 Glacier 存储类和用于存档对象的存储类。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon S3 Glacier 中配置文件库通知

从 Amazon S3 Glacier 检索任何内容(例如文件库中的档案或文件库清单)是一个分为两步的过程。

  1. 启动检索任务。

  2. 任务完成后,下载任务输出。

您可以在文件库上设置通知配置,以便在任务完成时向 Amazon Simple Notification Service (Amazon SNS) 主题发送消息。

在 S3 Glacier 中配置文件库通知:一般概念

S3 Glacier 检索任务请求是异步执行的。您必须等到 S3 Glacier 完成任务,然后才能获取其输出。您可以定期轮询 S3 Glacier 以确定任务状态,但这不是最佳方法。S3 Glacier 还支持通知。任务完成后,任务可以将消息发布到 Amazon Simple Notification Service (Amazon SNS) 主题。要使用此功能,您必须在文件库上设置通知配置。在配置中,您可以标识一个或多个事件,以及您希望 S3 Glacier 在事件发生时向其发送消息的 Amazon SNS 主题。

S3 Glacier 定义了与任务完成特别有关的事件(ArchiveRetrievalCompletedInventoryRetrievalCompleted ),您可以将这些事件添加到文件库的通知配置中。当特定任务完成时,S3 Glacier 会向 SNS 主题发布通知消息。

通知配置是 JSON 文档,如以下示例所示。

{ "SNSTopic": "arn:aws:sns:us-west-2:012345678901:mytopic", "Events": ["ArchiveRetrievalCompleted", "InventoryRetrievalCompleted"] }

请注意,对于一个文件库,您只能配置一个 Amazon SNS 主题。

注意

向文件库添加通知配置会使 S3 Glacier 在通知配置中指定的事件每次发生时都发送通知。此外,您还可以选择性地在每个任务启动请求中指定 Amazon SNS 主题。如果您在文件库中添加了通知配置,并且在您的启动任务请求中也指定了 Amazon SNS 主题,则 S3 Glacier 会发送这两种通知。

S3 Glacier 发送的任务完成消息包括任务类型(InventoryRetrievalArchiveRetrieval)、任务完成状态、SNS 主题名称、任务状态代码和文件库 ARN 等信息。以下是 S3 Glacier 在 InventoryRetrieval 任务完成后发送到 SNS 主题的示例通知。

{ "Action": "InventoryRetrieval", "ArchiveId": null, "ArchiveSizeInBytes": null, "Completed": true, "CompletionDate": "2012-06-12T22:20:40.790Z", "CreationDate": "2012-06-12T22:20:36.814Z", "InventorySizeInBytes":11693, "JobDescription": "my retrieval job", "JobId":"HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID", "SHA256TreeHash":null, "SNSTopic": "arn:aws:sns:us-west-2:012345678901:mytopic", "StatusCode":"Succeeded", "StatusMessage": "Succeeded", "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault" }

此外,如果 Completed 字段为 true,则您还必须检查 StatusCode 以查看任务是成功完成了还是失败了。

注意

请注意,Amazon SNS 主题必须允许文件库发布通知。默认情况下,只有 Amazon SNS 主题拥有者才能向主题发布消息。但是,如果 Amazon SNS 主题和文件库由不同的 Amazon Web Services 账户拥有,则您必须配置 Amazon SNS 主题,以接受文件库发布的通知。您可以在 Amazon SNS 控制台中配置 Amazon SNS 主题策略。

有关 Amazon SNS 的更多信息,请参阅 Amazon SNS 入门