本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon S3 Glacier 中的文件库
从 Amazon 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 文档,如以下示例所示。
{ "SNSTopic": "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。以下是 S3 Glacier 在 SNS 主题的示例通知InventoryRetrieval
作业已完成。
{ "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 入门.