0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Lambda の provided.al2 終了通知で、60件の関数をいきなり更新しなかった話

0
Posted at

はじめに

AWS から Lambda の provided.al2 ランタイム終了通知が届きました。対象を確認すると、対象関数が60件近く存在しており、単純に全件を更新する前に、まず対象関数と管理元を整理する必要がありました。

まずは結論

  • Lambda ランタイムの更新は必須だが、一括更新は危険
  • まず AWS 側で関数一覧と runtime を確認する
  • Git や Terraform で管理されているかを確認し、コード実体の所在を把握
  • 小規模で先行検証してから段階的に更新する

前提条件

  • 対象関数:約60件
  • 現行 runtime:provided.al2
  • AWS CLI またはコンソールで関数を確認可能

何が起きたか

  • Lambda 関数名で Git を検索してもソースコードが見つからない
  • provided.al2 で検索しても php と yml がヒットするのみ
  • Terraform リポジトリ内に runtime 定義がある想定だったが、見つからず
  • 関数名とコードのディレクトリ構造が一致していない可能性

切り分け

  1. Git で provided.al2 や関数名で検索
  2. Terraform 定義を確認(resource "aws_lambda_function")
  3. 実際のコード location を確認(filename, s3_key)
  4. AWS CLI で関数一覧を取得
aws lambda list-functions --query "Functions[?contains(FunctionName, 'GameNeuronPubSub')].[FunctionName,Runtime]" --output table
  1. 個別確認
aws lambda get-function --function-name <FunctionName>

対応方法

  • Terraform や IaC があれば runtime を provided.al2023 に変更
runtime = "provided.al2023"
  • CLI から個別に更新
aws lambda update-function-configuration --function-name <FunctionName> --runtime provided.al2023
  • まず代表的な1〜3件でステージング確認
  • CloudWatch Logs やトリガーイベントで動作検証
  • 問題なければ段階的に全件更新

検証

  • AWS CLI で更新後の runtime を確認
  • CloudWatch でログ出力確認
  • イベントトリガー(Kinesis/SQS)で正常に動作するかテスト

まとめ

  • provided.al2 はサポート終了前に更新すべき
  • いきなり全件更新は避ける
  • まず関数を棚卸しして分類(使用中・管理元不明・不要)
  • Git や Terraform と照合して実コードの所在を特定
  • 小規模で検証してから全件展開
  • CI/CD との整合性も確認

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?