
Lambda@EdgeのCloudWatch Logsの保存期間を全リージョンに対して一括設定する
Lambda@Edgeの全リージョンのCloudWatchロググループに保存期間を設定するBashスクリプト
Lambda@Edgeのログ保存期間を設定
Lambda@Edgeのログ出力仕様は独特です。
- Lambda関数は必ずバージニア北部リージョンに作成
- ログは関数が実行された最寄りリージョンに出力
- ロググループ名はリージョンに関係なく
/aws/lambda/us-east-1.関数名
この前提の上で、Lambda@Edgeの全リージョンのログ保存期間を一括設定するには次のスクリプトを実行します。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# L@E logs are displayed or stored in the Region closest to the location where the function executed. | |
# This Bash script sets retention periods for CloudWatch Log in all regions. | |
FUNCTION_NAME=LambdaAtEdgeFunctionName | |
LOG_GROUP=/aws/lambda/us-east-1.${FUNCTION_NAME} | |
# Possible Values: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653. | |
RETENTION_IN_DAYS=30 | |
for region in `aws ec2 describe-regions --query 'Regions[].{Name:RegionName}' --output text` | |
do | |
echo ${region} | |
aws logs put-retention-policy --log-group-name $LOG_GROUP --retention-in-days $RETENTION_IN_DAYS --region ${region} | |
done |
環境に合わせて、次の変数を調整してください。
- 関数名(
FUNCTION_NAME
) - 保持期間(
RETENTION_IN_DAYS
):日数で指定。取りうる値は1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653