main.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import boto3
  2. import json
  3. import os
  4. client = boto3.client(
  5. service_name='sqs',
  6. endpoint_url='https://message-queue.api.cloud.yandex.net',
  7. region_name='ru-central1'
  8. )
  9. s3_client = boto3.client(
  10. service_name='s3',
  11. endpoint_url='https://storage.yandexcloud.net',
  12. region_name='ru-central1',
  13. )
  14. def handler(event, context):
  15. queue_url = os.environ.get('YMQ_URL')
  16. folder_id = os.environ.get('FOLDER_ID')
  17. cluster_id = os.environ.get('CLUSTER_ID')
  18. for message in event['messages']:
  19. if os.environ.get('AUDIT_LOG_PREFIX') is not None and message['details']['object_id'].startswith(os.environ.get('AUDIT_LOG_PREFIX')):
  20. log_type = 'AUDIT'
  21. elif os.environ.get('FALCO_LOG_PREFIX') is not None and message['details']['object_id'].startswith(os.environ.get('FALCO_LOG_PREFIX')):
  22. log_type = 'FALCO'
  23. elif os.environ.get('KYVERNO_LOG_PREFIX') is not None and message['details']['object_id'].startswith(os.environ.get('KYVERNO_LOG_PREFIX')):
  24. log_type = 'KYVERNO'
  25. else:
  26. log_type = 'UNKNOWN'
  27. metadata_list = message['details']['object_id'].split("/")
  28. data = {
  29. 'log_type': log_type,
  30. 'bucket_id': message['details']['bucket_id'],
  31. 'object_id': message['details']['object_id'],
  32. 'cloud_id': os.environ.get('CLOUD_ID'),
  33. 'folder_id': os.environ.get('FOLDER_ID'),
  34. 'cluster_id': os.environ.get('CLUSTER_ID'),
  35. 'cluster_url': "https://console.cloud.yandex.ru/folders/" + str(folder_id) + "/managed-kubernetes/cluster/" + str(cluster_id)
  36. }
  37. print(data)
  38. log_obj = s3_client.get_object(Bucket=message['details']['bucket_id'], Key=message['details']['object_id'])
  39. file_content = log_obj['Body'].read()
  40. print(file_content)
  41. client.send_message(
  42. QueueUrl=queue_url,
  43. MessageBody=json.dumps(data),
  44. MessageGroupId = "%s\%s" % (message['details']['bucket_id'],log_type)
  45. )
  46. print('Successfully sent message to queue')