04-audit-export.tf 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. data "archive_file" "function_export" {
  2. type = "zip"
  3. source_dir = "${path.module}/function"
  4. output_path = "${path.module}/sync.zip"
  5. }
  6. resource "yandex_function" "k8s_log_exporter" {
  7. folder_id = var.folder_id
  8. name = "k8s-log-exporter-${data.yandex_kubernetes_cluster.my_cluster.name}"
  9. runtime = "python38"
  10. entrypoint = "main.handler"
  11. memory = "128"
  12. execution_timeout = "30"
  13. service_account_id = yandex_iam_service_account.sa-writer-to-yds.id
  14. environment = {
  15. AWS_ACCESS_KEY_ID = yandex_iam_service_account_static_access_key.sa-writer-to-yds-keys.access_key
  16. AWS_SECRET_ACCESS_KEY = yandex_iam_service_account_static_access_key.sa-writer-to-yds-keys.secret_key
  17. CLOUD_ID = data.yandex_resourcemanager_folder.my_folder.cloud_id
  18. CLUSTER_ID = data.yandex_kubernetes_cluster.my_cluster.id
  19. FOLDER_ID = var.folder_id
  20. YDS_NAME = var.yds_stream_name
  21. YDS_YDB_ID = var.yds_ydb_id
  22. YDS_ID = var.yds_id
  23. }
  24. user_hash = data.archive_file.function_export.output_base64sha256
  25. content {
  26. zip_filename = data.archive_file.function_export.output_path
  27. }
  28. }
  29. resource "yandex_function_trigger" "logs-trigger" {
  30. depends_on = [yandex_function.k8s_log_exporter]
  31. name = "k8s-log-trigger-${data.yandex_kubernetes_cluster.my_cluster.name}"
  32. folder_id = var.folder_id
  33. function {
  34. id = yandex_function.k8s_log_exporter.id
  35. service_account_id = yandex_iam_service_account.sa-writer-to-yds.id
  36. }
  37. log_group {
  38. log_group_ids = [
  39. data.yandex_kubernetes_cluster.my_cluster.log_group_id,
  40. ]
  41. batch_cutoff = 10
  42. batch_size = 100
  43. }
  44. }