

# Lambda ランタイムバージョンのロールバック
<a name="runtime-management-rollback"></a>

新しいランタイムバージョンに既存の関数との互換性がないというまれな状況が発生した場合は、関数のランタイムバージョンを以前のバージョンにロールバックすることができます。そうすることで、アプリケーションが引き続き機能し、中断が最小限に抑えられるので、最新のランタイムバージョンに戻る前に非互換性を修正する時間を確保できます。

Lambda は、特定のランタイムバージョンを使用できる期間を制限していませんが、最新のセキュリティパッチ、パフォーマンスの向上、および機能面でのメリットを得るためにも、可能な限り早急に最新のランタイムバージョンに更新することを強くお勧めします。Lambda は以前のランタイムバージョンにロールバックするオプションを提供してますが、これはあくまでも、まれに発生するランタイム更新の互換性問題の一時的な緩和策として使用するものです。以前のランタイムバージョンを長期間使用している関数では、最終的にパフォーマンスの低下、または証明書の有効期限切れなどの問題が発生するので、適切に動作しなくなる可能性があります。

ランタイムバージョンは、以下の方法でロールバックできます。
+ [[Manual] (手動) ランタイム更新モードの使用](#runtime-management-rollback-manual)
+ [発行済みの関数バージョンの使用](#runtime-management-rollback-published)

詳細については、AWS コンピューティングブログの「[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]** (自動) モードでは、ランタイムバージョンロールアウトの第 2 フェーズ中に、Lambda が発行済みの関数バージョンのランタイムバージョンを自動的に更新します。**[Function update]** (関数の更新) モードでは、Lambda は発行済みの関数バージョンのランタイムバージョンを更新しません。

そのため、**[Function update]** (関数の更新) モードを使用する発行済みの関数バージョンは、関数コード、設定、およびランタイムバージョンの静的スナップショットを作成します。関数バージョンで **[Function update]** (関数の更新) モードを使用することによって、ランタイム更新をデプロイと同期できます。また、トラフィックを以前の発行済み関数バージョンにリダイレクトすることで、コード、設定、およびランタイムバージョンのロールバックを調整することもできます。このアプローチは、ランタイム更新に互換性がないというまれな状況での完全に自動化されたロールバックのために、継続的インテグレーションおよび継続的デリバリー (CI/CD) に統合することができます。このアプローチを使用するときは、関数を定期的に更新し、新しい関数バージョンを発行して、最新のランタイム更新を取得する必要があります。詳細については、「[Lambda ランタイム管理における責任共有モデルを理解する](runtime-management-shared.md)」を参照してください。