ハンズオン(簡易版): IAM入門(ロール)

3.3. CloudWatch Logsログイベントの取得 (ログフィルター: /aws/lambda/handson-cli-iam-1st-role-function)

手順の目的

CloudWatch Logsロググループ"/aws/lambda/handson-cli-iam-1st-role-function"からログフィルターを利用してログイベントを取得します。

設定値の指定

手順に必要な設定値を変数に格納をします。

0. リージョン

リージョンを指定します。

環境変数の設定:

export AWS_DEFAULT_REGION='ap-northeast-1'

1. CloudWatch Logsロググループ名

CloudWatch Logsロググループ名を指定します。

変数の設定:

LOGS_GROUP_NAME='/aws/lambda/handson-cli-iam-1st-role-function'

設定値の確認

各変数に正しい設定値が格納されていることを確認します。

変数の確認:

cat << END

  # 0. AWS_DEFAULT_REGION:"ap-northeast-1"
       AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"

  # 1. LOGS_GROUP_NAME:"/aws/lambda/handson-cli-iam-1st-role-function"
       LOGS_GROUP_NAME="${LOGS_GROUP_NAME}"

END

各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

ログフィルターを利用してCloudWatch Logsログイベントを取得します。

変数の確認:

cat << END

  # LOGS_GROUP_NAME:"/aws/lambda/handson-cli-iam-1st-role-function"
    LOGS_GROUP_NAME="${LOGS_GROUP_NAME}"

END

コマンド:

aws logs filter-log-events \
  --log-group-name ${LOGS_GROUP_NAME}

結果(例):

{
    "events": [
        {
            "logStreamName": "2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "timestamp": xxxxxxxxxxxxx,
            "message": "START RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Version: $LATEST\n",
            "ingestionTime": xxxxxxxxxxxxx,
            "eventId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
            "logStreamName": "2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "timestamp": xxxxxxxxxxxxx,
            "message": "## ENVIRONMENT VARIABLES\n",
            "ingestionTime": xxxxxxxxxxxxx,
            "eventId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
            "logStreamName": "2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "timestamp": xxxxxxxxxxxxx,
            "message": "environ({'AWS_LAMBDA_FUNCTION_VERSION': '$LATEST', 'AWS_SESSION_TOKEN': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==', 'LD_LIBRARY_PATH': '/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib', 'LAMBDA_TASK_ROOT': '/var/task', 'AWS_LAMBDA_LOG_GROUP_NAME': '/aws/lambda/cfn-handson-cli-iam-role-lambda-novice-function', 'AWS_LAMBDA_LOG_STREAM_NAME': '2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'AWS_LAMBDA_RUNTIME_API': '127.0.0.1:9001', 'AWS_EXECUTION_ENV': 'AWS_Lambda_python3.8', 'AWS_LAMBDA_FUNCTION_NAME': 'cfn-handson-cli-iam-role-lambda-novice-function', 'AWS_XRAY_DAEMON_ADDRESS': '169.254.79.2:2000', 'PATH': '/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin', 'AWS_DEFAULT_REGION': 'ap-northeast-1', 'PWD': '/var/task', 'AWS_SECRET_ACCESS_KEY': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'LANG': 'en_US.UTF-8', 'LAMBDA_RUNTIME_DIR': '/var/runtime', 'AWS_LAMBDA_INITIALIZATION_TYPE': 'on-demand', 'TZ': ':UTC', 'AWS_REGION': 'ap-northeast-1', 'AWS_ACCESS_KEY_ID': 'ASIAXXXXXXXXXXXXXXXX', 'SHLVL': '0', '_AWS_XRAY_DAEMON_ADDRESS': '169.254.79.2', '_AWS_XRAY_DAEMON_PORT': '2000', 'AWS_XRAY_CONTEXT_MISSING': 'LOG_ERROR', '_HANDLER': 'index.lambda_handler', 'AWS_LAMBDA_FUNCTION_MEMORY_SIZE': '128', 'PYTHONPATH': '/var/runtime', '_X_AMZN_TRACE_ID': 'Root=1-xxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx;Parent=xxxxxxxxxxxxxxxx;Sampled=0'})\n",
            "ingestionTime": xxxxxxxxxxxxx,
            "eventId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
            "logStreamName": "2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "timestamp": xxxxxxxxxxxxx,
            "message": "## EVENT\n",
            "ingestionTime": xxxxxxxxxxxxx,
            "eventId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
            "logStreamName": "2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "timestamp": xxxxxxxxxxxxx,
            "message": "{}\n",
            "ingestionTime": xxxxxxxxxxxxx,
            "eventId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
            "logStreamName": "2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "timestamp": xxxxxxxxxxxxx,
            "message": "Hello Lambda World!\n",
            "ingestionTime": xxxxxxxxxxxxx,
            "eventId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
            "logStreamName": "2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "timestamp": xxxxxxxxxxxxx,
            "message": "END RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n",
            "ingestionTime": xxxxxxxxxxxxx,
            "eventId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
            "logStreamName": "2021/07/06/[$LATEST]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "timestamp": xxxxxxxxxxxxx,
            "message": "REPORT RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\tDuration: 1.25 ms\tBilled Duration: 2 ms\tMemory Size: 128 MB\tMax Memory Used: 51 MB\tInit Duration: 131.24 ms\t\n",
            "ingestionTime": xxxxxxxxxxxxx,
            "eventId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        }
    ],
    "searchedLogStreams": []
}

完了確認

本手順の主処理は、以下の完了条件を満たしたときに成功したものとします。

完了条件1: CloudWatch Logsロググループ"/aws/lambda/handson-cli-iam-1st-role-function"にログイベントが存在する。

「CloudWatch Logsロググループ"/aws/lambda/handson-cli-iam-1st-role-function"にログイベントが存在する。」ことを確認します。

注釈

主処理で確認できていればOKです。

手順の完了