

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon Data Lifecycle Manager 前置和後置指令碼的運作方式
<a name="script-flow"></a>

下圖顯示使用自訂 SSM 文件時，前置和後置指令碼的處理流程。這不適用於 VSS 備份。

![\[Amazon Data Lifecycle Manager 前置和後置指令碼處理流程\]](http://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/images/dlm-scripts.png)


在排程的快照建立時間，會發生下列動作和跨服務互動。

1. Amazon Data Lifecycle Manager 會呼叫 SSM 文件並傳遞 `pre-script` 參數，以起始前置指令碼動作。
**注意**  
只有在您執行前置指令碼時，才會執行步驟 1 到 3。如果您只執行後置指令碼，則會略過步驟 1 到 3。

1. Systems Manager 會將前置指令碼命令傳送至目標執行個體上執行的 SSM 代理程式。SSM 代理程式會在執行個體上執行命令，並將狀態資訊傳回 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_tw/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 代理程式。SSM 代理程式會在執行個體上執行命令，並將狀態資訊傳回 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_tw/ebs/latest/userguide/script-flow.html)

   請記住，如果後置指令碼失敗，前置指令碼 (如果有啟用) 應已成功完成，而且快照可能已建立。您可能需要對執行個體採取進一步動作，以確保執行個體如預期般運作。例如，如果前置指令碼暫停並清除了 I/O，但是後置指令碼無法解凍 I/O，您可能需將資料庫設定為自動解凍 I/O，或者需要手動解凍 I/O。

1. 快照建立程序可能會在後置指令碼完成後完成。完成快照所花費的時間取決於快照大小。