本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon S3 Glacier 中配置文件库通知
从 Amazon S3 Glacier (S3 Glacier) 检索任何内容(例如文件库中的档案或文件库清单)是一个分为两步的过程。
-
启动取回任务。
-
任务完成后,下载任务输出。
您可以在文件库上设置通知配置,以便在作业完成时向 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 定义了与任务完成特别相关的事件 (ArchiveRetrievalCompleted
、InventoryRetrievalCompleted
)您可以将其添加到文件库的通知配置中。当特定作业完成时,S3 Glacier 会向 SNS 主题发布通知消息。
通知配置是 JSON 文档,如以下示例所示。
{ "Topic": "arn:aws:sns:us-west-2:012345678901:mytopic", "Events": ["ArchiveRetrievalCompleted", "InventoryRetrievalCompleted"] }
请注意,您只能为文件库配置一个 Amazon SNS 主题。
向文件库添加通知配置会使 S3 Glacier 在通知配置中指定的事件每次发生时都发送通知。此外,您还可以选择性地在每个任务启动请求中指定 Amazon SNS 主题。如果您在文件库中添加了两种通知配置,并且也在您的启动作业请求中指定了 Amazon SNS 主题,则 S3 Glacier 会发送这两种通知。
S3 Glacier 发送的任务完成消息包括诸如作业类型 (InventoryRetrieval
、ArchiveRetrieval
)、作业完成状态、SNS 主题名称、作业状态代码和文件库 ARN。以下是在后向 SNS 主题发送的示例通知 S3 GlacierInventoryRetrieval
任务已完成。
{ "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 主题必须允许文件库发布通知。默认情况下,只有 SNS 主题拥有者才能向主题发布消息。但是,如果 SNS 主题和文件库由不同的拥有。Amazon Web Services 账户,则您必须配置 SNS 主题,以接受文件库发布的通知。您可以在 Amazon SNS 控制台中配置 SNS 主题策略。
有关 Amazon SNS 的更多信息,请参阅Amazon SNS 入门.