我有一個很長的cloudwatch日誌組列表,我需要刪除....像接近一百。既然你必須一次刪除它們,我認爲一個小小的Python腳本可以幫助我,但現在我卡住了。批量刪除使用Boto3的Cloudwatch日誌組 - delete_log_group
,這裏是我的腳本到目前爲止...
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
# )
如何採取「logGroupName」的值在我和它轉換爲字符串的delete_log_group命令可以使用和遍歷刪除所有的我的日誌組需要消失? 我嘗試使用json.loads,它具有以下...
回溯(最近通話最後一個)出錯了: 文件 「CWLogCleaner.py」 18行,在 file_parsed = json.loads(F ) 文件「/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/ init .py」,第339行,載入中 return _default_decoder .decode(S) 文件 「/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py」,364行,在解碼 obj,end = self.raw_decode(s,idx = _w(s,0).end())
或者我完全去錯誤的方式嗎?
TIA
關閉,但我不是希望刪除所有日誌...只是那些與給定前綴開頭。它給了我一些工作。謝謝 我發佈了最終結果,以防其他人想要使用它。 – TheRedSeth
是的,我提供的框架假設你會添加過濾。請注意,您的API調用可能會受到速率限制,因此請準備好處理該問題 - awscli內置了指數回退,但您可能需要對其進行補充。 – jarmod