ASi

CloudWatchからCLIでログを取り出す

多量ならS3にエクスポートする方が早いが、ちょっと見たい時に

### 指定期間

(
ST=$(date -j -u 010100002022 +%s);
ET=$(date -j -u 020100002022 +%s);
QUERY="word"
ID=$(aws logs start-query --log-group-name my_log_group \
  --start-time $ST --end-time $ET --query-string "$QUERY" --limit 1000 \
  --region ap-northeast-1 --profile my_prof | \
  node -e 'console.log(JSON.parse(require("fs").readFileSync("/dev/stdin","utf8")).queryId)');
JS=$(cat << END
  let str = require("fs").readFileSync("/dev/stdin","utf8")
  let o = JSON.parse(str)
  if(o.status=="Complete" || o.status=="Timeout"){
    console.log(str)
  }else{
    setTimeout(()=>{process.exit(1)},1000)
  }
END
)
while ! aws logs get-query-results --region ap-northeast-1 --profile my_prof --query-id $ID | node -e "$JS"
do :; done;
)

### tail
(CLI V2 から使える)
aws logs tail --follow my_log_group --region ap-northeast-1 --profile my_prof