diff --git a/.gitignore b/.gitignore index 6bb73cb..c00203b 100644 --- a/.gitignore +++ b/.gitignore @@ -167,6 +167,7 @@ cython_debug/ # .tfstate files #*.tfstate #*.tfstate.* +*.plan # Crash log files crash.log diff --git a/lambda_config/lambda_config.py b/lambda_config/lambda_config.py index 4d14e1b..b3d49a6 100644 --- a/lambda_config/lambda_config.py +++ b/lambda_config/lambda_config.py @@ -2,7 +2,6 @@ import os import json import boto3 from uuid import uuid4 -from mypy_boto3_s3 import S3Client from pydantic import BaseModel from typing import Dict, Optional from redirects_base import Content, Customer, Redirects, Tag @@ -103,7 +102,7 @@ def getObjectKeys(record: Record) -> list[str]: keys.reverse() return keys -def processAdd(record: Record, redirects: Redirects, client: S3Client) -> None: +def processAdd(record: Record, redirects: Redirects, client) -> None: # splitta la chiave per capire la directory keys = getObjectKeys(record=record) diff --git a/master.tf b/master.tf index 69093a1..d873876 100644 --- a/master.tf +++ b/master.tf @@ -144,7 +144,7 @@ resource "aws_iam_role_policy_attachment" "iam_for_lambda_allow_logs" { policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" } -data "archive_file" "lambda_standout_code" { +data "archive_file" "lambda_standout_redirect_code" { type = "zip" source_dir = "./lambda_redirect" output_path = "./lambda_zip/standout_lambda_redirect-${var.env}.zip" @@ -176,7 +176,7 @@ resource "aws_lambda_function" "lambda_standout_redirect" { role = aws_iam_role.iam_for_lambda.arn handler = "lambda_redirect.lambda_handler" - source_code_hash = data.archive_file.lambda_standout_code.output_base64sha256 + source_code_hash = data.archive_file.lambda_standout_redirect_code.output_base64sha256 runtime = "python3.12" @@ -200,7 +200,7 @@ resource "aws_lambda_function" "lambda_standout_config" { role = aws_iam_role.iam_for_lambda.arn handler = "lambda_config.lambda_handler" - source_code_hash = data.archive_file.lambda_standout_code.output_base64sha256 + source_code_hash = data.archive_file.lambda_standout_config_code.output_base64sha256 runtime = "python3.12" diff --git a/plans/dev.plan b/plans/dev.plan index fdc066e..8617cc3 100644 Binary files a/plans/dev.plan and b/plans/dev.plan differ diff --git a/plans/prod.plan b/plans/prod.plan index 000f365..367b5d0 100644 Binary files a/plans/prod.plan and b/plans/prod.plan differ diff --git a/terraform.tfstate.d/dev/terraform.tfstate b/terraform.tfstate.d/dev/terraform.tfstate index 67a6ba4..5ea9619 100644 --- a/terraform.tfstate.d/dev/terraform.tfstate +++ b/terraform.tfstate.d/dev/terraform.tfstate @@ -1,7 +1,7 @@ { "version": 4, "terraform_version": "1.8.3", - "serial": 86, + "serial": 97, "lineage": "c4760d73-7122-ff64-ba30-f5482ab084b8", "outputs": {}, "resources": [ @@ -40,7 +40,39 @@ { "mode": "data", "type": "archive_file", - "name": "lambda_standout_code", + "name": "lambda_standout_config_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "c70e679bb3c7f54d8ebf05e81f2757cae660be79", + "output_base64sha256": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=", + "output_base64sha512": "39KD5BHf3LEcSJpNUHrQ6R9mzmNWSVojgsdDlZIHAhy7c5tjNepQbdaquHGE18mVEAuOXc0mD8wSQrTO5kIcEA==", + "output_file_mode": null, + "output_md5": "1b73b73d80a3b5095ea415fd5665b397", + "output_path": "./lambda_zip/standout_lambda_config-dev.zip", + "output_sha": "c70e679bb3c7f54d8ebf05e81f2757cae660be79", + "output_sha256": "dc18155352d92003464aa151b30b5f70a38f6546d0467b725e4601bda954a3f6", + "output_sha512": "dfd283e411dfdcb11c489a4d507ad0e91f66ce6356495a2382c743959207021cbb739b6335ea506dd6aab87184d7c995100b8e5dcd260fcc1242b4cee6421c10", + "output_size": 4619, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_config", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_redirect_code", "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", "instances": [ { @@ -69,38 +101,6 @@ } ] }, - { - "mode": "data", - "type": "archive_file", - "name": "lambda_standout_config_code", - "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "exclude_symlink_directories": null, - "excludes": null, - "id": "a401470a001300338fa7d09cdffe3f16277971d8", - "output_base64sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", - "output_base64sha512": "oUyZrUKNQPvZt3crReW69Vapq3IGvHD5hk617XXamv8G99f62CoJO1lsd07gaVlf5ln2EyPj+cQleaXg5w3JCg==", - "output_file_mode": null, - "output_md5": "e97ce8be22567986c9fcff5165b4afdb", - "output_path": "./lambda_zip/standout_lambda_config-dev.zip", - "output_sha": "a401470a001300338fa7d09cdffe3f16277971d8", - "output_sha256": "edca42403d4b7fa403c123e4fde7426bc5c3651794bbbad186109a827a280227", - "output_sha512": "a14c99ad428d40fbd9b7772b45e5baf556a9ab7206bc70f9864eb5ed75da9aff06f7d7fad82a093b596c774ee069595fe659f61323e3f9c42579a5e0e70dc90a", - "output_size": 4639, - "source": [], - "source_content": null, - "source_content_filename": null, - "source_dir": "./lambda_config", - "source_file": null, - "type": "zip" - }, - "sensitive_attributes": [] - } - ] - }, { "mode": "data", "type": "aws_iam_policy_document", @@ -317,7 +317,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -356,7 +356,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -420,7 +420,9 @@ "force_detach_policies": false, "id": "iam_for_lambda-dev", "inline_policy": [], - "managed_policy_arns": [], + "managed_policy_arns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], "max_session_duration": 3600, "name": "iam_for_lambda-dev", "name_prefix": "", @@ -473,7 +475,7 @@ "x86_64" ], "arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev", - "code_sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "code_sha256": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=", "code_signing_config_arn": "", "dead_letter_config": [], "description": "", @@ -500,7 +502,7 @@ "image_uri": "", "invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev/invocations", "kms_key_arn": "", - "last_modified": "2024-05-25T12:28:52.179+0000", + "last_modified": "2024-05-25T13:16:55.000+0000", "layers": [ "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" ], @@ -529,8 +531,8 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", - "source_code_size": 4639, + "source_code_hash": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=", + "source_code_size": 4619, "tags": {}, "tags_all": {}, "timeout": 10, @@ -552,7 +554,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -647,7 +649,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -721,7 +723,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -759,7 +761,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -992,7 +994,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } diff --git a/terraform.tfstate.d/dev/terraform.tfstate.backup b/terraform.tfstate.d/dev/terraform.tfstate.backup index 5591189..717a6c2 100644 --- a/terraform.tfstate.d/dev/terraform.tfstate.backup +++ b/terraform.tfstate.d/dev/terraform.tfstate.backup @@ -1,7 +1,7 @@ { "version": 4, "terraform_version": "1.8.3", - "serial": 84, + "serial": 95, "lineage": "c4760d73-7122-ff64-ba30-f5482ab084b8", "outputs": {}, "resources": [ @@ -37,38 +37,6 @@ } ] }, - { - "mode": "data", - "type": "archive_file", - "name": "lambda_standout_code", - "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "exclude_symlink_directories": null, - "excludes": null, - "id": "bf96d8f34aad3a86e985be53a3a6682d62164e73", - "output_base64sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", - "output_base64sha512": "R+OeVTikvIPAsYIjKtRdZdFCZQWLp/PUtIvpTIwc726mIuccBlur53ethzlJezoXubQmtF9CEiUdjzsrfb3/pQ==", - "output_file_mode": null, - "output_md5": "6971a02ee30cd8591ded93920a6b994a", - "output_path": "./lambda_zip/standout_lambda_redirect-dev.zip", - "output_sha": "bf96d8f34aad3a86e985be53a3a6682d62164e73", - "output_sha256": "9a41356c2426097b20764a495f5cac7086c034b626716953c802f37f1d81a9b2", - "output_sha512": "47e39e5538a4bc83c0b182232ad45d65d14265058ba7f3d4b48be94c8c1cef6ea622e71c065babe777ad8739497b3a17b9b426b45f4212251d8f3b2b7dbdffa5", - "output_size": 51368, - "source": [], - "source_content": null, - "source_content_filename": null, - "source_dir": "./lambda_redirect", - "source_file": null, - "type": "zip" - }, - "sensitive_attributes": [] - } - ] - }, { "mode": "data", "type": "archive_file", @@ -101,6 +69,38 @@ } ] }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_redirect_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_base64sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "output_base64sha512": "R+OeVTikvIPAsYIjKtRdZdFCZQWLp/PUtIvpTIwc726mIuccBlur53ethzlJezoXubQmtF9CEiUdjzsrfb3/pQ==", + "output_file_mode": null, + "output_md5": "6971a02ee30cd8591ded93920a6b994a", + "output_path": "./lambda_zip/standout_lambda_redirect-dev.zip", + "output_sha": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_sha256": "9a41356c2426097b20764a495f5cac7086c034b626716953c802f37f1d81a9b2", + "output_sha512": "47e39e5538a4bc83c0b182232ad45d65d14265058ba7f3d4b48be94c8c1cef6ea622e71c065babe777ad8739497b3a17b9b426b45f4212251d8f3b2b7dbdffa5", + "output_size": 51368, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_redirect", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, { "mode": "data", "type": "aws_iam_policy_document", @@ -317,7 +317,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -356,7 +356,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -420,7 +420,9 @@ "force_detach_policies": false, "id": "iam_for_lambda-dev", "inline_policy": [], - "managed_policy_arns": [], + "managed_policy_arns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], "max_session_duration": 3600, "name": "iam_for_lambda-dev", "name_prefix": "", @@ -438,6 +440,28 @@ } ] }, + { + "mode": "managed", + "type": "aws_iam_role_policy_attachment", + "name": "iam_for_lambda_allow_logs", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "iam_for_lambda-dev-20240525125938547100000001", + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "iam_for_lambda-dev" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_iam_role.iam_for_lambda", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, { "mode": "managed", "type": "aws_lambda_function", @@ -478,7 +502,7 @@ "image_uri": "", "invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev/invocations", "kms_key_arn": "", - "last_modified": "2024-05-25T12:28:52.179+0000", + "last_modified": "2024-05-25T13:15:18.000+0000", "layers": [ "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" ], @@ -507,7 +531,7 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_hash": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", "source_code_size": 4639, "tags": {}, "tags_all": {}, @@ -530,7 +554,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -625,7 +649,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -699,7 +723,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -737,7 +761,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -970,7 +994,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } diff --git a/terraform.tfstate.d/prod/terraform.tfstate b/terraform.tfstate.d/prod/terraform.tfstate index af3d85d..eb9faee 100644 --- a/terraform.tfstate.d/prod/terraform.tfstate +++ b/terraform.tfstate.d/prod/terraform.tfstate @@ -1,7 +1,7 @@ { "version": 4, "terraform_version": "1.8.3", - "serial": 34, + "serial": 37, "lineage": "bfb14822-28e1-8bec-1200-85cd7662a2f9", "outputs": {}, "resources": [ @@ -40,7 +40,39 @@ { "mode": "data", "type": "archive_file", - "name": "lambda_standout_code", + "name": "lambda_standout_config_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "c70e679bb3c7f54d8ebf05e81f2757cae660be79", + "output_base64sha256": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=", + "output_base64sha512": "39KD5BHf3LEcSJpNUHrQ6R9mzmNWSVojgsdDlZIHAhy7c5tjNepQbdaquHGE18mVEAuOXc0mD8wSQrTO5kIcEA==", + "output_file_mode": null, + "output_md5": "1b73b73d80a3b5095ea415fd5665b397", + "output_path": "./lambda_zip/standout_lambda_config-prod.zip", + "output_sha": "c70e679bb3c7f54d8ebf05e81f2757cae660be79", + "output_sha256": "dc18155352d92003464aa151b30b5f70a38f6546d0467b725e4601bda954a3f6", + "output_sha512": "dfd283e411dfdcb11c489a4d507ad0e91f66ce6356495a2382c743959207021cbb739b6335ea506dd6aab87184d7c995100b8e5dcd260fcc1242b4cee6421c10", + "output_size": 4619, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_config", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_redirect_code", "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", "instances": [ { @@ -69,38 +101,6 @@ } ] }, - { - "mode": "data", - "type": "archive_file", - "name": "lambda_standout_config_code", - "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "exclude_symlink_directories": null, - "excludes": null, - "id": "a401470a001300338fa7d09cdffe3f16277971d8", - "output_base64sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", - "output_base64sha512": "oUyZrUKNQPvZt3crReW69Vapq3IGvHD5hk617XXamv8G99f62CoJO1lsd07gaVlf5ln2EyPj+cQleaXg5w3JCg==", - "output_file_mode": null, - "output_md5": "e97ce8be22567986c9fcff5165b4afdb", - "output_path": "./lambda_zip/standout_lambda_config-prod.zip", - "output_sha": "a401470a001300338fa7d09cdffe3f16277971d8", - "output_sha256": "edca42403d4b7fa403c123e4fde7426bc5c3651794bbbad186109a827a280227", - "output_sha512": "a14c99ad428d40fbd9b7772b45e5baf556a9ab7206bc70f9864eb5ed75da9aff06f7d7fad82a093b596c774ee069595fe659f61323e3f9c42579a5e0e70dc90a", - "output_size": 4639, - "source": [], - "source_content": null, - "source_content_filename": null, - "source_dir": "./lambda_config", - "source_file": null, - "type": "zip" - }, - "sensitive_attributes": [] - } - ] - }, { "mode": "data", "type": "aws_iam_policy_document", @@ -317,7 +317,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -356,7 +356,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -438,6 +438,28 @@ } ] }, + { + "mode": "managed", + "type": "aws_iam_role_policy_attachment", + "name": "iam_for_lambda_allow_logs", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "iam_for_lambda-prod-20240525131933911000000001", + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "iam_for_lambda-prod" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_iam_role.iam_for_lambda", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, { "mode": "managed", "type": "aws_lambda_function", @@ -451,7 +473,7 @@ "x86_64" ], "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod", - "code_sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "code_sha256": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=", "code_signing_config_arn": "", "dead_letter_config": [], "description": "", @@ -478,7 +500,7 @@ "image_uri": "", "invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod/invocations", "kms_key_arn": "", - "last_modified": "2024-05-25T12:34:13.337+0000", + "last_modified": "2024-05-25T13:19:36.000+0000", "layers": [ "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" ], @@ -507,8 +529,8 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", - "source_code_size": 4639, + "source_code_hash": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=", + "source_code_size": 4619, "tags": {}, "tags_all": {}, "timeout": 10, @@ -530,7 +552,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -625,7 +647,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -699,7 +721,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_redirect_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -737,7 +759,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } @@ -777,7 +799,7 @@ "logging": [], "object_lock_configuration": [], "object_lock_enabled": false, - "policy": "", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-data-prod/*\"}],\"Version\":\"2012-10-17\"}", "region": "eu-central-1", "replication_configuration": [], "request_payer": "BucketOwner", @@ -970,7 +992,7 @@ "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", "aws_s3_bucket.s3_standout_config", - "data.archive_file.lambda_standout_code", + "data.archive_file.lambda_standout_config_code", "data.aws_iam_policy_document.lambda_role" ] } diff --git a/terraform.tfstate.d/prod/terraform.tfstate.backup b/terraform.tfstate.d/prod/terraform.tfstate.backup index 49bc6e1..af3d85d 100644 --- a/terraform.tfstate.d/prod/terraform.tfstate.backup +++ b/terraform.tfstate.d/prod/terraform.tfstate.backup @@ -1,7 +1,7 @@ { "version": 4, "terraform_version": "1.8.3", - "serial": 32, + "serial": 34, "lineage": "bfb14822-28e1-8bec-1200-85cd7662a2f9", "outputs": {}, "resources": [ @@ -268,7 +268,7 @@ "protocol_type": "HTTP", "route_key": null, "route_selection_expression": "$request.method $request.path", - "tags": null, + "tags": {}, "tags_all": {}, "target": null, "version": "" @@ -301,8 +301,8 @@ "integration_uri": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod/invocations", "passthrough_behavior": "", "payload_format_version": "1.0", - "request_parameters": null, - "request_templates": null, + "request_parameters": {}, + "request_templates": {}, "response_parameters": [], "template_selection_expression": "", "timeout_milliseconds": 30000, @@ -334,13 +334,13 @@ "attributes": { "api_id": "2kvqe64ca1", "api_key_required": false, - "authorization_scopes": null, + "authorization_scopes": [], "authorization_type": "NONE", "authorizer_id": "", "id": "xsd9e7k", "model_selection_expression": "", "operation_name": "", - "request_models": null, + "request_models": {}, "request_parameter": [], "route_key": "GET /api", "route_response_selection_expression": "", @@ -385,15 +385,15 @@ "throttling_rate_limit": 0 } ], - "deployment_id": "", + "deployment_id": "7vgrat", "description": "", "execution_arn": "arn:aws:execute-api:eu-central-1:654654203111:2kvqe64ca1/prod", "id": "prod", "invoke_url": "https://2kvqe64ca1.execute-api.eu-central-1.amazonaws.com/prod", "name": "prod", "route_settings": [], - "stage_variables": null, - "tags": null, + "stage_variables": {}, + "tags": {}, "tags_all": {} }, "sensitive_attributes": [], @@ -426,7 +426,7 @@ "name_prefix": "", "path": "/", "permissions_boundary": "", - "tags": null, + "tags": {}, "tags_all": {}, "unique_id": "AROAZQ3DOMTTRSXZ5VXRN" }, @@ -478,7 +478,7 @@ "image_uri": "", "invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod/invocations", "kms_key_arn": "", - "last_modified": "2024-05-25T12:34:06.568+0000", + "last_modified": "2024-05-25T12:34:13.337+0000", "layers": [ "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" ], @@ -509,7 +509,7 @@ "snap_start": [], "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", "source_code_size": 4639, - "tags": null, + "tags": {}, "tags_all": {}, "timeout": 10, "timeouts": null, @@ -575,7 +575,7 @@ "image_uri": "", "invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod/invocations", "kms_key_arn": "", - "last_modified": "2024-05-25T12:33:56.589+0000", + "last_modified": "2024-05-25T12:34:06.514+0000", "layers": [ "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" ], @@ -606,7 +606,7 @@ "snap_start": [], "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", "source_code_size": 51368, - "tags": null, + "tags": {}, "tags_all": {}, "timeout": 10, "timeouts": null, @@ -642,7 +642,7 @@ "attributes": { "arn": "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2", "code_sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", - "compatible_architectures": null, + "compatible_architectures": [], "compatible_runtimes": [ "python3.12" ], @@ -796,7 +796,7 @@ ] } ], - "tags": null, + "tags": {}, "tags_all": {}, "timeouts": null, "versioning": [ @@ -848,7 +848,7 @@ "logging": [], "object_lock_configuration": [], "object_lock_enabled": false, - "policy": "", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-config-prod/*\"}],\"Version\":\"2012-10-17\"}", "region": "eu-central-1", "replication_configuration": [], "request_payer": "BucketOwner", @@ -867,7 +867,7 @@ ] } ], - "tags": null, + "tags": {}, "tags_all": {}, "timeouts": null, "versioning": [ @@ -1048,6 +1048,28 @@ } ] }, + { + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "s3_standout_policy", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-prod", + "id": "standout-data-prod", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-data-prod/*\"}],\"Version\":\"2012-10-17\"}" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout", + "data.aws_iam_policy_document.s3_standout_allow_lambda" + ] + } + ] + }, { "mode": "managed", "type": "aws_s3_bucket_public_access_block", @@ -1126,7 +1148,7 @@ "ipv6_netmask_length": 0, "main_route_table_id": "rtb-0af448a1cbae5f0bc", "owner_id": "654654203111", - "tags": null, + "tags": {}, "tags_all": {} }, "sensitive_attributes": [],