

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

# Amazon Data Lifecycle Manager 前置和后置脚本的工作原理
<a name="script-flow"></a>

下图显示了使用自定义 SSM 文档时前置和后置脚本的流程。这不适用于 VSS 备份。

![\[Amazon Data Lifecycle Manager 前置和后置脚本流程\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/dlm-scripts.png)


在计划创建快照时，会发生以下操作和跨服务交互。

1. Amazon Data Lifecycle Manager 通过调用 SSM 文档并传递 `pre-script` 参数来启动前置脚本操作。
**注意**  
只有在运行前置脚本时才会执行步骤 1 到 3。如果您仅运行后置脚本，则会跳过步骤 1 到 3。

1. Systems Manager 向在目标实例上运行的 SSM Agent 发送前置脚本命令。SSM Agent 在实例上运行命令，并将状态信息发送回 Systems Manager。

   例如，如果使用 SSM 文档创建应用程序一致的快照，则预脚本可能会冻结并刷新， I/O 以确保在拍摄快照之前将所有缓冲的数据写入卷。

1. Systems Manager 向 Amazon Data Lifecycle Manager 发送前置脚本命令状态更新。如果前置脚本失败，则 Amazon Data Lifecycle Manager 将执行以下操作之一，具体取决于您配置前置和后置脚本选项的方式：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/script-flow.html)

1. Amazon Data Lifecycle Manager 启动快照创建。

1. Amazon Data Lifecycle Manager 通过调用 SSM 文档并传递 `post-script` 参数来启动后置脚本操作。
**注意**  
只有在运行前置脚本时才会执行步骤 5 到 7。如果您仅运行后置脚本，则会跳过步骤 1 到 3。

1. Systems Manager 向在目标实例上运行的 SSM Agent 发送后置脚本命令。SSM Agent 在实例上运行命令，并将状态信息发送回 Systems Manager。

   例如，如果 SSM 文档启用了应用程序一致性快照，则此发布脚本可能会解冻， I/O 以确保您的数据库在拍摄快照后恢复正常 I/O 操作。

1. 如果您运行后置脚本且 Systems Manager 指示该脚本已成功完成，则该过程完成。

   如果后置脚本失败，则 Amazon Data Lifecycle Manager 将执行以下操作之一，具体取决于您配置前置和后置脚本选项的方式：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/script-flow.html)

   请记住，如果后置脚本失败，则前置脚本（如已启用）将成功完成，并且可能已创建快照。您可能需要对实例采取进一步操作以确保其按预期运行。例如，如果预脚本暂停并刷新I/O, but the post script failed to thaw I/O, you might need to configure your database to auto-thaw I/O or you need to manually thaw I/O。

1. 后置脚本完成后，快照创建过程可能会完成。完成快照所需的时间取决于快照的大小。