From 5728f34b3ba2665ecbcd40c0446908d8539f274b Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Fri, 19 Mar 2021 04:18:40 +0000 Subject: [PATCH] adding dev deployment --- .infrastructure/Makefile.env | 1 + .infrastructure/dev-eu-west-1.tfvars | 19 + .infrastructure/main.tf | 144 +-- .../dev-eu-west-1/terraform.tfstate | 157 +++ .../dev-eu-west-1/terraform.tfstate.backup | 917 ++++++++++++++++++ .../.terraform.tfstate.lock.info | 1 + .../prod-eu-west-1/terraform.tfstate | 347 +------ .../prod-eu-west-1/terraform.tfstate.backup | 153 +-- 8 files changed, 1220 insertions(+), 519 deletions(-) create mode 100644 .infrastructure/dev-eu-west-1.tfvars create mode 100644 .infrastructure/terraform.tfstate.d/dev-eu-west-1/terraform.tfstate create mode 100644 .infrastructure/terraform.tfstate.d/dev-eu-west-1/terraform.tfstate.backup create mode 100644 .infrastructure/terraform.tfstate.d/prod-eu-west-1/.terraform.tfstate.lock.info diff --git a/.infrastructure/Makefile.env b/.infrastructure/Makefile.env index 33e1bad..80f60ab 100644 --- a/.infrastructure/Makefile.env +++ b/.infrastructure/Makefile.env @@ -1,3 +1,4 @@ +# ENV="prod" ENV="prod" REGION="eu-west-1" PROJECT="onmyojideckbuilder" diff --git a/.infrastructure/dev-eu-west-1.tfvars b/.infrastructure/dev-eu-west-1.tfvars new file mode 100644 index 0000000..afb233e --- /dev/null +++ b/.infrastructure/dev-eu-west-1.tfvars @@ -0,0 +1,19 @@ +# module +name = "onmyojideckbuilder" +region = "eu-west-1" +stage = "dev" +profile = "admin" + +# cloudfront +acm_certificate_arn = "arn:aws:acm:us-east-1:745437999005:certificate/11502ff4-7851-426f-92ac-27db7c44825f" +parent_zone_id = "Z0511918V1SF3MCG22JU" +aliases = ["dev.onmyojideckbuilder.com"] +allowed_origins = ["*.onmyojideckbuilder.com"] + +# s3 & lambda +acl = "private" +lambda_key = "main.zip" +source_file = "./lambda/main.js" +handler = "main.handler" +runtime = "nodejs12.x" +s3_region = "us-east-1" diff --git a/.infrastructure/main.tf b/.infrastructure/main.tf index 65c11d9..44ab32d 100644 --- a/.infrastructure/main.tf +++ b/.infrastructure/main.tf @@ -36,13 +36,15 @@ module "cloudfront_s3_cdn" { tags = local.tags aliases = var.aliases index_document = "index.html" - lambda_function_association = [ - { - event_type : "origin-request", - lambda_arn : aws_lambda_function.directory_indexes.qualified_arn, - include_body : false - } - ] + error_document = "index.html" + website_enabled = true + # lambda_function_association = [ + # { + # event_type : "origin-request", + # lambda_arn : aws_lambda_function.directory_indexes.qualified_arn, + # include_body : false + # } + # ] # this policy sets the bucket to be public for all newly created files additional_bucket_policy = <<-EOT @@ -61,74 +63,74 @@ module "cloudfront_s3_cdn" { EOT } -data "archive_file" "lambda_main" { - type = "zip" - source_file = var.source_file - output_path = "${var.source_file}.zip" -} +# data "archive_file" "lambda_main" { +# type = "zip" +# source_file = var.source_file +# output_path = "${var.source_file}.zip" +# } -resource "aws_lambda_function" "directory_indexes" { - provider = aws.us_east_1 - function_name = "${var.stage}-${var.name}-directory_indexes" - filename = "${var.source_file}.zip" - source_code_hash = data.archive_file.lambda_main.output_base64sha256 - # s3_bucket = aws_s3_bucket.lambda_s3.id - # s3_key = var.lambda_key - handler = var.handler - runtime = var.runtime - role = aws_iam_role.lambda_role.arn - publish = true - tags = local.tags +# resource "aws_lambda_function" "directory_indexes" { +# provider = aws.us_east_1 +# function_name = "${var.stage}-${var.name}-directory_indexes" +# filename = "${var.source_file}.zip" +# source_code_hash = data.archive_file.lambda_main.output_base64sha256 +# # s3_bucket = aws_s3_bucket.lambda_s3.id +# # s3_key = var.lambda_key +# handler = var.handler +# runtime = var.runtime +# role = aws_iam_role.lambda_role.arn +# publish = true +# tags = local.tags - depends_on = [aws_iam_role_policy_attachment.lambda_logging] -} +# depends_on = [aws_iam_role_policy_attachment.lambda_logging] +# } -## Lambda iam role & policies +# ## Lambda iam role & policies -resource "aws_iam_role" "lambda_role" { - name = "${var.stage}-${var.name}-lambda" - tags = local.tags +# resource "aws_iam_role" "lambda_role" { +# name = "${var.stage}-${var.name}-lambda" +# tags = local.tags - assume_role_policy = <<-EOT - { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Principal": { - "Service": [ - "lambda.amazonaws.com", - "edgelambda.amazonaws.com" - ] - }, - "Action": "sts:AssumeRole" - } - ] - } - EOT -} +# assume_role_policy = <<-EOT +# { +# "Version": "2012-10-17", +# "Statement": [ +# { +# "Effect": "Allow", +# "Principal": { +# "Service": [ +# "lambda.amazonaws.com", +# "edgelambda.amazonaws.com" +# ] +# }, +# "Action": "sts:AssumeRole" +# } +# ] +# } +# EOT +# } -resource "aws_iam_policy" "lambda_logging" { - name = "${var.stage}-${var.name}-lambda_logging" - policy = <<-EOT - { - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents" - ], - "Resource": "arn:aws:logs:*:*:*", - "Effect": "Allow" - } - ] - } - EOT -} +# resource "aws_iam_policy" "lambda_logging" { +# name = "${var.stage}-${var.name}-lambda_logging" +# policy = <<-EOT +# { +# "Version": "2012-10-17", +# "Statement": [ +# { +# "Action": [ +# "logs:CreateLogGroup", +# "logs:CreateLogStream", +# "logs:PutLogEvents" +# ], +# "Resource": "arn:aws:logs:*:*:*", +# "Effect": "Allow" +# } +# ] +# } +# EOT +# } -resource "aws_iam_role_policy_attachment" "lambda_logging" { - role = aws_iam_role.lambda_role.name - policy_arn = aws_iam_policy.lambda_logging.arn -} +# resource "aws_iam_role_policy_attachment" "lambda_logging" { +# role = aws_iam_role.lambda_role.name +# policy_arn = aws_iam_policy.lambda_logging.arn +# } diff --git a/.infrastructure/terraform.tfstate.d/dev-eu-west-1/terraform.tfstate b/.infrastructure/terraform.tfstate.d/dev-eu-west-1/terraform.tfstate new file mode 100644 index 0000000..ab25334 --- /dev/null +++ b/.infrastructure/terraform.tfstate.d/dev-eu-west-1/terraform.tfstate @@ -0,0 +1,157 @@ +{ + "version": 4, + "terraform_version": "0.13.5", + "serial": 31, + "lineage": "9232bec8-e306-d87e-d0ff-5f5901d34c76", + "outputs": {}, + "resources": [ + { + "mode": "data", + "type": "archive_file", + "name": "lambda_main", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "excludes": null, + "id": "320d4868dd37d1674e98bd790b8a54b006838d04", + "output_base64sha256": "5EVmwQDkgGfYMpMXNaWHUz3cmb/dSssoWl8mM8o3aMs=", + "output_md5": "611fc9e8b494e4b399217f632b8e35ed", + "output_path": "./lambda/main.js.zip", + "output_sha": "320d4868dd37d1674e98bd790b8a54b006838d04", + "output_size": 601, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": null, + "source_file": "./lambda/main.js", + "type": "zip" + } + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_policy", + "name": "lambda_logging", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::745437999005:policy/dev-onmyojideckbuilder-lambda_logging", + "description": "", + "id": "arn:aws:iam::745437999005:policy/dev-onmyojideckbuilder-lambda_logging", + "name": "dev-onmyojideckbuilder-lambda_logging", + "name_prefix": null, + "path": "/", + "policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ],\n \"Resource\": \"arn:aws:logs:*:*:*\",\n \"Effect\": \"Allow\"\n }\n ]\n}\n" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role", + "name": "lambda_role", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::745437999005:role/dev-onmyojideckbuilder-lambda", + "assume_role_policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"lambda.amazonaws.com\",\"edgelambda.amazonaws.com\"]},\"Action\":\"sts:AssumeRole\"}]}", + "create_date": "2021-03-19T03:02:49Z", + "description": "", + "force_detach_policies": false, + "id": "dev-onmyojideckbuilder-lambda", + "max_session_duration": 3600, + "name": "dev-onmyojideckbuilder-lambda", + "name_prefix": null, + "path": "/", + "permissions_boundary": null, + "tags": { + "Description": "website to build and share onmyoji decks", + "Project": "onmyoji-deck-builder" + }, + "unique_id": "AROA23D4RF6O5CZILWBI3" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role_policy_attachment", + "name": "lambda_logging", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "dev-onmyojideckbuilder-lambda-20210319030251359100000002", + "policy_arn": "arn:aws:iam::745437999005:policy/dev-onmyojideckbuilder-lambda_logging", + "role": "dev-onmyojideckbuilder-lambda" + }, + "private": "bnVsbA==", + "dependencies": [ + "aws_iam_policy.lambda_logging", + "aws_iam_role.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "directory_indexes", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"].us_east_1", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:lambda:us-east-1:745437999005:function:dev-onmyojideckbuilder-directory_indexes", + "dead_letter_config": [], + "description": "", + "environment": [], + "file_system_config": [], + "filename": "./lambda/main.js.zip", + "function_name": "dev-onmyojideckbuilder-directory_indexes", + "handler": "main.handler", + "id": "dev-onmyojideckbuilder-directory_indexes", + "invoke_arn": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:745437999005:function:dev-onmyojideckbuilder-directory_indexes/invocations", + "kms_key_arn": "", + "last_modified": "2021-03-19T03:02:57.785+0000", + "layers": [], + "memory_size": 128, + "publish": true, + "qualified_arn": "arn:aws:lambda:us-east-1:745437999005:function:dev-onmyojideckbuilder-directory_indexes:1", + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::745437999005:role/dev-onmyojideckbuilder-lambda", + "runtime": "nodejs12.x", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "source_code_hash": "5EVmwQDkgGfYMpMXNaWHUz3cmb/dSssoWl8mM8o3aMs=", + "source_code_size": 601, + "tags": { + "Description": "website to build and share onmyoji decks", + "Project": "onmyoji-deck-builder" + }, + "timeout": 3, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "1", + "vpc_config": [] + } + } + ] + } + ] +} diff --git a/.infrastructure/terraform.tfstate.d/dev-eu-west-1/terraform.tfstate.backup b/.infrastructure/terraform.tfstate.d/dev-eu-west-1/terraform.tfstate.backup new file mode 100644 index 0000000..457b79f --- /dev/null +++ b/.infrastructure/terraform.tfstate.d/dev-eu-west-1/terraform.tfstate.backup @@ -0,0 +1,917 @@ +{ + "version": 4, + "terraform_version": "0.13.5", + "serial": 17, + "lineage": "9232bec8-e306-d87e-d0ff-5f5901d34c76", + "outputs": { + "cf_arn": { + "value": "arn:aws:cloudfront::745437999005:distribution/E26QN6RRQRWYWL", + "type": "string" + }, + "cf_domain_name": { + "value": "d2x94vjdgw7i2d.cloudfront.net", + "type": "string" + }, + "cf_etag": { + "value": "E17BC20562UZDI", + "type": "string" + }, + "cf_hosted_zone_id": { + "value": "Z2FDTNDATAQYW2", + "type": "string" + }, + "cf_id": { + "value": "E26QN6RRQRWYWL", + "type": "string" + }, + "cf_status": { + "value": "Deployed", + "type": "string" + }, + "s3_bucket": { + "value": "dev-onmyojideckbuilder-origin", + "type": "string" + }, + "s3_bucket_domain_name": { + "value": "dev-onmyojideckbuilder-origin.s3.eu-west-1.amazonaws.com", + "type": "string" + } + }, + "resources": [ + { + "mode": "data", + "type": "archive_file", + "name": "lambda_main", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "excludes": null, + "id": "320d4868dd37d1674e98bd790b8a54b006838d04", + "output_base64sha256": "5EVmwQDkgGfYMpMXNaWHUz3cmb/dSssoWl8mM8o3aMs=", + "output_md5": "611fc9e8b494e4b399217f632b8e35ed", + "output_path": "./lambda/main.js.zip", + "output_sha": "320d4868dd37d1674e98bd790b8a54b006838d04", + "output_size": 601, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": null, + "source_file": "./lambda/main.js", + "type": "zip" + } + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_policy", + "name": "lambda_logging", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::745437999005:policy/dev-onmyojideckbuilder-lambda_logging", + "description": "", + "id": "arn:aws:iam::745437999005:policy/dev-onmyojideckbuilder-lambda_logging", + "name": "dev-onmyojideckbuilder-lambda_logging", + "name_prefix": null, + "path": "/", + "policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ],\n \"Resource\": \"arn:aws:logs:*:*:*\",\n \"Effect\": \"Allow\"\n }\n ]\n}\n" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role", + "name": "lambda_role", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::745437999005:role/dev-onmyojideckbuilder-lambda", + "assume_role_policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"lambda.amazonaws.com\",\"edgelambda.amazonaws.com\"]},\"Action\":\"sts:AssumeRole\"}]}", + "create_date": "2021-03-19T03:02:49Z", + "description": "", + "force_detach_policies": false, + "id": "dev-onmyojideckbuilder-lambda", + "max_session_duration": 3600, + "name": "dev-onmyojideckbuilder-lambda", + "name_prefix": null, + "path": "/", + "permissions_boundary": null, + "tags": { + "Description": "website to build and share onmyoji decks", + "Project": "onmyoji-deck-builder" + }, + "unique_id": "AROA23D4RF6O5CZILWBI3" + }, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role_policy_attachment", + "name": "lambda_logging", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "dev-onmyojideckbuilder-lambda-20210319030251359100000002", + "policy_arn": "arn:aws:iam::745437999005:policy/dev-onmyojideckbuilder-lambda_logging", + "role": "dev-onmyojideckbuilder-lambda" + }, + "private": "bnVsbA==", + "dependencies": [ + "aws_iam_policy.lambda_logging", + "aws_iam_role.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "directory_indexes", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"].us_east_1", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:lambda:us-east-1:745437999005:function:dev-onmyojideckbuilder-directory_indexes", + "dead_letter_config": [], + "description": "", + "environment": [], + "file_system_config": [], + "filename": "./lambda/main.js.zip", + "function_name": "dev-onmyojideckbuilder-directory_indexes", + "handler": "main.handler", + "id": "dev-onmyojideckbuilder-directory_indexes", + "invoke_arn": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:745437999005:function:dev-onmyojideckbuilder-directory_indexes/invocations", + "kms_key_arn": "", + "last_modified": "2021-03-19T03:02:57.785+0000", + "layers": null, + "memory_size": 128, + "publish": true, + "qualified_arn": "arn:aws:lambda:us-east-1:745437999005:function:dev-onmyojideckbuilder-directory_indexes:1", + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::745437999005:role/dev-onmyojideckbuilder-lambda", + "runtime": "nodejs12.x", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "source_code_hash": "5EVmwQDkgGfYMpMXNaWHUz3cmb/dSssoWl8mM8o3aMs=", + "source_code_size": 601, + "tags": { + "Description": "website to build and share onmyoji decks", + "Project": "onmyoji-deck-builder" + }, + "timeout": 3, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "1", + "vpc_config": [] + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDB9fQ==", + "dependencies": [ + "aws_iam_policy.lambda_logging", + "aws_iam_role.lambda_role", + "aws_iam_role_policy_attachment.lambda_logging", + "data.archive_file.lambda_main" + ] + } + ] + }, + { + "module": "module.cloudfront_s3_cdn", + "mode": "data", + "type": "aws_iam_policy_document", + "name": "origin", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "1888516152", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}${origin_path}*\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}", + "override_json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\":\"PublicRead\",\n \"Effect\":\"Allow\",\n \"Principal\":\"*\",\n \"Action\":[\"s3:GetObject\"],\n \"Resource\":\"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\"\n }\n ]\n}\n", + "policy_id": null, + "source_json": null, + "statement": [ + { + "actions": [ + "s3:GetObject" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "${cloudfront_origin_access_identity_iam_arn}" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::${bucket_name}${origin_path}*" + ], + "sid": "S3GetObjectForCloudFront" + }, + { + "actions": [ + "s3:ListBucket" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "${cloudfront_origin_access_identity_iam_arn}" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::${bucket_name}" + ], + "sid": "S3ListBucketForCloudFront" + } + ], + "version": "2012-10-17" + } + } + ] + }, + { + "module": "module.cloudfront_s3_cdn", + "mode": "data", + "type": "aws_iam_policy_document", + "name": "origin_website", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "1923286579", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}${origin_path}*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}", + "override_json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\":\"PublicRead\",\n \"Effect\":\"Allow\",\n \"Principal\":\"*\",\n \"Action\":[\"s3:GetObject\"],\n \"Resource\":\"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\"\n }\n ]\n}\n", + "policy_id": null, + "source_json": null, + "statement": [ + { + "actions": [ + "s3:GetObject" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::${bucket_name}${origin_path}*" + ], + "sid": "S3GetObjectForCloudFront" + } + ], + "version": "2012-10-17" + } + } + ] + }, + { + "module": "module.cloudfront_s3_cdn", + "mode": "data", + "type": "aws_s3_bucket", + "name": "selected", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:s3:::dev-onmyojideckbuilder-origin", + "bucket": "dev-onmyojideckbuilder-origin", + "bucket_domain_name": "dev-onmyojideckbuilder-origin.s3.amazonaws.com", + "bucket_regional_domain_name": "dev-onmyojideckbuilder-origin.s3.eu-west-1.amazonaws.com", + "hosted_zone_id": "Z1BKCTXD74EZPE", + "id": "dev-onmyojideckbuilder-origin", + "region": "eu-west-1", + "website_domain": null, + "website_endpoint": null + } + } + ] + }, + { + "module": "module.cloudfront_s3_cdn", + "mode": "data", + "type": "template_file", + "name": "default", + "provider": "provider[\"registry.terraform.io/hashicorp/template\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "filename": null, + "id": "abe7f8da350b4684c009a2f2f592539d4da30df5dbd3ec6d48e40259ca6af1c0", + "rendered": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1UEUM41WQK5JU\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1UEUM41WQK5JU\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}", + "template": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}${origin_path}*\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}", + "vars": { + "bucket_name": "dev-onmyojideckbuilder-origin", + "cloudfront_origin_access_identity_iam_arn": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1UEUM41WQK5JU", + "origin_path": "/" + } + } + } + ] + }, + { + "module": "module.cloudfront_s3_cdn", + "mode": "managed", + "type": "aws_cloudfront_distribution", + "name": "default", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "active_trusted_signers": { + "enabled": "false", + "items.#": "0" + }, + "aliases": [ + "dev.onmyojideckbuilder.com" + ], + "arn": "arn:aws:cloudfront::745437999005:distribution/E26QN6RRQRWYWL", + "cache_behavior": [], + "caller_reference": "terraform-20210319030304382400000003", + "comment": "Managed by Terraform", + "custom_error_response": [], + "default_cache_behavior": [ + { + "allowed_methods": [ + "DELETE", + "GET", + "HEAD", + "OPTIONS", + "PATCH", + "POST", + "PUT" + ], + "cached_methods": [ + "GET", + "HEAD" + ], + "compress": true, + "default_ttl": 60, + "field_level_encryption_id": "", + "forwarded_values": [ + { + "cookies": [ + { + "forward": "none", + "whitelisted_names": null + } + ], + "headers": [ + "Access-Control-Request-Headers", + "Access-Control-Request-Method", + "Origin" + ], + "query_string": false, + "query_string_cache_keys": null + } + ], + "lambda_function_association": [ + { + "event_type": "origin-request", + "include_body": false, + "lambda_arn": "arn:aws:lambda:us-east-1:745437999005:function:dev-onmyojideckbuilder-directory_indexes:1" + } + ], + "max_ttl": 31536000, + "min_ttl": 0, + "smooth_streaming": false, + "target_origin_id": "dev-onmyojideckbuilder", + "trusted_signers": [], + "viewer_protocol_policy": "redirect-to-https" + } + ], + "default_root_object": "index.html", + "domain_name": "d2x94vjdgw7i2d.cloudfront.net", + "enabled": true, + "etag": "E17BC20562UZDI", + "hosted_zone_id": "Z2FDTNDATAQYW2", + "http_version": "http2", + "id": "E26QN6RRQRWYWL", + "in_progress_validation_batches": 0, + "is_ipv6_enabled": true, + "last_modified_time": "2021-03-19 03:03:06.81 +0000 UTC", + "logging_config": [ + { + "bucket": "dev-onmyojideckbuilder-logs.s3.amazonaws.com", + "include_cookies": false, + "prefix": "" + } + ], + "ordered_cache_behavior": [], + "origin": [ + { + "custom_header": [], + "custom_origin_config": [], + "domain_name": "dev-onmyojideckbuilder-origin.s3.eu-west-1.amazonaws.com", + "origin_id": "dev-onmyojideckbuilder", + "origin_path": "", + "s3_origin_config": [ + { + "origin_access_identity": "origin-access-identity/cloudfront/E1UEUM41WQK5JU" + } + ] + } + ], + "origin_group": [], + "price_class": "PriceClass_100", + "restrictions": [ + { + "geo_restriction": [ + { + "locations": null, + "restriction_type": "none" + } + ] + } + ], + "retain_on_delete": false, + "status": "Deployed", + "tags": { + "Description": "website to build and share onmyoji decks", + "Name": "dev-onmyojideckbuilder", + "Project": "onmyoji-deck-builder", + "Stage": "dev" + }, + "viewer_certificate": [ + { + "acm_certificate_arn": "arn:aws:acm:us-east-1:745437999005:certificate/11502ff4-7851-426f-92ac-27db7c44825f", + "cloudfront_default_certificate": false, + "iam_certificate_id": "", + "minimum_protocol_version": "TLSv1", + "ssl_support_method": "sni-only" + } + ], + "wait_for_deployment": true, + "web_acl_id": "" + }, + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", + "dependencies": [ + "aws_iam_policy.lambda_logging", + "aws_iam_role.lambda_role", + "aws_iam_role_policy_attachment.lambda_logging", + "aws_lambda_function.directory_indexes", + "data.archive_file.lambda_main", + "module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default", + "module.cloudfront_s3_cdn.aws_s3_bucket.origin", + "module.cloudfront_s3_cdn.data.aws_s3_bucket.selected", + "module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default" + ] + } + ] + }, + { + "module": "module.cloudfront_s3_cdn", + "mode": "managed", + "type": "aws_cloudfront_origin_access_identity", + "name": "default", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "caller_reference": "terraform-20210319030249312700000001", + "cloudfront_access_identity_path": "origin-access-identity/cloudfront/E1UEUM41WQK5JU", + "comment": "dev-onmyojideckbuilder", + "etag": "E2JOLG4NEGN166", + "iam_arn": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1UEUM41WQK5JU", + "id": "E1UEUM41WQK5JU", + "s3_canonical_user_id": "f4cc20ef906ac3e3520bb2d17bd4b7348eb7aedbcc4e9777821743621a394341f556a81a9a0fe994e2d52b0327d7c815" + }, + "private": "bnVsbA==" + } + ] + }, + { + "module": "module.cloudfront_s3_cdn", + "mode": "managed", + "type": "aws_s3_bucket", + "name": "origin", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": "private", + "arn": "arn:aws:s3:::dev-onmyojideckbuilder-origin", + "bucket": "dev-onmyojideckbuilder-origin", + "bucket_domain_name": "dev-onmyojideckbuilder-origin.s3.amazonaws.com", + "bucket_prefix": null, + "bucket_regional_domain_name": "dev-onmyojideckbuilder-origin.s3.eu-west-1.amazonaws.com", + "cors_rule": [ + { + "allowed_headers": [ + "*" + ], + "allowed_methods": [ + "GET", + "HEAD", + "PUT", + "POST" + ], + "allowed_origins": [ + "*.onmyojideckbuilder.com" + ], + "expose_headers": [ + "ETag" + ], + "max_age_seconds": 3600 + }, + { + "allowed_headers": [ + "*" + ], + "allowed_methods": [ + "GET", + "HEAD", + "PUT", + "POST" + ], + "allowed_origins": [ + "dev.onmyojideckbuilder.com" + ], + "expose_headers": [ + "ETag" + ], + "max_age_seconds": 3600 + } + ], + "force_destroy": true, + "grant": [], + "hosted_zone_id": "Z1BKCTXD74EZPE", + "id": "dev-onmyojideckbuilder-origin", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "policy": null, + "region": "eu-west-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ] + } + ] + } + ], + "tags": { + "Attributes": "origin", + "Description": "website to build and share onmyoji decks", + "Name": "dev-onmyojideckbuilder-origin", + "Project": "onmyoji-deck-builder", + "Stage": "dev" + }, + "versioning": [ + { + "enabled": true, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "private": "bnVsbA==" + } + ] + }, + { + "module": "module.cloudfront_s3_cdn", + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "default", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "bucket": "dev-onmyojideckbuilder-origin", + "id": "dev-onmyojideckbuilder-origin", + "policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1UEUM41WQK5JU\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1UEUM41WQK5JU\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::dev-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}" + }, + "private": "bnVsbA==", + "dependencies": [ + "module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default", + "module.cloudfront_s3_cdn.aws_s3_bucket.origin", + "module.cloudfront_s3_cdn.data.aws_iam_policy_document.origin", + "module.cloudfront_s3_cdn.data.aws_iam_policy_document.origin_website", + "module.cloudfront_s3_cdn.data.template_file.default" + ] + } + ] + }, + { + "module": "module.cloudfront_s3_cdn.module.dns", + "mode": "data", + "type": "aws_route53_zone", + "name": "default", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "caller_reference": "481ca519-c2ac-4885-b585-8283334987f7", + "comment": "", + "id": "Z0511918V1SF3MCG22JU", + "linked_service_description": null, + "linked_service_principal": null, + "name": "onmyojideckbuilder.com.", + "name_servers": [ + "ns-1501.awsdns-59.org", + "ns-1652.awsdns-14.co.uk", + "ns-176.awsdns-22.com", + "ns-530.awsdns-02.net" + ], + "private_zone": false, + "resource_record_set_count": 5, + "tags": {}, + "vpc_id": null, + "zone_id": "Z0511918V1SF3MCG22JU" + } + } + ] + }, + { + "module": "module.cloudfront_s3_cdn.module.dns", + "mode": "managed", + "type": "aws_route53_record", + "name": "default", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 2, + "attributes": { + "alias": [ + { + "evaluate_target_health": false, + "name": "d2x94vjdgw7i2d.cloudfront.net", + "zone_id": "Z2FDTNDATAQYW2" + } + ], + "allow_overwrite": false, + "failover_routing_policy": [], + "fqdn": "dev.onmyojideckbuilder.com", + "geolocation_routing_policy": [], + "health_check_id": null, + "id": "Z0511918V1SF3MCG22JU_dev.onmyojideckbuilder.com_A", + "latency_routing_policy": [], + "multivalue_answer_routing_policy": null, + "name": "dev.onmyojideckbuilder.com", + "records": null, + "set_identifier": null, + "ttl": null, + "type": "A", + "weighted_routing_policy": [], + "zone_id": "Z0511918V1SF3MCG22JU" + }, + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "aws_iam_policy.lambda_logging", + "aws_iam_role.lambda_role", + "aws_iam_role_policy_attachment.lambda_logging", + "aws_lambda_function.directory_indexes", + "data.archive_file.lambda_main", + "module.cloudfront_s3_cdn.aws_cloudfront_distribution.default", + "module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default", + "module.cloudfront_s3_cdn.aws_s3_bucket.origin", + "module.cloudfront_s3_cdn.data.aws_s3_bucket.selected", + "module.cloudfront_s3_cdn.module.dns.data.aws_route53_zone.default", + "module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default" + ] + } + ] + }, + { + "module": "module.cloudfront_s3_cdn.module.dns", + "mode": "managed", + "type": "aws_route53_record", + "name": "ipv6", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 2, + "attributes": { + "alias": [ + { + "evaluate_target_health": false, + "name": "d2x94vjdgw7i2d.cloudfront.net", + "zone_id": "Z2FDTNDATAQYW2" + } + ], + "allow_overwrite": false, + "failover_routing_policy": [], + "fqdn": "dev.onmyojideckbuilder.com", + "geolocation_routing_policy": [], + "health_check_id": null, + "id": "Z0511918V1SF3MCG22JU_dev.onmyojideckbuilder.com_AAAA", + "latency_routing_policy": [], + "multivalue_answer_routing_policy": null, + "name": "dev.onmyojideckbuilder.com", + "records": null, + "set_identifier": null, + "ttl": null, + "type": "AAAA", + "weighted_routing_policy": [], + "zone_id": "Z0511918V1SF3MCG22JU" + }, + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", + "dependencies": [ + "aws_iam_policy.lambda_logging", + "aws_iam_role.lambda_role", + "aws_iam_role_policy_attachment.lambda_logging", + "aws_lambda_function.directory_indexes", + "data.archive_file.lambda_main", + "module.cloudfront_s3_cdn.aws_cloudfront_distribution.default", + "module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default", + "module.cloudfront_s3_cdn.aws_s3_bucket.origin", + "module.cloudfront_s3_cdn.data.aws_s3_bucket.selected", + "module.cloudfront_s3_cdn.module.dns.data.aws_route53_zone.default", + "module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default" + ] + } + ] + }, + { + "module": "module.cloudfront_s3_cdn.module.logs", + "mode": "managed", + "type": "aws_s3_bucket", + "name": "default", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": "log-delivery-write", + "arn": "arn:aws:s3:::dev-onmyojideckbuilder-logs", + "bucket": "dev-onmyojideckbuilder-logs", + "bucket_domain_name": "dev-onmyojideckbuilder-logs.s3.amazonaws.com", + "bucket_prefix": null, + "bucket_regional_domain_name": "dev-onmyojideckbuilder-logs.s3.eu-west-1.amazonaws.com", + "cors_rule": [], + "force_destroy": true, + "grant": [], + "hosted_zone_id": "Z1BKCTXD74EZPE", + "id": "dev-onmyojideckbuilder-logs", + "lifecycle_rule": [ + { + "abort_incomplete_multipart_upload_days": 5, + "enabled": true, + "expiration": [ + { + "date": "", + "days": 90, + "expired_object_delete_marker": false + } + ], + "id": "dev-onmyojideckbuilder-logs", + "noncurrent_version_expiration": [ + { + "days": 90 + } + ], + "noncurrent_version_transition": [ + { + "days": 30, + "storage_class": "GLACIER" + } + ], + "prefix": "", + "tags": null, + "transition": [ + { + "date": "", + "days": 30, + "storage_class": "STANDARD_IA" + }, + { + "date": "", + "days": 60, + "storage_class": "GLACIER" + } + ] + } + ], + "logging": [], + "object_lock_configuration": [], + "policy": "", + "region": "eu-west-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ] + } + ] + } + ], + "tags": { + "Attributes": "logs", + "Description": "website to build and share onmyoji decks", + "Name": "dev-onmyojideckbuilder-logs", + "Project": "onmyoji-deck-builder", + "Stage": "dev" + }, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "private": "bnVsbA==" + } + ] + }, + { + "module": "module.cloudfront_s3_cdn.module.logs", + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "default", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "block_public_acls": true, + "block_public_policy": true, + "bucket": "dev-onmyojideckbuilder-logs", + "id": "dev-onmyojideckbuilder-logs", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "private": "bnVsbA==", + "dependencies": [ + "module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default" + ] + } + ] + } + ] +} diff --git a/.infrastructure/terraform.tfstate.d/prod-eu-west-1/.terraform.tfstate.lock.info b/.infrastructure/terraform.tfstate.d/prod-eu-west-1/.terraform.tfstate.lock.info new file mode 100644 index 0000000..28f1c9f --- /dev/null +++ b/.infrastructure/terraform.tfstate.d/prod-eu-west-1/.terraform.tfstate.lock.info @@ -0,0 +1 @@ +{"ID":"c19682bd-14f8-1b87-690f-8ad10f3bdb6a","Operation":"OperationTypeApply","Info":"","Who":"dtomlinson@daniel-macbook.local","Version":"0.13.5","Created":"2021-03-19T04:14:46.719919Z","Path":"terraform.tfstate.d/prod-eu-west-1/terraform.tfstate"} \ No newline at end of file diff --git a/.infrastructure/terraform.tfstate.d/prod-eu-west-1/terraform.tfstate b/.infrastructure/terraform.tfstate.d/prod-eu-west-1/terraform.tfstate index a8d3551..33e91c3 100644 --- a/.infrastructure/terraform.tfstate.d/prod-eu-west-1/terraform.tfstate +++ b/.infrastructure/terraform.tfstate.d/prod-eu-west-1/terraform.tfstate @@ -1,197 +1,19 @@ { "version": 4, "terraform_version": "0.13.5", - "serial": 41, + "serial": 72, "lineage": "baf13f49-a91e-4ef3-40f8-b010f53cf030", "outputs": { - "cf_arn": { - "value": "arn:aws:cloudfront::745437999005:distribution/E8811LTEVQX71", - "type": "string" - }, - "cf_domain_name": { - "value": "duzt5fbttumv4.cloudfront.net", - "type": "string" - }, - "cf_etag": { - "value": "EWX7K6JLLQ02T", - "type": "string" - }, - "cf_hosted_zone_id": { - "value": "Z2FDTNDATAQYW2", - "type": "string" - }, - "cf_id": { - "value": "E8811LTEVQX71", - "type": "string" - }, - "cf_status": { - "value": "Deployed", - "type": "string" - }, "s3_bucket": { "value": "prod-onmyojideckbuilder-origin", "type": "string" }, "s3_bucket_domain_name": { - "value": "prod-onmyojideckbuilder-origin.s3.eu-west-1.amazonaws.com", + "value": "prod-onmyojideckbuilder-origin.s3-website.eu-west-1.amazonaws.com", "type": "string" } }, "resources": [ - { - "mode": "data", - "type": "archive_file", - "name": "lambda_main", - "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "excludes": null, - "id": "320d4868dd37d1674e98bd790b8a54b006838d04", - "output_base64sha256": "5EVmwQDkgGfYMpMXNaWHUz3cmb/dSssoWl8mM8o3aMs=", - "output_md5": "611fc9e8b494e4b399217f632b8e35ed", - "output_path": "./lambda/main.js.zip", - "output_sha": "320d4868dd37d1674e98bd790b8a54b006838d04", - "output_size": 601, - "source": [], - "source_content": null, - "source_content_filename": null, - "source_dir": null, - "source_file": "./lambda/main.js", - "type": "zip" - } - } - ] - }, - { - "mode": "managed", - "type": "aws_iam_policy", - "name": "lambda_logging", - "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "arn": "arn:aws:iam::745437999005:policy/prod-onmyojideckbuilder-lambda_logging", - "description": "", - "id": "arn:aws:iam::745437999005:policy/prod-onmyojideckbuilder-lambda_logging", - "name": "prod-onmyojideckbuilder-lambda_logging", - "name_prefix": null, - "path": "/", - "policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ],\n \"Resource\": \"arn:aws:logs:*:*:*\",\n \"Effect\": \"Allow\"\n }\n ]\n}\n" - }, - "private": "bnVsbA==" - } - ] - }, - { - "mode": "managed", - "type": "aws_iam_role", - "name": "lambda_role", - "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "arn": "arn:aws:iam::745437999005:role/prod-onmyojideckbuilder-lambda", - "assume_role_policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"edgelambda.amazonaws.com\",\"lambda.amazonaws.com\"]},\"Action\":\"sts:AssumeRole\"}]}", - "create_date": "2021-03-18T00:54:31Z", - "description": "", - "force_detach_policies": false, - "id": "prod-onmyojideckbuilder-lambda", - "max_session_duration": 3600, - "name": "prod-onmyojideckbuilder-lambda", - "name_prefix": null, - "path": "/", - "permissions_boundary": null, - "tags": { - "Description": "website to build and share onmyoji decks", - "Project": "onmyoji-deck-builder" - }, - "unique_id": "AROA23D4RF6OTBMEPSDVE" - }, - "private": "bnVsbA==" - } - ] - }, - { - "mode": "managed", - "type": "aws_iam_role_policy_attachment", - "name": "lambda_logging", - "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "prod-onmyojideckbuilder-lambda-20210318005433729100000002", - "policy_arn": "arn:aws:iam::745437999005:policy/prod-onmyojideckbuilder-lambda_logging", - "role": "prod-onmyojideckbuilder-lambda" - }, - "private": "bnVsbA==", - "dependencies": [ - "aws_iam_policy.lambda_logging", - "aws_iam_role.lambda_role" - ] - } - ] - }, - { - "mode": "managed", - "type": "aws_lambda_function", - "name": "directory_indexes", - "provider": "provider[\"registry.terraform.io/hashicorp/aws\"].us_east_1", - "instances": [ - { - "schema_version": 0, - "attributes": { - "arn": "arn:aws:lambda:us-east-1:745437999005:function:prod-onmyojideckbuilder-directory_indexes", - "dead_letter_config": [], - "description": "", - "environment": [], - "file_system_config": [], - "filename": "./lambda/main.js.zip", - "function_name": "prod-onmyojideckbuilder-directory_indexes", - "handler": "main.handler", - "id": "prod-onmyojideckbuilder-directory_indexes", - "invoke_arn": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:745437999005:function:prod-onmyojideckbuilder-directory_indexes/invocations", - "kms_key_arn": "", - "last_modified": "2021-03-18T00:54:40.108+0000", - "layers": [], - "memory_size": 128, - "publish": true, - "qualified_arn": "arn:aws:lambda:us-east-1:745437999005:function:prod-onmyojideckbuilder-directory_indexes:1", - "reserved_concurrent_executions": -1, - "role": "arn:aws:iam::745437999005:role/prod-onmyojideckbuilder-lambda", - "runtime": "nodejs12.x", - "s3_bucket": null, - "s3_key": null, - "s3_object_version": null, - "source_code_hash": "5EVmwQDkgGfYMpMXNaWHUz3cmb/dSssoWl8mM8o3aMs=", - "source_code_size": 601, - "tags": { - "Description": "website to build and share onmyoji decks", - "Project": "onmyoji-deck-builder" - }, - "timeout": 3, - "timeouts": null, - "tracing_config": [ - { - "mode": "PassThrough" - } - ], - "version": "1", - "vpc_config": [] - }, - "dependencies": [ - "aws_iam_policy.lambda_logging", - "aws_iam_role.lambda_role", - "aws_iam_role_policy_attachment.lambda_logging", - "data.archive_file.lambda_main" - ] - } - ] - }, { "module": "module.cloudfront_s3_cdn", "mode": "data", @@ -319,8 +141,8 @@ "hosted_zone_id": "Z1BKCTXD74EZPE", "id": "prod-onmyojideckbuilder-origin", "region": "eu-west-1", - "website_domain": null, - "website_endpoint": null + "website_domain": "s3-website-eu-west-1.amazonaws.com", + "website_endpoint": "prod-onmyojideckbuilder-origin.s3-website-eu-west-1.amazonaws.com" } } ] @@ -336,12 +158,12 @@ "schema_version": 0, "attributes": { "filename": null, - "id": "541c995169040d9ea986cc60699d59e5d5514e3b475898df8051e5638f80277c", - "rendered": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3899P9Y5AOS3U\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3899P9Y5AOS3U\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}", - "template": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}${origin_path}*\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}", + "id": "d2728ff6ec7bcb2e66ffe5cd0e8a610cec902d51af8660f5da737b296b07277c", + "rendered": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}", + "template": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}${origin_path}*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}", "vars": { "bucket_name": "prod-onmyojideckbuilder-origin", - "cloudfront_origin_access_identity_iam_arn": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3899P9Y5AOS3U", + "cloudfront_origin_access_identity_iam_arn": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1T3NXW4C57SNI", "origin_path": "/" } } @@ -365,9 +187,9 @@ "aliases": [ "onmyojideckbuilder.com" ], - "arn": "arn:aws:cloudfront::745437999005:distribution/E8811LTEVQX71", + "arn": "arn:aws:cloudfront::745437999005:distribution/E5L0TBPLNYZX7", "cache_behavior": [], - "caller_reference": "terraform-20210318012218188400000002", + "caller_reference": "terraform-20210319041540786500000002", "comment": "Managed by Terraform", "custom_error_response": [], "default_cache_behavior": [ @@ -405,13 +227,7 @@ "query_string_cache_keys": null } ], - "lambda_function_association": [ - { - "event_type": "origin-request", - "include_body": false, - "lambda_arn": "arn:aws:lambda:us-east-1:745437999005:function:prod-onmyojideckbuilder-directory_indexes:1" - } - ], + "lambda_function_association": [], "max_ttl": 31536000, "min_ttl": 0, "smooth_streaming": false, @@ -421,15 +237,15 @@ } ], "default_root_object": "index.html", - "domain_name": "duzt5fbttumv4.cloudfront.net", + "domain_name": "daws4um51qzk4.cloudfront.net", "enabled": true, - "etag": "EWX7K6JLLQ02T", + "etag": "EJ2IXAOH2KIVR", "hosted_zone_id": "Z2FDTNDATAQYW2", "http_version": "http2", - "id": "E8811LTEVQX71", + "id": "E5L0TBPLNYZX7", "in_progress_validation_batches": 0, "is_ipv6_enabled": true, - "last_modified_time": "2021-03-18 01:22:20.572 +0000 UTC", + "last_modified_time": "2021-03-19 04:15:43.087 +0000 UTC", "logging_config": [ { "bucket": "prod-onmyojideckbuilder-logs.s3.amazonaws.com", @@ -441,15 +257,24 @@ "origin": [ { "custom_header": [], - "custom_origin_config": [], - "domain_name": "prod-onmyojideckbuilder-origin.s3.eu-west-1.amazonaws.com", + "custom_origin_config": [ + { + "http_port": 80, + "https_port": 443, + "origin_keepalive_timeout": 5, + "origin_protocol_policy": "http-only", + "origin_read_timeout": 30, + "origin_ssl_protocols": [ + "TLSv1", + "TLSv1.1", + "TLSv1.2" + ] + } + ], + "domain_name": "prod-onmyojideckbuilder-origin.s3-website.eu-west-1.amazonaws.com", "origin_id": "prod-onmyojideckbuilder", "origin_path": "", - "s3_origin_config": [ - { - "origin_access_identity": "origin-access-identity/cloudfront/E3899P9Y5AOS3U" - } - ] + "s3_origin_config": [] } ], "origin_group": [], @@ -486,7 +311,6 @@ }, "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", "dependencies": [ - "aws_lambda_function.directory_indexes", "module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default", "module.cloudfront_s3_cdn.aws_s3_bucket.origin", "module.cloudfront_s3_cdn.data.aws_s3_bucket.selected", @@ -506,13 +330,13 @@ "index_key": 0, "schema_version": 0, "attributes": { - "caller_reference": "terraform-20210318012209443100000001", - "cloudfront_access_identity_path": "origin-access-identity/cloudfront/E3899P9Y5AOS3U", + "caller_reference": "terraform-20210319041535137100000001", + "cloudfront_access_identity_path": "origin-access-identity/cloudfront/E1T3NXW4C57SNI", "comment": "prod-onmyojideckbuilder", - "etag": "E1OBPL8GJS1IFK", - "iam_arn": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3899P9Y5AOS3U", - "id": "E3899P9Y5AOS3U", - "s3_canonical_user_id": "c6ca7e493807b1f8d4d0384bd9afb42dd1fae658b306d8e2acb0953a4f7d8d8edb3a33810cf86f79c01990e91c97e112" + "etag": "E68AOIVG56N5A", + "iam_arn": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1T3NXW4C57SNI", + "id": "E1T3NXW4C57SNI", + "s3_canonical_user_id": "682642153922ad412e294e6f379b5ae0ae60c161e20e0fd5dc47d5fb1051d3282ab7d7edd050d78e448363fcde4e0a31" }, "private": "bnVsbA==" } @@ -612,9 +436,16 @@ "mfa_delete": false } ], - "website": [], - "website_domain": null, - "website_endpoint": null + "website": [ + { + "error_document": "index.html", + "index_document": "index.html", + "redirect_all_requests_to": "", + "routing_rules": "" + } + ], + "website_domain": "s3-website-eu-west-1.amazonaws.com", + "website_endpoint": "prod-onmyojideckbuilder-origin.s3-website-eu-west-1.amazonaws.com" }, "private": "bnVsbA==" } @@ -633,7 +464,7 @@ "attributes": { "bucket": "prod-onmyojideckbuilder-origin", "id": "prod-onmyojideckbuilder-origin", - "policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3899P9Y5AOS3U\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3899P9Y5AOS3U\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}" + "policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-onmyojideckbuilder-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}" }, "private": "bnVsbA==", "dependencies": [ @@ -684,46 +515,7 @@ "type": "aws_route53_record", "name": "default", "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", - "instances": [ - { - "index_key": 0, - "schema_version": 2, - "attributes": { - "alias": [ - { - "evaluate_target_health": false, - "name": "duzt5fbttumv4.cloudfront.net", - "zone_id": "Z2FDTNDATAQYW2" - } - ], - "allow_overwrite": false, - "failover_routing_policy": [], - "fqdn": "onmyojideckbuilder.com", - "geolocation_routing_policy": [], - "health_check_id": null, - "id": "Z0511918V1SF3MCG22JU_onmyojideckbuilder.com_A", - "latency_routing_policy": [], - "multivalue_answer_routing_policy": null, - "name": "onmyojideckbuilder.com", - "records": null, - "set_identifier": null, - "ttl": null, - "type": "A", - "weighted_routing_policy": [], - "zone_id": "Z0511918V1SF3MCG22JU" - }, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", - "dependencies": [ - "aws_lambda_function.directory_indexes", - "module.cloudfront_s3_cdn.aws_cloudfront_distribution.default", - "module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default", - "module.cloudfront_s3_cdn.aws_s3_bucket.origin", - "module.cloudfront_s3_cdn.data.aws_s3_bucket.selected", - "module.cloudfront_s3_cdn.module.dns.data.aws_route53_zone.default", - "module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default" - ] - } - ] + "instances": [] }, { "module": "module.cloudfront_s3_cdn.module.dns", @@ -731,46 +523,7 @@ "type": "aws_route53_record", "name": "ipv6", "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", - "instances": [ - { - "index_key": 0, - "schema_version": 2, - "attributes": { - "alias": [ - { - "evaluate_target_health": false, - "name": "duzt5fbttumv4.cloudfront.net", - "zone_id": "Z2FDTNDATAQYW2" - } - ], - "allow_overwrite": false, - "failover_routing_policy": [], - "fqdn": "onmyojideckbuilder.com", - "geolocation_routing_policy": [], - "health_check_id": null, - "id": "Z0511918V1SF3MCG22JU_onmyojideckbuilder.com_AAAA", - "latency_routing_policy": [], - "multivalue_answer_routing_policy": null, - "name": "onmyojideckbuilder.com", - "records": null, - "set_identifier": null, - "ttl": null, - "type": "AAAA", - "weighted_routing_policy": [], - "zone_id": "Z0511918V1SF3MCG22JU" - }, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==", - "dependencies": [ - "aws_lambda_function.directory_indexes", - "module.cloudfront_s3_cdn.aws_cloudfront_distribution.default", - "module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default", - "module.cloudfront_s3_cdn.aws_s3_bucket.origin", - "module.cloudfront_s3_cdn.data.aws_s3_bucket.selected", - "module.cloudfront_s3_cdn.module.dns.data.aws_route53_zone.default", - "module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default" - ] - } - ] + "instances": [] }, { "module": "module.cloudfront_s3_cdn.module.logs", diff --git a/.infrastructure/terraform.tfstate.d/prod-eu-west-1/terraform.tfstate.backup b/.infrastructure/terraform.tfstate.d/prod-eu-west-1/terraform.tfstate.backup index a4820b7..f22df75 100644 --- a/.infrastructure/terraform.tfstate.d/prod-eu-west-1/terraform.tfstate.backup +++ b/.infrastructure/terraform.tfstate.d/prod-eu-west-1/terraform.tfstate.backup @@ -1,157 +1,8 @@ { "version": 4, "terraform_version": "0.13.5", - "serial": 28, + "serial": 62, "lineage": "baf13f49-a91e-4ef3-40f8-b010f53cf030", "outputs": {}, - "resources": [ - { - "mode": "data", - "type": "archive_file", - "name": "lambda_main", - "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "excludes": null, - "id": "320d4868dd37d1674e98bd790b8a54b006838d04", - "output_base64sha256": "5EVmwQDkgGfYMpMXNaWHUz3cmb/dSssoWl8mM8o3aMs=", - "output_md5": "611fc9e8b494e4b399217f632b8e35ed", - "output_path": "./lambda/main.js.zip", - "output_sha": "320d4868dd37d1674e98bd790b8a54b006838d04", - "output_size": 601, - "source": [], - "source_content": null, - "source_content_filename": null, - "source_dir": null, - "source_file": "./lambda/main.js", - "type": "zip" - } - } - ] - }, - { - "mode": "managed", - "type": "aws_iam_policy", - "name": "lambda_logging", - "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "arn": "arn:aws:iam::745437999005:policy/prod-onmyojideckbuilder-lambda_logging", - "description": "", - "id": "arn:aws:iam::745437999005:policy/prod-onmyojideckbuilder-lambda_logging", - "name": "prod-onmyojideckbuilder-lambda_logging", - "name_prefix": null, - "path": "/", - "policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ],\n \"Resource\": \"arn:aws:logs:*:*:*\",\n \"Effect\": \"Allow\"\n }\n ]\n}\n" - }, - "private": "bnVsbA==" - } - ] - }, - { - "mode": "managed", - "type": "aws_iam_role", - "name": "lambda_role", - "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "arn": "arn:aws:iam::745437999005:role/prod-onmyojideckbuilder-lambda", - "assume_role_policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"lambda.amazonaws.com\",\"edgelambda.amazonaws.com\"]},\"Action\":\"sts:AssumeRole\"}]}", - "create_date": "2021-03-18T00:54:31Z", - "description": "", - "force_detach_policies": false, - "id": "prod-onmyojideckbuilder-lambda", - "max_session_duration": 3600, - "name": "prod-onmyojideckbuilder-lambda", - "name_prefix": null, - "path": "/", - "permissions_boundary": null, - "tags": { - "Description": "website to build and share onmyoji decks", - "Project": "onmyoji-deck-builder" - }, - "unique_id": "AROA23D4RF6OTBMEPSDVE" - }, - "private": "bnVsbA==" - } - ] - }, - { - "mode": "managed", - "type": "aws_iam_role_policy_attachment", - "name": "lambda_logging", - "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "prod-onmyojideckbuilder-lambda-20210318005433729100000002", - "policy_arn": "arn:aws:iam::745437999005:policy/prod-onmyojideckbuilder-lambda_logging", - "role": "prod-onmyojideckbuilder-lambda" - }, - "private": "bnVsbA==", - "dependencies": [ - "aws_iam_policy.lambda_logging", - "aws_iam_role.lambda_role" - ] - } - ] - }, - { - "mode": "managed", - "type": "aws_lambda_function", - "name": "directory_indexes", - "provider": "provider[\"registry.terraform.io/hashicorp/aws\"].us_east_1", - "instances": [ - { - "schema_version": 0, - "attributes": { - "arn": "arn:aws:lambda:us-east-1:745437999005:function:prod-onmyojideckbuilder-directory_indexes", - "dead_letter_config": [], - "description": "", - "environment": [], - "file_system_config": [], - "filename": "./lambda/main.js.zip", - "function_name": "prod-onmyojideckbuilder-directory_indexes", - "handler": "main.handler", - "id": "prod-onmyojideckbuilder-directory_indexes", - "invoke_arn": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:745437999005:function:prod-onmyojideckbuilder-directory_indexes/invocations", - "kms_key_arn": "", - "last_modified": "2021-03-18T00:54:40.108+0000", - "layers": [], - "memory_size": 128, - "publish": true, - "qualified_arn": "arn:aws:lambda:us-east-1:745437999005:function:prod-onmyojideckbuilder-directory_indexes:1", - "reserved_concurrent_executions": -1, - "role": "arn:aws:iam::745437999005:role/prod-onmyojideckbuilder-lambda", - "runtime": "nodejs12.x", - "s3_bucket": null, - "s3_key": null, - "s3_object_version": null, - "source_code_hash": "5EVmwQDkgGfYMpMXNaWHUz3cmb/dSssoWl8mM8o3aMs=", - "source_code_size": 601, - "tags": { - "Description": "website to build and share onmyoji decks", - "Project": "onmyoji-deck-builder" - }, - "timeout": 3, - "timeouts": null, - "tracing_config": [ - { - "mode": "PassThrough" - } - ], - "version": "1", - "vpc_config": [] - } - } - ] - } - ] + "resources": [] }