From 8de6d1d7b6ac2ede29ce1da76f7618c3650a25cb Mon Sep 17 00:00:00 2001 From: Emanuele Date: Thu, 30 May 2024 14:17:04 +0200 Subject: [PATCH] Added API mapping and custom Domain --- lambda_config/lambda_config.py | 6 +- lambda_redirect/lambda_redirect.py | 4 +- master.tf | 27 ++- terraform.tfstate.d/dev/terraform.tfstate | 146 ++++++++++--- .../dev/terraform.tfstate.backup | 157 +++++++++++++- terraform.tfstate.d/prod/terraform.tfstate | 146 ++++++++++--- .../prod/terraform.tfstate.backup | 201 +++++++++++++++--- variable.tf | 17 +- 8 files changed, 587 insertions(+), 117 deletions(-) diff --git a/lambda_config/lambda_config.py b/lambda_config/lambda_config.py index 4903286..c6baaa5 100644 --- a/lambda_config/lambda_config.py +++ b/lambda_config/lambda_config.py @@ -10,6 +10,7 @@ bucket_config = '' bucket_data = '' function_url = '' git_version = '' +api_verson = '' s3_client = None redirects: Redirects | None = None @@ -36,7 +37,7 @@ class Record(BaseModel): s3: S3Event def lambda_handler(event: dict, context): - global s3_client, bucket_config, bucket_data, function_url, redirects, git_version + global s3_client, bucket_config, bucket_data, function_url, redirects, git_version, api_version if s3_client is None: print("Init Function") @@ -44,6 +45,7 @@ def lambda_handler(event: dict, context): bucket_data = os.environ.get('BUCKET_DATA', 'standout-data') function_url = os.environ.get('FUNCTION_URL', 'https://api.standout.it/dev') git_version = os.environ.get('GIT_VERSION', '00000000') + api_version = os.environ.get('API_VERSION', 'v1') print(f' Version: {git_version}') print(f' Bucket Data: {bucket_data}') @@ -174,7 +176,7 @@ def processAdd(record: Record, redirects: Redirects, client) -> None: print(f"ObjectCreated: {record.s3.object.key}") def generateTagUrl(cust_id: str, tag_id: str, face_id: str | None) -> str: - return f"{function_url}/api?id={cust_id}&tag_id={tag_id}{f"&face_id={face_id}" if face_id else ""}" + return f"{function_url}/{api_version}?id={cust_id}&tag_id={tag_id}{f"&face_id={face_id}" if face_id else ""}" def searchCustomerKey(redirects: Redirects, cust_name: str, default: str | None) -> str | None: if redirects.customers is None: diff --git a/lambda_redirect/lambda_redirect.py b/lambda_redirect/lambda_redirect.py index 8b278ba..036e488 100644 --- a/lambda_redirect/lambda_redirect.py +++ b/lambda_redirect/lambda_redirect.py @@ -9,6 +9,7 @@ s3_client = None bucket_config = '' bucket_data = '' git_version = '' +api_version = '' class RequestParams(BaseModel): id: str @@ -21,13 +22,14 @@ class Content(BaseModel): url: Optional[str] = None def lambda_handler(event: dict, context): - global s3_client, bucket_config, bucket_data, git_version + global s3_client, bucket_config, bucket_data, git_version, api_version if s3_client is None: print("Init Function") bucket_config = os.environ.get('BUCKET_CONFIG', 'standout-config') bucket_data = os.environ.get('BUCKET_DATA', 'standout-data') git_version = os.environ.get('GIT_VERSION', '00000000') + api_version = os.environ.get('API_VERSION', 'v1') print(f' Version: {git_version}') print(f' Bucket Data: {bucket_data}') diff --git a/master.tf b/master.tf index ca628fa..d2df752 100644 --- a/master.tf +++ b/master.tf @@ -194,6 +194,7 @@ resource "aws_lambda_function" "lambda_standout_redirect" { BUCKET_CONFIG = aws_s3_bucket.s3_standout_config.bucket, BUCKET_DATA = aws_s3_bucket.s3_standout.bucket GIT_VERSION = var.git_version + API_VERSION = var.api_version env = var.env } } @@ -226,6 +227,7 @@ resource "aws_lambda_function" "lambda_standout_config" { BUCKET_DATA = aws_s3_bucket.s3_standout.bucket FUNCTION_URL = var.redirect_url GIT_VERSION = var.git_version + API_VERSION = var.api_version ENV = var.env } } @@ -280,7 +282,6 @@ resource "aws_apigatewayv2_integration" "api_standout_integration" { resource "aws_apigatewayv2_stage" "api_standout_lambda_stage" { api_id = aws_apigatewayv2_api.api_standout_gateway.id - name = var.env auto_deploy = true } @@ -288,10 +289,26 @@ resource "aws_apigatewayv2_stage" "api_standout_lambda_stage" { resource "aws_apigatewayv2_route" "api_standout_route" { api_id = aws_apigatewayv2_api.api_standout_gateway.id - route_key = "GET /api" + route_key = "GET /${var.api_version}" target = "integrations/${aws_apigatewayv2_integration.api_standout_integration.id}" } +resource "aws_apigatewayv2_domain_name" "api_standout_domain_name" { + domain_name = var.domain_name + + domain_name_configuration { + certificate_arn = var.ssl_certificate + endpoint_type = "REGIONAL" + security_policy = "TLS_1_2" + } +} + +resource "aws_apigatewayv2_api_mapping" "api_standout_domain_mapping" { + api_id = aws_apigatewayv2_api.api_standout_gateway.id + domain_name = aws_apigatewayv2_domain_name.api_standout_domain_name.id + stage = aws_apigatewayv2_stage.api_standout_lambda_stage.id +} + resource "aws_lambda_permission" "api_lambda_permission" { statement_id = "AllowExecutionFromAPIGateway" action = "lambda:InvokeFunction" @@ -301,5 +318,7 @@ resource "aws_lambda_permission" "api_lambda_permission" { source_arn = "${aws_apigatewayv2_api.api_standout_gateway.execution_arn}/*/*" } -# create a route 53 configuration - +# Output relevant variables +output "api_mapping_domain_name" { + value = aws_apigatewayv2_api_mapping.api_standout_domain_mapping +} \ No newline at end of file diff --git a/terraform.tfstate.d/dev/terraform.tfstate b/terraform.tfstate.d/dev/terraform.tfstate index e22cfbe..7a05b0a 100644 --- a/terraform.tfstate.d/dev/terraform.tfstate +++ b/terraform.tfstate.d/dev/terraform.tfstate @@ -1,9 +1,29 @@ { "version": 4, "terraform_version": "1.8.4", - "serial": 118, + "serial": 130, "lineage": "c4760d73-7122-ff64-ba30-f5482ab084b8", - "outputs": {}, + "outputs": { + "api_mapping_domain_name": { + "value": { + "api_id": "sel2p8wy6c", + "api_mapping_key": "", + "domain_name": "dev.nfc.infostandout.com", + "id": "vzaoia", + "stage": "dev" + }, + "type": [ + "object", + { + "api_id": "string", + "api_mapping_key": "string", + "domain_name": "string", + "id": "string", + "stage": "string" + } + ] + } + }, "resources": [ { "mode": "data", @@ -48,16 +68,16 @@ "attributes": { "exclude_symlink_directories": null, "excludes": null, - "id": "df4af848b8b9b0503c7737f0a00b6dc5038fb93f", - "output_base64sha256": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", - "output_base64sha512": "l9M2naq/XuE5yDE6bU+lzBYWKS1EgzAE+giAC1X8fMh9pUVlvi+Y6ebqB5Y5c13uwb2yC6AI+sKW0BfpOKsP9A==", + "id": "27e911c64b612560b05f5daa95a1297098cf297d", + "output_base64sha256": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", + "output_base64sha512": "VIAKXZ7LlhJD85WssifT0RmNGmi9zj0VvTJWAB8TJxjAlOwHS0szjwcHybb30NBvOOJgHj2BfU+802L7GgFcuw==", "output_file_mode": null, - "output_md5": "7c618b4d911607ce6d5357e3a7046494", + "output_md5": "83f9f80af90255cfc6e7ffdb67b4ec62", "output_path": "./lambda_zip/standout_lambda_config-dev.zip", - "output_sha": "df4af848b8b9b0503c7737f0a00b6dc5038fb93f", - "output_sha256": "40932c4abe827f31b1ffd03a86b99ea70755104c845845d2ea7c5f329ec4d3d0", - "output_sha512": "97d3369daabf5ee139c8313a6d4fa5cc1616292d44833004fa08800b55fc7cc87da54565be2f98e9e6ea079639735deec1bdb20ba008fac296d017e938ab0ff4", - "output_size": 5026, + "output_sha": "27e911c64b612560b05f5daa95a1297098cf297d", + "output_sha256": "f622c92032c00024b6eaabc2bfd5a7ee7220cb7515cb001600b08d07f2ac2295", + "output_sha512": "54800a5d9ecb961243f395acb227d3d1198d1a68bdce3d15bd3256001f132718c094ec074b4b338f0707c9b6f7d0d06f38e2601e3d817d4fbcd362fb1a015cbb", + "output_size": 5055, "source": [], "source_content": null, "source_content_filename": null, @@ -80,16 +100,16 @@ "attributes": { "exclude_symlink_directories": null, "excludes": null, - "id": "5b31887667c168e055edce9547e5c153b11d788b", - "output_base64sha256": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", - "output_base64sha512": "qypkIsLEkMI380rgBAFuzgNsJQQF/OXHBHgpLOWfKpZFyHtptzLzO3Kn+NPzjcJa0WA12qwGuV6DYxLFcdY27Q==", + "id": "69ad79a90b7469b46c9d19c37e0df94a2922abed", + "output_base64sha256": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", + "output_base64sha512": "OtH+1ix2zPRAZBQU1m3kXOm7qTbbfG/7eP80VFdJZPjmud3T1+1ZCF3GDf8xhwF28uZ1uO9Msl5fyTkEGBgbKw==", "output_file_mode": null, - "output_md5": "11a75e4d67a7ec23f7d681a670af9bab", + "output_md5": "b0860c6a2ce85f5ce4f3e8eea2bc8dc2", "output_path": "./lambda_zip/standout_lambda_redirect-dev.zip", - "output_sha": "5b31887667c168e055edce9547e5c153b11d788b", - "output_sha256": "272f4d0d3e1f88e1e6fffa96cb106f0547ffc5b480d28752206cfb154ed17e5d", - "output_sha512": "ab2a6422c2c490c237f34ae004016ece036c250405fce5c70478292ce59f2a9645c87b69b732f33b72a7f8d3f38dc25ad16035daac06b95e836312c571d636ed", - "output_size": 51416, + "output_sha": "69ad79a90b7469b46c9d19c37e0df94a2922abed", + "output_sha256": "9db220956c81a425220a8db4b1d744eb5491678463487fb96a4fc9be1584954b", + "output_sha512": "3ad1fed62c76ccf440641414d66de45ce9bba936db7c6ffb78ff3454574964f8e6b9ddd3d7ed59085dc60dff31870176f2e675b8ef4cb25e5fc9390418181b2b", + "output_size": 51438, "source": [], "source_content": null, "source_content_filename": null, @@ -278,6 +298,64 @@ } ] }, + { + "mode": "managed", + "type": "aws_apigatewayv2_api_mapping", + "name": "api_standout_domain_mapping", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "sel2p8wy6c", + "api_mapping_key": "", + "domain_name": "dev.nfc.infostandout.com", + "id": "vzaoia", + "stage": "dev" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_domain_name.api_standout_domain_name", + "aws_apigatewayv2_stage.api_standout_lambda_stage" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_domain_name", + "name": "api_standout_domain_name", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_mapping_selection_expression": "$request.basepath", + "arn": "arn:aws:apigateway:eu-west-1::/domainnames/dev.nfc.infostandout.com", + "domain_name": "dev.nfc.infostandout.com", + "domain_name_configuration": [ + { + "certificate_arn": "arn:aws:acm:eu-west-1:654654203111:certificate/49841b1b-f537-421c-8445-dcf786dd1db6", + "endpoint_type": "REGIONAL", + "hosted_zone_id": "ZLY8HYME6SFDD", + "ownership_verification_certificate_arn": "", + "security_policy": "TLS_1_2", + "target_domain_name": "d-r5t3wj7id3.execute-api.eu-west-1.amazonaws.com" + } + ], + "id": "dev.nfc.infostandout.com", + "mutual_tls_authentication": [], + "tags": {}, + "tags_all": {}, + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19" + } + ] + }, { "mode": "managed", "type": "aws_apigatewayv2_integration", @@ -343,7 +421,7 @@ "operation_name": "", "request_models": {}, "request_parameter": [], - "route_key": "GET /api", + "route_key": "GET /v1", "route_response_selection_expression": "", "target": "integrations/82x2elk" }, @@ -387,7 +465,7 @@ "throttling_rate_limit": 0 } ], - "deployment_id": "5hzo6h", + "deployment_id": "p1q06o", "description": "", "execution_arn": "arn:aws:execute-api:eu-west-1:654654203111:sel2p8wy6c/dev", "id": "dev", @@ -423,7 +501,7 @@ "name_prefix": "", "retention_in_days": 30, "skip_destroy": false, - "tags": null, + "tags": {}, "tags_all": {} }, "sensitive_attributes": [], @@ -448,7 +526,7 @@ "name_prefix": "", "retention_in_days": 14, "skip_destroy": false, - "tags": null, + "tags": {}, "tags_all": {} }, "sensitive_attributes": [], @@ -527,18 +605,19 @@ "x86_64" ], "arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev", - "code_sha256": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", + "code_sha256": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", "code_signing_config_arn": "", "dead_letter_config": [], "description": "", "environment": [ { "variables": { + "API_VERSION": "v1", "BUCKET_CONFIG": "standout-config-dev", "BUCKET_DATA": "standout-data-dev", "ENV": "dev", - "FUNCTION_URL": "https://nfc.standout.it/dev", - "GIT_VERSION": "43991cc-dev" + "FUNCTION_URL": "https://dev.nfc.infostandout.com", + "GIT_VERSION": "d7903bf-dev" } } ], @@ -556,7 +635,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-26T09:18:20.000+0000", + "last_modified": "2024-05-30T11:56:53.000+0000", "layers": [ "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" ], @@ -585,8 +664,8 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", - "source_code_size": 5026, + "source_code_hash": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", + "source_code_size": 5055, "tags": {}, "tags_all": {}, "timeout": 10, @@ -626,16 +705,17 @@ "x86_64" ], "arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev", - "code_sha256": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", + "code_sha256": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", "code_signing_config_arn": "", "dead_letter_config": [], "description": "", "environment": [ { "variables": { + "API_VERSION": "v1", "BUCKET_CONFIG": "standout-config-dev", "BUCKET_DATA": "standout-data-dev", - "GIT_VERSION": "43991cc-dev", + "GIT_VERSION": "d7903bf-dev", "env": "dev" } } @@ -654,7 +734,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-redirect-dev/invocations", "kms_key_arn": "", - "last_modified": "2024-05-26T09:18:20.000+0000", + "last_modified": "2024-05-30T11:57:03.000+0000", "layers": [ "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" ], @@ -683,8 +763,8 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", - "source_code_size": 51416, + "source_code_hash": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", + "source_code_size": 51438, "tags": {}, "tags_all": {}, "timeout": 10, diff --git a/terraform.tfstate.d/dev/terraform.tfstate.backup b/terraform.tfstate.d/dev/terraform.tfstate.backup index b9dec27..2bf95c0 100644 --- a/terraform.tfstate.d/dev/terraform.tfstate.backup +++ b/terraform.tfstate.d/dev/terraform.tfstate.backup @@ -1,9 +1,29 @@ { "version": 4, "terraform_version": "1.8.4", - "serial": 113, + "serial": 127, "lineage": "c4760d73-7122-ff64-ba30-f5482ab084b8", - "outputs": {}, + "outputs": { + "api_mapping_domain_name": { + "value": { + "api_id": "sel2p8wy6c", + "api_mapping_key": "", + "domain_name": "dev.nfc.infostandout.com", + "id": "vzaoia", + "stage": "dev" + }, + "type": [ + "object", + { + "api_id": "string", + "api_mapping_key": "string", + "domain_name": "string", + "id": "string", + "stage": "string" + } + ] + } + }, "resources": [ { "mode": "data", @@ -278,6 +298,64 @@ } ] }, + { + "mode": "managed", + "type": "aws_apigatewayv2_api_mapping", + "name": "api_standout_domain_mapping", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "sel2p8wy6c", + "api_mapping_key": "", + "domain_name": "dev.nfc.infostandout.com", + "id": "vzaoia", + "stage": "dev" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_domain_name.api_standout_domain_name", + "aws_apigatewayv2_stage.api_standout_lambda_stage" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_domain_name", + "name": "api_standout_domain_name", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_mapping_selection_expression": "$request.basepath", + "arn": "arn:aws:apigateway:eu-west-1::/domainnames/dev.nfc.infostandout.com", + "domain_name": "dev.nfc.infostandout.com", + "domain_name_configuration": [ + { + "certificate_arn": "arn:aws:acm:eu-west-1:654654203111:certificate/49841b1b-f537-421c-8445-dcf786dd1db6", + "endpoint_type": "REGIONAL", + "hosted_zone_id": "ZLY8HYME6SFDD", + "ownership_verification_certificate_arn": "", + "security_policy": "TLS_1_2", + "target_domain_name": "d-r5t3wj7id3.execute-api.eu-west-1.amazonaws.com" + } + ], + "id": "dev.nfc.infostandout.com", + "mutual_tls_authentication": [], + "tags": {}, + "tags_all": {}, + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19" + } + ] + }, { "mode": "managed", "type": "aws_apigatewayv2_integration", @@ -312,6 +390,7 @@ "private": "bnVsbA==", "dependencies": [ "aws_apigatewayv2_api.api_standout_gateway", + "aws_cloudwatch_log_group.standout_lambda_config_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_redirect", "aws_lambda_layer_version.lambda_layer", @@ -342,7 +421,7 @@ "operation_name": "", "request_models": {}, "request_parameter": [], - "route_key": "GET /api", + "route_key": "GET /v1", "route_response_selection_expression": "", "target": "integrations/82x2elk" }, @@ -351,6 +430,7 @@ "dependencies": [ "aws_apigatewayv2_api.api_standout_gateway", "aws_apigatewayv2_integration.api_standout_integration", + "aws_cloudwatch_log_group.standout_lambda_config_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_redirect", "aws_lambda_layer_version.lambda_layer", @@ -385,7 +465,7 @@ "throttling_rate_limit": 0 } ], - "deployment_id": "5hzo6h", + "deployment_id": "p1q06o", "description": "", "execution_arn": "arn:aws:execute-api:eu-west-1:654654203111:sel2p8wy6c/dev", "id": "dev", @@ -404,6 +484,56 @@ } ] }, + { + "mode": "managed", + "type": "aws_cloudwatch_log_group", + "name": "standout_lambda_config_logs", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:logs:eu-west-1:654654203111:log-group:standout-lambda-config-logs-dev", + "id": "standout-lambda-config-logs-dev", + "kms_key_id": "", + "log_group_class": "STANDARD", + "name": "standout-lambda-config-logs-dev", + "name_prefix": "", + "retention_in_days": 30, + "skip_destroy": false, + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_cloudwatch_log_group", + "name": "standout_lambda_redirect_logs", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:logs:eu-west-1:654654203111:log-group:standout-lambda-redirect-logs-dev", + "id": "standout-lambda-redirect-logs-dev", + "kms_key_id": "", + "log_group_class": "STANDARD", + "name": "standout-lambda-redirect-logs-dev", + "name_prefix": "", + "retention_in_days": 14, + "skip_destroy": false, + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, { "mode": "managed", "type": "aws_iam_role", @@ -485,8 +615,8 @@ "BUCKET_CONFIG": "standout-config-dev", "BUCKET_DATA": "standout-data-dev", "ENV": "dev", - "FUNCTION_URL": "https://nfc.standout.it/dev", - "GIT_VERSION": "d2b05f7-dev" + "FUNCTION_URL": "https://dev.nfc.infostandout.com", + "GIT_VERSION": "d7903bf-dev" } } ], @@ -504,7 +634,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-26T09:01:44.000+0000", + "last_modified": "2024-05-30T11:48:53.000+0000", "layers": [ "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" ], @@ -512,7 +642,7 @@ { "application_log_level": "", "log_format": "Text", - "log_group": "/aws/lambda/standout-config-dev", + "log_group": "standout-lambda-redirect-logs-dev", "system_log_level": "" } ], @@ -550,6 +680,7 @@ "sensitive_attributes": [], "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", "dependencies": [ + "aws_cloudwatch_log_group.standout_lambda_redirect_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", @@ -582,7 +713,7 @@ "variables": { "BUCKET_CONFIG": "standout-config-dev", "BUCKET_DATA": "standout-data-dev", - "GIT_VERSION": "d2b05f7-dev", + "GIT_VERSION": "d7903bf-dev", "env": "dev" } } @@ -601,7 +732,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-redirect-dev/invocations", "kms_key_arn": "", - "last_modified": "2024-05-26T09:01:44.000+0000", + "last_modified": "2024-05-30T09:02:05.000+0000", "layers": [ "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" ], @@ -609,7 +740,7 @@ { "application_log_level": "", "log_format": "Text", - "log_group": "/aws/lambda/standout-redirect-dev", + "log_group": "standout-lambda-config-logs-dev", "system_log_level": "" } ], @@ -647,6 +778,7 @@ "sensitive_attributes": [], "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", "dependencies": [ + "aws_cloudwatch_log_group.standout_lambda_config_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", @@ -720,6 +852,7 @@ "private": "bnVsbA==", "dependencies": [ "aws_apigatewayv2_api.api_standout_gateway", + "aws_cloudwatch_log_group.standout_lambda_config_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_redirect", "aws_lambda_layer_version.lambda_layer", @@ -756,6 +889,7 @@ "sensitive_attributes": [], "private": "bnVsbA==", "dependencies": [ + "aws_cloudwatch_log_group.standout_lambda_redirect_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_config", "aws_lambda_layer_version.lambda_layer", @@ -987,6 +1121,7 @@ "sensitive_attributes": [], "private": "bnVsbA==", "dependencies": [ + "aws_cloudwatch_log_group.standout_lambda_redirect_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_config", "aws_lambda_layer_version.lambda_layer", diff --git a/terraform.tfstate.d/prod/terraform.tfstate b/terraform.tfstate.d/prod/terraform.tfstate index adb9b4a..a2a9b14 100644 --- a/terraform.tfstate.d/prod/terraform.tfstate +++ b/terraform.tfstate.d/prod/terraform.tfstate @@ -1,9 +1,29 @@ { "version": 4, "terraform_version": "1.8.4", - "serial": 47, + "serial": 54, "lineage": "bfb14822-28e1-8bec-1200-85cd7662a2f9", - "outputs": {}, + "outputs": { + "api_mapping_domain_name": { + "value": { + "api_id": "2kvqe64ca1", + "api_mapping_key": "", + "domain_name": "nfc.infostandout.com", + "id": "rcfb6y", + "stage": "prod" + }, + "type": [ + "object", + { + "api_id": "string", + "api_mapping_key": "string", + "domain_name": "string", + "id": "string", + "stage": "string" + } + ] + } + }, "resources": [ { "mode": "data", @@ -48,16 +68,16 @@ "attributes": { "exclude_symlink_directories": null, "excludes": null, - "id": "df4af848b8b9b0503c7737f0a00b6dc5038fb93f", - "output_base64sha256": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", - "output_base64sha512": "l9M2naq/XuE5yDE6bU+lzBYWKS1EgzAE+giAC1X8fMh9pUVlvi+Y6ebqB5Y5c13uwb2yC6AI+sKW0BfpOKsP9A==", + "id": "27e911c64b612560b05f5daa95a1297098cf297d", + "output_base64sha256": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", + "output_base64sha512": "VIAKXZ7LlhJD85WssifT0RmNGmi9zj0VvTJWAB8TJxjAlOwHS0szjwcHybb30NBvOOJgHj2BfU+802L7GgFcuw==", "output_file_mode": null, - "output_md5": "7c618b4d911607ce6d5357e3a7046494", + "output_md5": "83f9f80af90255cfc6e7ffdb67b4ec62", "output_path": "./lambda_zip/standout_lambda_config-prod.zip", - "output_sha": "df4af848b8b9b0503c7737f0a00b6dc5038fb93f", - "output_sha256": "40932c4abe827f31b1ffd03a86b99ea70755104c845845d2ea7c5f329ec4d3d0", - "output_sha512": "97d3369daabf5ee139c8313a6d4fa5cc1616292d44833004fa08800b55fc7cc87da54565be2f98e9e6ea079639735deec1bdb20ba008fac296d017e938ab0ff4", - "output_size": 5026, + "output_sha": "27e911c64b612560b05f5daa95a1297098cf297d", + "output_sha256": "f622c92032c00024b6eaabc2bfd5a7ee7220cb7515cb001600b08d07f2ac2295", + "output_sha512": "54800a5d9ecb961243f395acb227d3d1198d1a68bdce3d15bd3256001f132718c094ec074b4b338f0707c9b6f7d0d06f38e2601e3d817d4fbcd362fb1a015cbb", + "output_size": 5055, "source": [], "source_content": null, "source_content_filename": null, @@ -80,16 +100,16 @@ "attributes": { "exclude_symlink_directories": null, "excludes": null, - "id": "5b31887667c168e055edce9547e5c153b11d788b", - "output_base64sha256": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", - "output_base64sha512": "qypkIsLEkMI380rgBAFuzgNsJQQF/OXHBHgpLOWfKpZFyHtptzLzO3Kn+NPzjcJa0WA12qwGuV6DYxLFcdY27Q==", + "id": "69ad79a90b7469b46c9d19c37e0df94a2922abed", + "output_base64sha256": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", + "output_base64sha512": "OtH+1ix2zPRAZBQU1m3kXOm7qTbbfG/7eP80VFdJZPjmud3T1+1ZCF3GDf8xhwF28uZ1uO9Msl5fyTkEGBgbKw==", "output_file_mode": null, - "output_md5": "11a75e4d67a7ec23f7d681a670af9bab", + "output_md5": "b0860c6a2ce85f5ce4f3e8eea2bc8dc2", "output_path": "./lambda_zip/standout_lambda_redirect-prod.zip", - "output_sha": "5b31887667c168e055edce9547e5c153b11d788b", - "output_sha256": "272f4d0d3e1f88e1e6fffa96cb106f0547ffc5b480d28752206cfb154ed17e5d", - "output_sha512": "ab2a6422c2c490c237f34ae004016ece036c250405fce5c70478292ce59f2a9645c87b69b732f33b72a7f8d3f38dc25ad16035daac06b95e836312c571d636ed", - "output_size": 51416, + "output_sha": "69ad79a90b7469b46c9d19c37e0df94a2922abed", + "output_sha256": "9db220956c81a425220a8db4b1d744eb5491678463487fb96a4fc9be1584954b", + "output_sha512": "3ad1fed62c76ccf440641414d66de45ce9bba936db7c6ffb78ff3454574964f8e6b9ddd3d7ed59085dc60dff31870176f2e675b8ef4cb25e5fc9390418181b2b", + "output_size": 51438, "source": [], "source_content": null, "source_content_filename": null, @@ -278,6 +298,64 @@ } ] }, + { + "mode": "managed", + "type": "aws_apigatewayv2_api_mapping", + "name": "api_standout_domain_mapping", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "2kvqe64ca1", + "api_mapping_key": "", + "domain_name": "nfc.infostandout.com", + "id": "rcfb6y", + "stage": "prod" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_domain_name.api_standout_domain_name", + "aws_apigatewayv2_stage.api_standout_lambda_stage" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_domain_name", + "name": "api_standout_domain_name", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_mapping_selection_expression": "$request.basepath", + "arn": "arn:aws:apigateway:eu-central-1::/domainnames/nfc.infostandout.com", + "domain_name": "nfc.infostandout.com", + "domain_name_configuration": [ + { + "certificate_arn": "arn:aws:acm:eu-central-1:654654203111:certificate/f51f6e1b-e776-4af3-b392-31b679989c05", + "endpoint_type": "REGIONAL", + "hosted_zone_id": "Z1U9ULNL0V5AJ3", + "ownership_verification_certificate_arn": "", + "security_policy": "TLS_1_2", + "target_domain_name": "d-u1uj50v4f0.execute-api.eu-central-1.amazonaws.com" + } + ], + "id": "nfc.infostandout.com", + "mutual_tls_authentication": [], + "tags": {}, + "tags_all": {}, + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19" + } + ] + }, { "mode": "managed", "type": "aws_apigatewayv2_integration", @@ -343,7 +421,7 @@ "operation_name": "", "request_models": {}, "request_parameter": [], - "route_key": "GET /api", + "route_key": "GET /v1", "route_response_selection_expression": "", "target": "integrations/shduzq4" }, @@ -387,7 +465,7 @@ "throttling_rate_limit": 0 } ], - "deployment_id": "7vgrat", + "deployment_id": "tm8p4n", "description": "", "execution_arn": "arn:aws:execute-api:eu-central-1:654654203111:2kvqe64ca1/prod", "id": "prod", @@ -423,7 +501,7 @@ "name_prefix": "", "retention_in_days": 30, "skip_destroy": false, - "tags": null, + "tags": {}, "tags_all": {} }, "sensitive_attributes": [], @@ -448,7 +526,7 @@ "name_prefix": "", "retention_in_days": 14, "skip_destroy": false, - "tags": null, + "tags": {}, "tags_all": {} }, "sensitive_attributes": [], @@ -527,18 +605,19 @@ "x86_64" ], "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod", - "code_sha256": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", + "code_sha256": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", "code_signing_config_arn": "", "dead_letter_config": [], "description": "", "environment": [ { "variables": { + "API_VERSION": "v1", "BUCKET_CONFIG": "standout-config-prod", "BUCKET_DATA": "standout-data-prod", "ENV": "prod", - "FUNCTION_URL": "https://nfc.standout.it/prod", - "GIT_VERSION": "43991cc" + "FUNCTION_URL": "https://nfc.infostandout.com", + "GIT_VERSION": "d7903bf" } } ], @@ -556,7 +635,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-26T09:21:14.000+0000", + "last_modified": "2024-05-30T12:02:09.000+0000", "layers": [ "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" ], @@ -585,8 +664,8 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", - "source_code_size": 5026, + "source_code_hash": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", + "source_code_size": 5055, "tags": {}, "tags_all": {}, "timeout": 10, @@ -626,16 +705,17 @@ "x86_64" ], "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod", - "code_sha256": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", + "code_sha256": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", "code_signing_config_arn": "", "dead_letter_config": [], "description": "", "environment": [ { "variables": { + "API_VERSION": "v1", "BUCKET_CONFIG": "standout-config-prod", "BUCKET_DATA": "standout-data-prod", - "GIT_VERSION": "43991cc", + "GIT_VERSION": "d7903bf", "env": "prod" } } @@ -654,7 +734,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-26T09:21:14.000+0000", + "last_modified": "2024-05-30T12:02:15.000+0000", "layers": [ "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" ], @@ -683,8 +763,8 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", - "source_code_size": 51416, + "source_code_hash": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", + "source_code_size": 51438, "tags": {}, "tags_all": {}, "timeout": 10, diff --git a/terraform.tfstate.d/prod/terraform.tfstate.backup b/terraform.tfstate.d/prod/terraform.tfstate.backup index db672a1..c1eceb2 100644 --- a/terraform.tfstate.d/prod/terraform.tfstate.backup +++ b/terraform.tfstate.d/prod/terraform.tfstate.backup @@ -1,9 +1,29 @@ { "version": 4, "terraform_version": "1.8.4", - "serial": 42, + "serial": 53, "lineage": "bfb14822-28e1-8bec-1200-85cd7662a2f9", - "outputs": {}, + "outputs": { + "api_mapping_domain_name": { + "value": { + "api_id": "2kvqe64ca1", + "api_mapping_key": "", + "domain_name": "nfc.infostandout.com", + "id": "rcfb6y", + "stage": "prod" + }, + "type": [ + "object", + { + "api_id": "string", + "api_mapping_key": "string", + "domain_name": "string", + "id": "string", + "stage": "string" + } + ] + } + }, "resources": [ { "mode": "data", @@ -48,16 +68,16 @@ "attributes": { "exclude_symlink_directories": null, "excludes": null, - "id": "df4af848b8b9b0503c7737f0a00b6dc5038fb93f", - "output_base64sha256": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", - "output_base64sha512": "l9M2naq/XuE5yDE6bU+lzBYWKS1EgzAE+giAC1X8fMh9pUVlvi+Y6ebqB5Y5c13uwb2yC6AI+sKW0BfpOKsP9A==", + "id": "27e911c64b612560b05f5daa95a1297098cf297d", + "output_base64sha256": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", + "output_base64sha512": "VIAKXZ7LlhJD85WssifT0RmNGmi9zj0VvTJWAB8TJxjAlOwHS0szjwcHybb30NBvOOJgHj2BfU+802L7GgFcuw==", "output_file_mode": null, - "output_md5": "7c618b4d911607ce6d5357e3a7046494", + "output_md5": "83f9f80af90255cfc6e7ffdb67b4ec62", "output_path": "./lambda_zip/standout_lambda_config-prod.zip", - "output_sha": "df4af848b8b9b0503c7737f0a00b6dc5038fb93f", - "output_sha256": "40932c4abe827f31b1ffd03a86b99ea70755104c845845d2ea7c5f329ec4d3d0", - "output_sha512": "97d3369daabf5ee139c8313a6d4fa5cc1616292d44833004fa08800b55fc7cc87da54565be2f98e9e6ea079639735deec1bdb20ba008fac296d017e938ab0ff4", - "output_size": 5026, + "output_sha": "27e911c64b612560b05f5daa95a1297098cf297d", + "output_sha256": "f622c92032c00024b6eaabc2bfd5a7ee7220cb7515cb001600b08d07f2ac2295", + "output_sha512": "54800a5d9ecb961243f395acb227d3d1198d1a68bdce3d15bd3256001f132718c094ec074b4b338f0707c9b6f7d0d06f38e2601e3d817d4fbcd362fb1a015cbb", + "output_size": 5055, "source": [], "source_content": null, "source_content_filename": null, @@ -80,16 +100,16 @@ "attributes": { "exclude_symlink_directories": null, "excludes": null, - "id": "5b31887667c168e055edce9547e5c153b11d788b", - "output_base64sha256": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", - "output_base64sha512": "qypkIsLEkMI380rgBAFuzgNsJQQF/OXHBHgpLOWfKpZFyHtptzLzO3Kn+NPzjcJa0WA12qwGuV6DYxLFcdY27Q==", + "id": "69ad79a90b7469b46c9d19c37e0df94a2922abed", + "output_base64sha256": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", + "output_base64sha512": "OtH+1ix2zPRAZBQU1m3kXOm7qTbbfG/7eP80VFdJZPjmud3T1+1ZCF3GDf8xhwF28uZ1uO9Msl5fyTkEGBgbKw==", "output_file_mode": null, - "output_md5": "11a75e4d67a7ec23f7d681a670af9bab", + "output_md5": "b0860c6a2ce85f5ce4f3e8eea2bc8dc2", "output_path": "./lambda_zip/standout_lambda_redirect-prod.zip", - "output_sha": "5b31887667c168e055edce9547e5c153b11d788b", - "output_sha256": "272f4d0d3e1f88e1e6fffa96cb106f0547ffc5b480d28752206cfb154ed17e5d", - "output_sha512": "ab2a6422c2c490c237f34ae004016ece036c250405fce5c70478292ce59f2a9645c87b69b732f33b72a7f8d3f38dc25ad16035daac06b95e836312c571d636ed", - "output_size": 51416, + "output_sha": "69ad79a90b7469b46c9d19c37e0df94a2922abed", + "output_sha256": "9db220956c81a425220a8db4b1d744eb5491678463487fb96a4fc9be1584954b", + "output_sha512": "3ad1fed62c76ccf440641414d66de45ce9bba936db7c6ffb78ff3454574964f8e6b9ddd3d7ed59085dc60dff31870176f2e675b8ef4cb25e5fc9390418181b2b", + "output_size": 51438, "source": [], "source_content": null, "source_content_filename": null, @@ -278,6 +298,64 @@ } ] }, + { + "mode": "managed", + "type": "aws_apigatewayv2_api_mapping", + "name": "api_standout_domain_mapping", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "2kvqe64ca1", + "api_mapping_key": "", + "domain_name": "nfc.infostandout.com", + "id": "rcfb6y", + "stage": "prod" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_domain_name.api_standout_domain_name", + "aws_apigatewayv2_stage.api_standout_lambda_stage" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_domain_name", + "name": "api_standout_domain_name", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_mapping_selection_expression": "$request.basepath", + "arn": "arn:aws:apigateway:eu-central-1::/domainnames/nfc.infostandout.com", + "domain_name": "nfc.infostandout.com", + "domain_name_configuration": [ + { + "certificate_arn": "arn:aws:acm:eu-central-1:654654203111:certificate/f51f6e1b-e776-4af3-b392-31b679989c05", + "endpoint_type": "REGIONAL", + "hosted_zone_id": "Z1U9ULNL0V5AJ3", + "ownership_verification_certificate_arn": "", + "security_policy": "TLS_1_2", + "target_domain_name": "d-u1uj50v4f0.execute-api.eu-central-1.amazonaws.com" + } + ], + "id": "nfc.infostandout.com", + "mutual_tls_authentication": [], + "tags": null, + "tags_all": {}, + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19" + } + ] + }, { "mode": "managed", "type": "aws_apigatewayv2_integration", @@ -312,6 +390,7 @@ "private": "bnVsbA==", "dependencies": [ "aws_apigatewayv2_api.api_standout_gateway", + "aws_cloudwatch_log_group.standout_lambda_config_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_redirect", "aws_lambda_layer_version.lambda_layer", @@ -342,7 +421,7 @@ "operation_name": "", "request_models": {}, "request_parameter": [], - "route_key": "GET /api", + "route_key": "GET /v1", "route_response_selection_expression": "", "target": "integrations/shduzq4" }, @@ -351,6 +430,7 @@ "dependencies": [ "aws_apigatewayv2_api.api_standout_gateway", "aws_apigatewayv2_integration.api_standout_integration", + "aws_cloudwatch_log_group.standout_lambda_config_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_redirect", "aws_lambda_layer_version.lambda_layer", @@ -404,6 +484,56 @@ } ] }, + { + "mode": "managed", + "type": "aws_cloudwatch_log_group", + "name": "standout_lambda_config_logs", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:logs:eu-central-1:654654203111:log-group:standout-lambda-config-logs-prod", + "id": "standout-lambda-config-logs-prod", + "kms_key_id": "", + "log_group_class": "STANDARD", + "name": "standout-lambda-config-logs-prod", + "name_prefix": "", + "retention_in_days": 30, + "skip_destroy": false, + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_cloudwatch_log_group", + "name": "standout_lambda_redirect_logs", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:logs:eu-central-1:654654203111:log-group:standout-lambda-redirect-logs-prod", + "id": "standout-lambda-redirect-logs-prod", + "kms_key_id": "", + "log_group_class": "STANDARD", + "name": "standout-lambda-redirect-logs-prod", + "name_prefix": "", + "retention_in_days": 14, + "skip_destroy": false, + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, { "mode": "managed", "type": "aws_iam_role", @@ -475,18 +605,19 @@ "x86_64" ], "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod", - "code_sha256": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", + "code_sha256": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", "code_signing_config_arn": "", "dead_letter_config": [], "description": "", "environment": [ { "variables": { + "API_VERSION": "v1", "BUCKET_CONFIG": "standout-config-prod", "BUCKET_DATA": "standout-data-prod", "ENV": "prod", - "FUNCTION_URL": "https://nfc.standout.it/prod", - "GIT_VERSION": "d2b05f7" + "FUNCTION_URL": "https://nfc.infostandout.com", + "GIT_VERSION": "d7903bf" } } ], @@ -504,7 +635,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-26T09:03:55.000+0000", + "last_modified": "2024-05-30T12:02:09.000+0000", "layers": [ "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" ], @@ -512,7 +643,7 @@ { "application_log_level": "", "log_format": "Text", - "log_group": "/aws/lambda/standout-config-prod", + "log_group": "standout-lambda-redirect-logs-prod", "system_log_level": "" } ], @@ -533,8 +664,8 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "QJMsSr6CfzGx/9A6hrmepwdVEEyEWEXS6nxfMp7E09A=", - "source_code_size": 5026, + "source_code_hash": "9iLJIDLAACS26qvCv9Wn7nIgy3UVywAWALCNB/KsIpU=", + "source_code_size": 5055, "tags": {}, "tags_all": {}, "timeout": 10, @@ -550,6 +681,7 @@ "sensitive_attributes": [], "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", "dependencies": [ + "aws_cloudwatch_log_group.standout_lambda_redirect_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", @@ -573,16 +705,17 @@ "x86_64" ], "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod", - "code_sha256": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", + "code_sha256": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", "code_signing_config_arn": "", "dead_letter_config": [], "description": "", "environment": [ { "variables": { + "API_VERSION": "v1", "BUCKET_CONFIG": "standout-config-prod", "BUCKET_DATA": "standout-data-prod", - "GIT_VERSION": "d2b05f7", + "GIT_VERSION": "d7903bf", "env": "prod" } } @@ -601,7 +734,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-26T09:04:06.000+0000", + "last_modified": "2024-05-30T12:02:15.000+0000", "layers": [ "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" ], @@ -609,7 +742,7 @@ { "application_log_level": "", "log_format": "Text", - "log_group": "/aws/lambda/standout-redirect-prod", + "log_group": "standout-lambda-config-logs-prod", "system_log_level": "" } ], @@ -630,8 +763,8 @@ "signing_profile_version_arn": "", "skip_destroy": false, "snap_start": [], - "source_code_hash": "Jy9NDT4fiOHm//qWyxBvBUf/xbSA0odSIGz7FU7Rfl0=", - "source_code_size": 51416, + "source_code_hash": "nbIglWyBpCUiCo20sddE61SRZ4RjSH+5ak/JvhWElUs=", + "source_code_size": 51438, "tags": {}, "tags_all": {}, "timeout": 10, @@ -647,6 +780,7 @@ "sensitive_attributes": [], "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", "dependencies": [ + "aws_cloudwatch_log_group.standout_lambda_config_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_layer_version.lambda_layer", "aws_s3_bucket.s3_standout", @@ -720,6 +854,7 @@ "private": "bnVsbA==", "dependencies": [ "aws_apigatewayv2_api.api_standout_gateway", + "aws_cloudwatch_log_group.standout_lambda_config_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_redirect", "aws_lambda_layer_version.lambda_layer", @@ -756,6 +891,7 @@ "sensitive_attributes": [], "private": "bnVsbA==", "dependencies": [ + "aws_cloudwatch_log_group.standout_lambda_redirect_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_config", "aws_lambda_layer_version.lambda_layer", @@ -987,6 +1123,7 @@ "sensitive_attributes": [], "private": "bnVsbA==", "dependencies": [ + "aws_cloudwatch_log_group.standout_lambda_redirect_logs", "aws_iam_role.iam_for_lambda", "aws_lambda_function.lambda_standout_config", "aws_lambda_layer_version.lambda_layer", diff --git a/variable.tf b/variable.tf index 51da246..29ed4b3 100644 --- a/variable.tf +++ b/variable.tf @@ -10,10 +10,25 @@ variable "env" { variable "redirect_url" { type = string - default = "https://nfc.standout.it/dev" + default = "https://nfc.infostandout.com" +} + +variable "domain_name" { + type = string + default = "nfc.infostandout.com" +} + +variable "ssl_certificate" { + type = string + default = "" } variable "git_version" { type = string default = "00000000" } + +variable "api_version" { + type = string + default = "v1" +}