cloudwatch.tf 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. resource "aws_cloudwatch_log_group" "function" {
  2. name = "/aws/lambda/${aws_lambda_function.function.function_name}"
  3. retention_in_days = 14
  4. tags = merge(var.standard_tags, var.tags)
  5. }
  6. ###
  7. ### Trigger Portal Sync Lambda with Rules and Targets
  8. ###
  9. ### Time-based rules for portal sync:
  10. resource "aws_cloudwatch_event_rule" "event_rule" {
  11. name = "threatq-lambda-data-sync"
  12. description = "Rule for threatq data sync lambda function - every 20 minutes"
  13. schedule_expression = "rate(20 minutes)"
  14. is_enabled = var.environment == "test" ? false : true
  15. tags = merge(var.standard_tags, var.tags)
  16. }
  17. ### Time-based targets for portal sync:
  18. resource "aws_cloudwatch_event_target" "event_target" {
  19. target_id = "ThreatQSync"
  20. rule = aws_cloudwatch_event_rule.event_rule.name
  21. arn = aws_lambda_function.function.arn
  22. }
  23. ### Invoke permissions for Time-based rules for portal sync:
  24. resource "aws_lambda_permission" "permission" {
  25. statement_id = "AllowExecutionFromCloudWatch"
  26. action = "lambda:InvokeFunction"
  27. function_name = aws_lambda_function.function.function_name
  28. principal = "events.amazonaws.com"
  29. source_arn = aws_cloudwatch_event_rule.event_rule.arn
  30. }