Lambdaのログストーム名に[$LATEST]ってあるけどコレナニ?

AWS

Lambda関数のCloudWatch Logsへのログ出力を見ると、ログストリーム名に [$LATEST] という表記があることにふと気づき、「これは一体何だろう?」と思い調べてみました。

AWSの公式ドキュメントには、ログストリームの命名規則が以下のように記載されています。

Lambda 関数の CloudWatch Logs を表示する - AWS Lambda
Lambda 関数の Amazon CloudWatch logs は、Lambda コンソール、CloudWatch コンソール、または AWS Command Line Interface (AWS CLI) を使って表示できます。関数...
ログストリームの命名規則は次のとおりです。
YYYY/MM/DD[Function version][Execution environment GUID]

それぞれの要素の意味は以下の通りです。

  • YYYY/MM/DD: ログが出力された日付(年4桁、月2桁、日2桁)
  • [Function version]: Lambda関数のバージョン
  • [Execution environment GUID]: Lambda関数の実行環境を一意に識別するID(ランダムな値)
補足: Lambdaがウォームスタートした場合、実行環境が再利用されるため、Execution environment GUIDは同じ値になることがあります。

そして、本題の [$LATEST] についてです。ドキュメントによると、これはまだバージョンが発行されていない、最新の(未公開の)Lambda関数のコードを意味するようです。実際にLambda関数の「バージョン」タブを確認してみると、「バージョンがありません」と表示されていました。

このことを確認するため、実際にLambda関数のバージョンを発行してみました。そして、IoT CoreのルールとLambdaのバージョン1に対するトリガーを適切な値に修正したところ、ログストリーム名が [1] に変化していることを確認できました。

この実験から、Lambda関数のバージョン管理とログストリーム名の関連性が明確になりました。バージョニングを行うことで、ログストリーム名から特定のバージョンの実行結果を追跡できるようになることが分かりました。

コメント

タイトルとURLをコピーしました