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