Bonjour, c'est risako de stremapack. Après une longue saison des pluies, l'été est arrivé: ensoleillé: Il faut faire plus attention à ne pas avoir de coup de chaleur avec le masque tout en faisant attention à corona: mask: Je passerai cet été à faire attention à ma condition physique.
Le thème cette fois est «Gérons la période de rétention des groupes de journaux Amazon CloudWatch avec AWS Lambda»! Si vous utilisez Amazon ECS ou AWS Lambda (Lambda), les journaux continueront de s'accumuler dans Amazon CloudWatch (CoudWatch). De plus, la période de rétention du groupe de journaux CloudWatch est définie par défaut sur «Ne jamais expirer», les journaux resteront donc indéfiniment et le montant augmentera. Cette fois, afin de réduire le plus possible le montant d'argent, je voudrais introduire un mécanisme dans Lambda qui change automatiquement la période de rétention du groupe de journaux nouvellement créé à "1 mois"!
Le nom du rôle doit être ** cloudwatchtest-lambda-role **.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Le nom de la stratégie est ** cloudwatchtest-lambda-policy **. Vous avez reçu l'autorisation d'utiliser CloudWatch.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:DescribeLogGroups",
"logs:PutRetentionPolicy",
"logs:CreateLogGroup",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
La fonction Lambda a été créée ci-dessous. ** Nom de la fonction: change_Retention_for_cloudwatch-logs Exécution: Python 3.8 **
Code de fonction Je souhaite modifier la période de rétention du groupe de journaux nouvellement créé sur ** 1 mois (30 jours) **, définissez donc retentionInDays = 30. Ici, vous spécifiez la période de conservation souhaitée. Exemple: 1.3.5.7.60
import boto3
logs = boto3.client('logs')
def lambda_handler(event, context):
loggroupname = event['detail']['requestParameters']['logGroupName']
try:
response = logs.put_retention_policy(
logGroupName = loggroupname,
retentionInDays = 30
)
except Exception as e:
print(e)
Cette fois, je souhaite déplacer le Lambda créé ci-dessus avec le nouveau groupe de journaux CloudWatch en cours de création, alors faisons-le détecter par les règles d'EventBridge. Créons maintenant une règle.
La définition du modèle est définie ci-dessous. ** Modèle d'événement Modèle de correspondance d'événement: modèle personnalisé **
Mettez le code à définir dans le carré sur le côté droit.
Pour la cible, spécifiez la fonction Lambda créée précédemment.
Si la période de rétention du groupe de journaux Cloudwatch nouvellement créé est d'un mois, le contrôle de fonctionnement est OK! Créez-en un nouveau à partir de «Créer un groupe de journaux» dans la console CloudWatch.
** Immédiatement après la création **
** Après quelques minutes **
La période de rétention n'est pas reflétée immédiatement après en avoir créé une nouvelle, mais vous pouvez confirmer que la période de rétention a été définie correctement. Cela semble empêcher le journal de s'accumuler et d'augmenter le prix sans le savoir: ok_hand:
・ Qu'est-ce qu'Amazon Event Bridge? https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/what-is-amazon-eventbridge.html ・ Qu'est-ce qu'Amazon CloudWatch Logs? https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html ・ Comment puis-je réduire les frais futurs après avoir confirmé pourquoi les frais d'utilisation de CloudWatch ont été facturés? https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudwatch-understand-and-reduce-charges/?nc1=h_ls