[アップデート]Step Functions標準ワークフローでCloudWatch Logsがサポートされました

Step Functionsにアップデートがあり、標準ワークフローでCloudWatch Logsの出力がサポートされました!早速試してみたいと思います。
2020.02.26

Step Functionsにアップデートがあり、標準ワークフローでCloudWatch Logsの出力がサポートされました!

Expressワークフローでは、CloudWatch Logsがサポートされていましたが、今回のアップデートで標準ワークフローでもサポートされた感じです。

早速試してみたいと思います!なお、CloudWatch Logsへの出力確認を目的にしたエントリとなりますので、ステートマシンの作成等については割愛しています。

前提

やってみた

標準ワークフローの設定を確認すると「ログ記録の設定」が追加されています。

ログレベルのプルダウンを展開すると、複数のログレベルがリストされます。

ログレベルはALLERRORFATALがありレベルに応じ出力内容が変化します。ログレベルに応じ、ステートマシンで発生するイベントのどれが出力されるかは以下ドキュメントに記載があります。

今回は、ログレベルALLERRORで動作を確認してみたいと思います。

ログレベル:ALL

実行データを含める

先ずはログレベルはALLで、実行データを含めるように設定しました。

ステートマシンを実行します。

% aws stepfunctions start-execution \
  --state-machine-arn arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:stateMachine:HelloWorld \
  --name test1 \
  --input "{\"Comment\" : \"test1\"}"
{
    "executionArn": "arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:execution:HelloWorld:test1",
    "startDate": 1582713308.723
}

正常終了しました。

CloudWatch Logsにログが出力されました。 ログレベルがALLなので、全てのイベントタイプが記録され、実行履歴と同じステップが記録されました。

ログについてはStep Functionsのコンソールからも確認することができました。

実行データを含めない

ログレベルALLのまま、実行データを含めない形で設定してログの出力を確認したいと思います。

ステートマシンを実行します。

% aws stepfunctions start-execution \
  --state-machine-arn arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:stateMachine:HelloWorld \
  --name test2 \
  --input "{\"Comment\" : \"test2\"}"
{
    "executionArn": "arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:execution:HelloWorld:test2",
    "startDate": 1582714000.41
}

正常終了しました。

先程のログでは実行時に指定したインプットデータがロギングされていましたが、今回出力されたログには実行データが含まれていないことが確認できました。

ログレベル:ERROR

続いてはログレベルをERRORに変えて確認してみたいと思います。

ステートマシンから呼び出しされるLambda FunctionでExceptionを仕込み、ステートマシンを実行しました。

% aws stepfunctions start-execution \
  --state-machine-arn arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:stateMachine:HelloWorld \
  --name test3 \
  --input "{\"Comment\" : \"test3\"}"
{
    "executionArn": "arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:execution:HelloWorld:test3",
    "startDate": 1582714919.929
}

異常終了しました。下記、赤枠がERRORレベルのロギング対象イベントです。

想定どおりLambdaFunctionFailedと、ExecutionFailedイベントのみロギングされました。

さいごに

ステートマシンの実行履歴の最大保持期間は90日でしたが、今回のアップデートにより長期保持が可能になったと思います。 また、CloudWatch Logsに出力することで、他サービスと組み合わせたログの分析等が実施しやすくなるのではないでしょうか。

参考