- LocalStackを用いたAmazon CloudWatch Logsのロググループ作成方法などをメモする。
LocalStack 準備
- こちらの手順でDocker LocalStack環境を準備しておく。
ロググループ作成方法
- AWS CLIを使用し、ロググループを作成する。
1. ロググループを作成する
- ロググループ
test-log-group
を作成する。
$ aws logs create-log-group --log-group-name test-log-group --endpoint-url=http://localhost:4566 --profile localstack
2. ログストリームを作成する
- ロググループ
test-log-group
にログストリームtest-log-stream
を作成する。
$ aws logs create-log-stream --log-group-name test-log-group --log-stream-name test-log-stream --endpoint-url=http://localhost:4566 --profile localstack
3. ログイベントをPUTする
初回PUT時
- ログストリーム
test-log-stream
にログイベントをPUTする
$ aws logs put-log-events --log-group-name test-log-group --log-stream-name test-log-stream --log-events timestamp=1635589048,message='LOG EVENTS 1' --endpoint-url=http://localhost:4566 --profile localstack
2回目以降のPUT時
- トークンを取得してから、ログイベントをPUTする。
$ TOKEN=$(aws logs describe-log-streams --log-group-name test-log-group --query 'logStreams[].uploadSequenceToken' --endpoint-url=http://localhost:4566 --profile localstack --output text)
$ aws logs put-log-events \
--log-group-name test-log-group \
--log-stream-name test-log-stream \
--log-events timestamp=1635589048,message='LOG EVENTS 2' \
--sequence-token ${TOKEN} --endpoint-url=http://localhost:4566 --profile localstack
4. ログイベントを確認する
$ aws logs get-log-events --log-group-name test-log-group --log-stream-name test-log-stream --endpoint-url=http://localhost:4566 --profile localstack
{
"events": [
{
"timestamp": 1635589048,
"message": "LOG EVENTS 1",
"ingestionTime": 1635591467580
},
{
"timestamp": 1635589048,
"message": "LOG EVENTS 2",
"ingestionTime": 1635591480764
}
],
"nextForwardToken": "f/00000000000000000000000000000000000000000000000000000001",
"nextBackwardToken": "b/00000000000000000000000000000000000000000000000000000000"
}