

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

# 復原 Lambda 執行時期版本
<a name="runtime-management-rollback"></a>

在罕見情況下，新的執行階段版本會與現有函數不相容，您可以將執行階段版本復原為較舊的版本。這可讓您的應用程式保持正常運作並將中斷時間縮到最短，這樣便有時間在改回最新執行階段版本之前修正不相容情況。

Lambda 不會對您可以使用任何特定執行階段版本的時間長度施加時間限制。不過，我們強烈建議您盡快更新至最新的執行階段版本，以便享有最新的安全性修補程式、效能改善項目和功能。Lambda 提供復原為較舊執行階段版本的選項，只能在發生執行階段更新相容性問題的罕見情況中當成暫時緩解的手段。長時間使用舊版執行階段版本的函數，最終可能會遇到效能降低或發生問題 (例如憑證到期)，這可能會導致它們無法正常運作。

您可以透過下列方式復原執行階段版本：
+ [使用手動執行時期更新模式](#runtime-management-rollback-manual)
+ [使用已發佈的函數版本](#runtime-management-rollback-published)

如需詳細資訊，請參閱AWS Compute 部落格上的 [AWS Lambda 執行階段管理控制介紹](https://aws.amazon.com/blogs/compute/introducing-aws-lambda-runtime-management-controls/)。

## 使用 Manual (手動) 執行階段更新模式復原執行階段版本
<a name="runtime-management-rollback-manual"></a>

如果您使用的是 **Auto** (自動) 執行階段版本更新模式，或是使用 `$LATEST` 執行階段版本，您可以使用 **Manual** (手動) 模式復原執行階段版本。針對您要復原的[函數版本](configuration-versions.md)，將執行階段版本更新模式變更為 **Manual** (手動)，並指定上一個執行階段版本的 ARN。如需查找舊版執行階段 ARN 的詳細資訊，請參閱：[識別 Lambda 執行時期版本變更](runtime-management-identify.md)。

**注意**  
如果您的函數版本 `$LATEST` 設定為使用 **Manual** (手動) 模式，則無法變更函數使用的 CPU 架構或執行階段版本。若要進行這些變更，您必須變更為 **Auto** (自動) 或 **Function update** (函數更新) 模式。

## 使用已發布的函數版本復原執行階段版本
<a name="runtime-management-rollback-published"></a>

已發佈的[函數版本](configuration-versions.md)是您建立 `$LATEST` 函數程式碼和組態時的不可變快照。在 **Auto** (自動) 模式中，Lambda 會在執行階段版本推展的第二階段期間，自動更新已發佈函數版本的執行階段版本。在 **Function update** (函數更新) 模式中，Lambda 不會更新已發佈函數版本的執行階段版本。

因此，使用 **Function update** (函數更新) 模式發佈的函數版本，會建立函數程式碼、組態和執行階段版本的靜態快照。透過將 **Function update** (函數更新) 模式與函數版本搭配使用，您可以將執行階段更新與部署同步。您也可以將流量重新導向至先前發佈的函數版本，協調程式碼、組態和執行階段版本的復原。您可以將此做法整合到持續整合和持續交付 (CI/CD) 中，以便在發生執行階段更新不相容的罕見情況下進行全自動復原。使用此做法時，您必須定期更新函數，並發佈新的函數版本以取得最新的執行階段更新。如需更多詳細資訊，請參閱 [了解 Lambda 執行時期管理的共同責任模式](runtime-management-shared.md)。