feat: add terraform infra as code for AWS fargate (#1987)

This commit is contained in:
dan sweeting
2021-02-23 17:10:33 +00:00
committed by GitHub
parent 347f49b2d4
commit d341ef72aa
10 changed files with 287 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
resource "aws_cloudwatch_log_group" "main" {
name = var.app_name
retention_in_days = 3
}
locals {
stores = split(",",var.streetmerchant_env["STORES"])
metrics = {
out_of_stock = [for store in local.stores : ["${var.app_name}-out-of-stock", store]]
error = [for store in local.stores : ["${var.app_name}-error", store]]
}
}
resource "aws_cloudwatch_log_metric_filter" "out_of_stock" {
for_each = toset(local.stores)
log_group_name = aws_cloudwatch_log_group.main.name
name = "${each.key}-out-of-stock"
pattern = "${each.key} \"OUT OF STOCK\""
metric_transformation {
name = each.key
namespace = "${var.app_name}-out-of-stock"
value = 1
default_value = 0
}
}
resource "aws_cloudwatch_log_metric_filter" "error" {
for_each = toset(local.stores)
log_group_name = aws_cloudwatch_log_group.main.name
name = "${each.key}-error"
pattern = "${each.key} \"ERROR\""
metric_transformation {
name = each.key
namespace = "${var.app_name}-error"
value = 1
default_value = 0
}
}
resource "aws_cloudwatch_dashboard" "main" {
dashboard_name = "${var.app_name}-dashboard"
dashboard_body = templatefile("dashboard.json.template", {
out_of_stock = jsonencode(local.metrics.out_of_stock)
error = jsonencode(local.metrics.error)
region = var.region
})
}