一個多層應用程式將臨時資料儲存在 S3 物件中,這些物件的有效期為 45 分鐘,並且必須在 24 小時後刪除。每個應用程式版本都透過 CloudFormation 堆疊部署,當舊的堆疊被刪除時,CloudFormation 無法刪除 S3 儲存貯體,導致堆疊刪除失敗。在不進行重大架構更改的情況下,如何解決這個問題?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 實作一個 Lambda 函數來刪除指定 S3 儲存貯體中的所有物件。將該 Lambda 整合為 CloudFormation 範本中的自訂資源,並新增一個參考 S3 儲存貯體資源的 DependsOn。.
為什麼這是答案
正確答案是實作一個 Lambda 函數來刪除指定 S3 儲存貯體中的所有物件,並將其整合為 CloudFormation 範本中的自訂資源,且新增一個參考 S3 儲存貯體資源的 DependsOn。這是因為 CloudFormation 無法刪除非空的 S3 儲存貯體,即使物件已過期。透過自訂資源 Lambda,可以在刪除堆疊之前清空 S3 儲存貯體,從而允許 CloudFormation 成功刪除儲存貯體。DependsOn 確保 Lambda 在 S3 儲存貯體之前執行。 修改 CloudFormation 範本以使用 Amazon EFS 不符合「不進行重大架構更改」的要求,因為它涉及完全不同的儲存服務和應用程式修改。修改 CloudFormation 範本以新增 S3 Lifecycle 規則只會使物件過期,但不會立即刪除它們,因此儲存貯體在 CloudFormation 嘗試刪除時仍可能包含物件。為 S3 儲存貯體資源新增 DeletionPolicy 屬性並設定為 Delete 不會解決問題,因為此策略僅在儲存貯體為空時才有效。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡