main.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import json
  2. import os
  3. import sys
  4. import uuid
  5. import boto3
  6. import string
  7. import random
  8. from datetime import datetime
  9. def get_random_alphanumeric_string(length):
  10. letters_and_digits = string.ascii_letters + string.digits
  11. result_str = ''.join((random.choice(letters_and_digits) for i in range(length)))
  12. return result_str
  13. client = boto3.client(
  14. service_name='s3',
  15. endpoint_url='https://storage.yandexcloud.net',
  16. region_name='ru-central1'
  17. )
  18. def handler(event, context):
  19. for log_data in event['messages']:
  20. full_log = []
  21. for log_entry in log_data['details']['messages']:
  22. kubernetes_log = json.loads(log_entry['message'])
  23. full_log.append(json.dumps(kubernetes_log))
  24. bucket_name = os.environ.get('BUCKET_NAME')
  25. # object_key = os.environ.get('LOG_PREFIX')+'/'+datetime.now().strftime('%Y-%m-%d-%H:%M:%S')+'-'+get_random_alphanumeric_string(5)
  26. object_key = 'AUDIT/'+os.environ.get('CLUSTER_ID')+'/'+datetime.now().strftime('%Y-%m-%d-%H:%M:%S')+'-'+get_random_alphanumeric_string(5)
  27. object_value = '\n'.join(full_log)
  28. client.put_object(Bucket=bucket_name, Key=object_key, Body=object_value, StorageClass='COLD')
  29. print(object_value)