J'ai une assez longue liste de groupes de journaux cloudwatch que j'ai besoin de supprimer .... comme près d'une centaine. Puisque vous devez les supprimer un à la fois, j'ai pensé qu'un petit script python pourrait m'aider, mais maintenant je suis bloqué.Mass supprimer groupes de journaux Cloudwatch en utilisant Boto3 - delete_log_group
voici mon script jusqu'à présent ...
import boto3
from botocore.exceptions import ClientError
import json
#Connect to AWS using default AWS credentials in awscli config
cwlogs = boto3.client('logs')
loglist = cwlogs.describe_log_groups(
logGroupNamePrefix='/aws/lambda/staging-east1-'
)
#writes json output to file...
with open('loglist.json', 'w') as outfile:
json.dump(loglist, outfile, ensure_ascii=False, indent=4,
sort_keys=True)
#Opens file and searches through to find given loggroup name
with open("loglist.json") as f:
file_parsed = json.load(f)
for i in file_parsed['logGroups']:
print i['logGroupName']
# cwlogs.delete_log_group(
# logGroupName='string' <---here is where im stuck
# )
Comment puis-je prendre la valeur de « logGroupName » en i et le convertir en une chaîne que la commande delete_log_group peut utiliser et itérer pour supprimer tous mes groupes de journaux, je dois être parti? Je essayé d'utiliser json.loads et Errored avec ce qui suit ...
retraçage (appel le plus récent en dernier): Fichier "CWLogCleaner.py", ligne 18, dans file_parsed = json.loads (f) Fichier "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/ init .py", ligne 339, dans les charges return _default_decoder .decode (s) Fichier "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", ligne 364, en mode de décodage obj, end = self.raw_decode (s, idx = _w (s, 0) .end())Ou est-ce que je vais totalement à propos de cela dans le mauvais sens?
TIA
Fermer mais je ne cherche pas à supprimer tous les journaux ... juste ceux qui commencent par le préfixe donné. Cela me donne cependant quelque chose à travailler. Merci Je vais poster ce que je finirai avec si quelqu'un d'autre veut l'utiliser. – TheRedSeth
Ouais, je fournissais le cadre en supposant que vous ajouteriez le filtrage. Notez que vos appels d'API peuvent être limités, alors préparez-vous à y faire face - l'awscli dispose d'un back-end exponentiel intégré, mais vous devrez peut-être le compléter. – jarmod