処理の実行
ログイベント文字列を生成します。
変数の設定:
LOGS_EVENTS="timestamp=$(date +%s)000,message=\"${LOGS_EVENT_MESSAGE}\"" \
&& echo ${LOGS_EVENTS}
結果(例):
timestamp=1xxxxxxxxx000,message="event 2."
ログストリームのアップロードシーケンストークンを取得します。
コマンド:
LOGS_UPLOAD_SEQUENCE_TOKEN=$( \
aws logs describe-log-streams \
--log-group-name ${LOGS_GROUP_NAME} \
--log-stream-name-prefix ${LOGS_STREAM_NAME} \
--query 'logStreams[].uploadSequenceToken' \
--output text \
) \
&& echo ${LOGS_UPLOAD_SEQUENCE_TOKEN}
結果(例):
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CloudWatch Logsログストリームにイベントを作成します。
変数の確認:
cat << END
# LOGS_GROUP_NAME:"handson-cli-logs-1st-group"
LOGS_GROUP_NAME="${LOGS_GROUP_NAME}"
# LOGS_STREAM_NAME:"handson-cli-logs-1st-stream"
LOGS_STREAM_NAME="${LOGS_STREAM_NAME}"
# LOGS_EVENTS:"timestamp=1xxxxxxxxx000,message="event 2.""
LOGS_EVENTS="${LOGS_EVENTS}"
# LOGS_UPLOAD_SEQUENCE_TOKEN:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
LOGS_UPLOAD_SEQUENCE_TOKEN="${LOGS_UPLOAD_SEQUENCE_TOKEN}"
END
コマンド:
aws logs put-log-events \
--log-group-name ${LOGS_GROUP_NAME} \
--log-stream-name ${LOGS_STREAM_NAME} \
--log-events "${LOGS_EVENTS}" \
--sequence-token ${LOGS_UPLOAD_SEQUENCE_TOKEN}
結果(例):
{
"nextSequenceToken": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
完了確認
「Logsロググループ"handson-cli-logs-1st-group"に属するログストリーム"handson-cli-logs-1st-stream"にログイベントが存在する。」ことを確認します。
コマンド:
aws logs get-log-events \
--log-group-name ${LOGS_GROUP_NAME} \
--log-stream-name ${LOGS_STREAM_NAME} \
--query 'length(events[])'
結果(例):