Fixed multi face content add, skips adding folders
This commit is contained in:
@@ -6,10 +6,11 @@ from pydantic import BaseModel
|
||||
from typing import Dict, Optional
|
||||
from redirects_base import Content, Customer, Redirects, Tag
|
||||
|
||||
s3_client = None
|
||||
bucket_config = ''
|
||||
bucket_data = ''
|
||||
function_url = ''
|
||||
s3_client = None
|
||||
redirects: Redirects | None = None
|
||||
|
||||
class S3Bucket(BaseModel):
|
||||
name: str
|
||||
@@ -34,7 +35,7 @@ class Record(BaseModel):
|
||||
s3: S3Event
|
||||
|
||||
def lambda_handler(event: dict, context):
|
||||
global s3_client, bucket_config, bucket_data, function_url
|
||||
global s3_client, bucket_config, bucket_data, function_url, redirects
|
||||
|
||||
if s3_client is None:
|
||||
print("Init Function")
|
||||
@@ -45,33 +46,28 @@ def lambda_handler(event: dict, context):
|
||||
print(f' Bucket Data: {bucket_data}')
|
||||
s3_client = boto3.client('s3')
|
||||
|
||||
## Download redirects file
|
||||
redirects: Redirects
|
||||
try:
|
||||
if context is not None:
|
||||
resp = s3_client.get_object(
|
||||
Bucket=bucket_config,
|
||||
Key='redirects.json'
|
||||
)
|
||||
redirects = Redirects.model_validate_json(resp['Body'].read())
|
||||
else:
|
||||
with open('/home/emanuele/dev/StandOut/lambda_config/redirects.json', 'r') as f:
|
||||
redirects = Redirects.model_validate_json(f.read(), strict=False)
|
||||
except s3_client.exceptions.NoSuchKey as e:
|
||||
print(e)
|
||||
# Oppure pagina "siamo spiacenti ma il contenuto non e' disponibile"
|
||||
return {
|
||||
"statusCode": 404
|
||||
}
|
||||
|
||||
# Proces records
|
||||
### Process records
|
||||
for r in event["Records"]:
|
||||
record = Record(**r)
|
||||
if record.eventSource != "aws:s3":
|
||||
return False
|
||||
|
||||
## Stampa info di debug
|
||||
print(f"Action: {record.eventName}")
|
||||
print(f"Object: {record.s3}")
|
||||
print(f"Object: {record.s3.object}")
|
||||
|
||||
## Ritorna se la chiave non e' un file
|
||||
if record.s3.object.key.endswith('/') and record.s3.object.size == 0:
|
||||
print(f"Skip, folder only: {record.s3.object.key}")
|
||||
continue
|
||||
|
||||
## Scarica il redirects solo il primo giro
|
||||
if redirects is None:
|
||||
try:
|
||||
redirects = downloadRedirects(client = s3_client, context = context)
|
||||
except s3_client.exceptions.NoSuchKey as e:
|
||||
print(e)
|
||||
return False
|
||||
|
||||
match record.eventName:
|
||||
case "ObjectCreated:Put" | "ObjectCreated:CompleteMultipartUpload":
|
||||
@@ -86,6 +82,7 @@ def lambda_handler(event: dict, context):
|
||||
case _:
|
||||
print("Unknown action")
|
||||
|
||||
if redirects is not None:
|
||||
if context is not None:
|
||||
resp = s3_client.put_object(Bucket=bucket_config,
|
||||
Key='redirects.json',
|
||||
@@ -94,9 +91,22 @@ def lambda_handler(event: dict, context):
|
||||
else:
|
||||
with open('/home/emanuele/dev/StandOut/lambda_config/redirects.json', 'w') as f:
|
||||
f.write(redirects.model_dump_json(indent=2))
|
||||
else:
|
||||
print("No Action")
|
||||
|
||||
return True
|
||||
|
||||
def downloadRedirects(client, context) -> Redirects:
|
||||
if context is not None:
|
||||
resp = client.get_object(
|
||||
Bucket=bucket_config,
|
||||
Key='redirects.json'
|
||||
)
|
||||
return Redirects.model_validate_json(resp['Body'].read())
|
||||
else:
|
||||
with open('/home/emanuele/dev/StandOut/lambda_config/redirects.json', 'r') as f:
|
||||
return Redirects.model_validate_json(f.read(), strict=False)
|
||||
|
||||
def getObjectKeys(record: Record) -> list[str]:
|
||||
keys = [v for v in record.s3.object.key.split('/') if v != '']
|
||||
keys.reverse()
|
||||
@@ -206,7 +216,7 @@ def processDelete(record: Record, redirects: Redirects) -> None:
|
||||
print("Unexpected")
|
||||
return
|
||||
|
||||
print(f"Object remove: {record.s3.object.key}")
|
||||
print(f"Object Remove: {record.s3.object.key}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
with open('/home/emanuele/dev/StandOut/lambda_config/test.json', 'r') as f:
|
||||
|
||||
@@ -1,15 +1,36 @@
|
||||
{
|
||||
"customers": {
|
||||
"customer3": {
|
||||
"8eb763ceacec418cb48c81dae40bcde0": {
|
||||
"status": "active",
|
||||
"name": "cliente-test",
|
||||
"tags": {
|
||||
"tag1": {
|
||||
"status": "active",
|
||||
"content": {
|
||||
"type": "url",
|
||||
"key": "url.txt",
|
||||
"url": "https://www.instagram.com/lisavarano?igsh=M2V6ZHhqMG91cmF1&utm_source=qr",
|
||||
"tag_url": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com/dev/api?id=8eb763ceacec418cb48c81dae40bcde0&tag_id=tag1"
|
||||
}
|
||||
},
|
||||
"tag2": {
|
||||
"status": "active",
|
||||
"content": {
|
||||
"type": "s3",
|
||||
"key": "foo.txt",
|
||||
"url": null
|
||||
}
|
||||
"key": "f3",
|
||||
"url": null,
|
||||
"tag_url": "https://api.standout.it/dev/api?id=8eb763ceacec418cb48c81dae40bcde0&tag_id=tag2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"0ef1d0acb1bf4ebab77f5a8c9c56d6b5": {
|
||||
"status": "active",
|
||||
"name": "foo",
|
||||
"tags": {
|
||||
"help": {
|
||||
"status": "active",
|
||||
"content": null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
"arn": "arn:aws:s3:::standout-data"
|
||||
},
|
||||
"object": {
|
||||
"key": "customer3/tag2/foo.txt",
|
||||
"size": 2844326,
|
||||
"key": "cliente-test/tag2/f3/",
|
||||
"size": 0,
|
||||
"eTag": "7039e5338840f289d0510dc9149bf0b5",
|
||||
"sequencer": "00662A206F99CD2E09"
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ resource "aws_lambda_function" "lambda_standout_config" {
|
||||
variables = {
|
||||
BUCKET_CONFIG = aws_s3_bucket.s3_standout_config.bucket,
|
||||
BUCKET_DATA = aws_s3_bucket.s3_standout.bucket
|
||||
FUNCTION_URL = aws_apigatewayv2_stage.api_standout_lambda_stage.invoke_url
|
||||
FUNCTION_URL = var.redirect_url
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 4,
|
||||
"terraform_version": "1.8.3",
|
||||
"serial": 97,
|
||||
"terraform_version": "1.8.4",
|
||||
"serial": 107,
|
||||
"lineage": "c4760d73-7122-ff64-ba30-f5482ab084b8",
|
||||
"outputs": {},
|
||||
"resources": [
|
||||
@@ -48,16 +48,16 @@
|
||||
"attributes": {
|
||||
"exclude_symlink_directories": null,
|
||||
"excludes": null,
|
||||
"id": "c70e679bb3c7f54d8ebf05e81f2757cae660be79",
|
||||
"output_base64sha256": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=",
|
||||
"output_base64sha512": "39KD5BHf3LEcSJpNUHrQ6R9mzmNWSVojgsdDlZIHAhy7c5tjNepQbdaquHGE18mVEAuOXc0mD8wSQrTO5kIcEA==",
|
||||
"id": "515512e32678f33a54e5966a8129eda5c3760a1d",
|
||||
"output_base64sha256": "B5JyNWIx3dw+G1GcVOmfrdGGnhHvZAWYYP38oEX3dpk=",
|
||||
"output_base64sha512": "12CUIHQhDkHp43k1q5Gy4hXXoxGDNIu29F7ie5pCVd32UVpbTqSDauPSmlt4g8sKir0wvcfbZaYXoTbGrqZPAw==",
|
||||
"output_file_mode": null,
|
||||
"output_md5": "1b73b73d80a3b5095ea415fd5665b397",
|
||||
"output_md5": "d84a656b31cd286363d787c80b6abfaf",
|
||||
"output_path": "./lambda_zip/standout_lambda_config-dev.zip",
|
||||
"output_sha": "c70e679bb3c7f54d8ebf05e81f2757cae660be79",
|
||||
"output_sha256": "dc18155352d92003464aa151b30b5f70a38f6546d0467b725e4601bda954a3f6",
|
||||
"output_sha512": "dfd283e411dfdcb11c489a4d507ad0e91f66ce6356495a2382c743959207021cbb739b6335ea506dd6aab87184d7c995100b8e5dcd260fcc1242b4cee6421c10",
|
||||
"output_size": 4619,
|
||||
"output_sha": "515512e32678f33a54e5966a8129eda5c3760a1d",
|
||||
"output_sha256": "079272356231dddc3e1b519c54e99fadd1869e11ef64059860fdfca045f77699",
|
||||
"output_sha512": "d760942074210e41e9e37935ab91b2e215d7a31183348bb6f45ee27b9a4255ddf6515a5b4ea4836ae3d29a5b7883cb0a8abd30bdc7db65a617a136c6aea64f03",
|
||||
"output_size": 4971,
|
||||
"source": [],
|
||||
"source_content": null,
|
||||
"source_content_filename": null,
|
||||
@@ -475,7 +475,7 @@
|
||||
"x86_64"
|
||||
],
|
||||
"arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev",
|
||||
"code_sha256": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=",
|
||||
"code_sha256": "B5JyNWIx3dw+G1GcVOmfrdGGnhHvZAWYYP38oEX3dpk=",
|
||||
"code_signing_config_arn": "",
|
||||
"dead_letter_config": [],
|
||||
"description": "",
|
||||
@@ -484,7 +484,7 @@
|
||||
"variables": {
|
||||
"BUCKET_CONFIG": "standout-config-dev",
|
||||
"BUCKET_DATA": "standout-data-dev",
|
||||
"FUNCTION_URL": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com/dev"
|
||||
"FUNCTION_URL": "https://nfc.standout.it/dev"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -502,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-25T13:16:55.000+0000",
|
||||
"last_modified": "2024-05-26T08:30:30.000+0000",
|
||||
"layers": [
|
||||
"arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7"
|
||||
],
|
||||
@@ -531,8 +531,8 @@
|
||||
"signing_profile_version_arn": "",
|
||||
"skip_destroy": false,
|
||||
"snap_start": [],
|
||||
"source_code_hash": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=",
|
||||
"source_code_size": 4619,
|
||||
"source_code_hash": "B5JyNWIx3dw+G1GcVOmfrdGGnhHvZAWYYP38oEX3dpk=",
|
||||
"source_code_size": 4971,
|
||||
"tags": {},
|
||||
"tags_all": {},
|
||||
"timeout": 10,
|
||||
@@ -548,8 +548,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
"aws_s3_bucket.s3_standout",
|
||||
@@ -754,8 +752,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_function.lambda_standout_config",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
@@ -987,8 +983,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_function.lambda_standout_config",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 4,
|
||||
"terraform_version": "1.8.3",
|
||||
"serial": 95,
|
||||
"terraform_version": "1.8.4",
|
||||
"serial": 105,
|
||||
"lineage": "c4760d73-7122-ff64-ba30-f5482ab084b8",
|
||||
"outputs": {},
|
||||
"resources": [
|
||||
@@ -48,16 +48,16 @@
|
||||
"attributes": {
|
||||
"exclude_symlink_directories": null,
|
||||
"excludes": null,
|
||||
"id": "a401470a001300338fa7d09cdffe3f16277971d8",
|
||||
"output_base64sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=",
|
||||
"output_base64sha512": "oUyZrUKNQPvZt3crReW69Vapq3IGvHD5hk617XXamv8G99f62CoJO1lsd07gaVlf5ln2EyPj+cQleaXg5w3JCg==",
|
||||
"id": "b71f32517224e8488af8a6261e0d77faa07b322c",
|
||||
"output_base64sha256": "CvOhFoZXqUcFozUduJh8QZOOrf5veK1m8vK9wvV559g=",
|
||||
"output_base64sha512": "I6CznERTeZVSL1wZrJsLNNuehUKF7z7hcJJIGUDzsNahiznOWxzYdSDAONuDeZeiVVUiWEgLzdIWwqH+k1CkUA==",
|
||||
"output_file_mode": null,
|
||||
"output_md5": "e97ce8be22567986c9fcff5165b4afdb",
|
||||
"output_md5": "44112bffcda59ca0e2f0b975518a9942",
|
||||
"output_path": "./lambda_zip/standout_lambda_config-dev.zip",
|
||||
"output_sha": "a401470a001300338fa7d09cdffe3f16277971d8",
|
||||
"output_sha256": "edca42403d4b7fa403c123e4fde7426bc5c3651794bbbad186109a827a280227",
|
||||
"output_sha512": "a14c99ad428d40fbd9b7772b45e5baf556a9ab7206bc70f9864eb5ed75da9aff06f7d7fad82a093b596c774ee069595fe659f61323e3f9c42579a5e0e70dc90a",
|
||||
"output_size": 4639,
|
||||
"output_sha": "b71f32517224e8488af8a6261e0d77faa07b322c",
|
||||
"output_sha256": "0af3a1168657a94705a3351db8987c41938eadfe6f78ad66f2f2bdc2f579e7d8",
|
||||
"output_sha512": "23a0b39c44537995522f5c19ac9b0b34db9e854285ef3ee17092481940f3b0d6a18b39ce5b1cd87520c038db837997a255552258480bcdd216c2a1fe9350a450",
|
||||
"output_size": 4993,
|
||||
"source": [],
|
||||
"source_content": null,
|
||||
"source_content_filename": null,
|
||||
@@ -475,7 +475,7 @@
|
||||
"x86_64"
|
||||
],
|
||||
"arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev",
|
||||
"code_sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=",
|
||||
"code_sha256": "CvOhFoZXqUcFozUduJh8QZOOrf5veK1m8vK9wvV559g=",
|
||||
"code_signing_config_arn": "",
|
||||
"dead_letter_config": [],
|
||||
"description": "",
|
||||
@@ -484,7 +484,7 @@
|
||||
"variables": {
|
||||
"BUCKET_CONFIG": "standout-config-dev",
|
||||
"BUCKET_DATA": "standout-data-dev",
|
||||
"FUNCTION_URL": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com/dev"
|
||||
"FUNCTION_URL": "https://nfc.standout.it/dev"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -502,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-25T13:15:18.000+0000",
|
||||
"last_modified": "2024-05-26T08:26:41.000+0000",
|
||||
"layers": [
|
||||
"arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7"
|
||||
],
|
||||
@@ -531,8 +531,8 @@
|
||||
"signing_profile_version_arn": "",
|
||||
"skip_destroy": false,
|
||||
"snap_start": [],
|
||||
"source_code_hash": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=",
|
||||
"source_code_size": 4639,
|
||||
"source_code_hash": "CvOhFoZXqUcFozUduJh8QZOOrf5veK1m8vK9wvV559g=",
|
||||
"source_code_size": 4993,
|
||||
"tags": {},
|
||||
"tags_all": {},
|
||||
"timeout": 10,
|
||||
@@ -548,8 +548,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
"aws_s3_bucket.s3_standout",
|
||||
@@ -754,8 +752,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_function.lambda_standout_config",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
@@ -987,8 +983,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_function.lambda_standout_config",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 4,
|
||||
"terraform_version": "1.8.3",
|
||||
"serial": 37,
|
||||
"terraform_version": "1.8.4",
|
||||
"serial": 39,
|
||||
"lineage": "bfb14822-28e1-8bec-1200-85cd7662a2f9",
|
||||
"outputs": {},
|
||||
"resources": [
|
||||
@@ -48,16 +48,16 @@
|
||||
"attributes": {
|
||||
"exclude_symlink_directories": null,
|
||||
"excludes": null,
|
||||
"id": "c70e679bb3c7f54d8ebf05e81f2757cae660be79",
|
||||
"output_base64sha256": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=",
|
||||
"output_base64sha512": "39KD5BHf3LEcSJpNUHrQ6R9mzmNWSVojgsdDlZIHAhy7c5tjNepQbdaquHGE18mVEAuOXc0mD8wSQrTO5kIcEA==",
|
||||
"id": "515512e32678f33a54e5966a8129eda5c3760a1d",
|
||||
"output_base64sha256": "B5JyNWIx3dw+G1GcVOmfrdGGnhHvZAWYYP38oEX3dpk=",
|
||||
"output_base64sha512": "12CUIHQhDkHp43k1q5Gy4hXXoxGDNIu29F7ie5pCVd32UVpbTqSDauPSmlt4g8sKir0wvcfbZaYXoTbGrqZPAw==",
|
||||
"output_file_mode": null,
|
||||
"output_md5": "1b73b73d80a3b5095ea415fd5665b397",
|
||||
"output_md5": "d84a656b31cd286363d787c80b6abfaf",
|
||||
"output_path": "./lambda_zip/standout_lambda_config-prod.zip",
|
||||
"output_sha": "c70e679bb3c7f54d8ebf05e81f2757cae660be79",
|
||||
"output_sha256": "dc18155352d92003464aa151b30b5f70a38f6546d0467b725e4601bda954a3f6",
|
||||
"output_sha512": "dfd283e411dfdcb11c489a4d507ad0e91f66ce6356495a2382c743959207021cbb739b6335ea506dd6aab87184d7c995100b8e5dcd260fcc1242b4cee6421c10",
|
||||
"output_size": 4619,
|
||||
"output_sha": "515512e32678f33a54e5966a8129eda5c3760a1d",
|
||||
"output_sha256": "079272356231dddc3e1b519c54e99fadd1869e11ef64059860fdfca045f77699",
|
||||
"output_sha512": "d760942074210e41e9e37935ab91b2e215d7a31183348bb6f45ee27b9a4255ddf6515a5b4ea4836ae3d29a5b7883cb0a8abd30bdc7db65a617a136c6aea64f03",
|
||||
"output_size": 4971,
|
||||
"source": [],
|
||||
"source_content": null,
|
||||
"source_content_filename": null,
|
||||
@@ -420,7 +420,9 @@
|
||||
"force_detach_policies": false,
|
||||
"id": "iam_for_lambda-prod",
|
||||
"inline_policy": [],
|
||||
"managed_policy_arns": [],
|
||||
"managed_policy_arns": [
|
||||
"arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
|
||||
],
|
||||
"max_session_duration": 3600,
|
||||
"name": "iam_for_lambda-prod",
|
||||
"name_prefix": "",
|
||||
@@ -473,7 +475,7 @@
|
||||
"x86_64"
|
||||
],
|
||||
"arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod",
|
||||
"code_sha256": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=",
|
||||
"code_sha256": "B5JyNWIx3dw+G1GcVOmfrdGGnhHvZAWYYP38oEX3dpk=",
|
||||
"code_signing_config_arn": "",
|
||||
"dead_letter_config": [],
|
||||
"description": "",
|
||||
@@ -482,7 +484,7 @@
|
||||
"variables": {
|
||||
"BUCKET_CONFIG": "standout-config-prod",
|
||||
"BUCKET_DATA": "standout-data-prod",
|
||||
"FUNCTION_URL": "https://2kvqe64ca1.execute-api.eu-central-1.amazonaws.com/prod"
|
||||
"FUNCTION_URL": "https://nfc.standout.it/prod"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -500,7 +502,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-25T13:19:36.000+0000",
|
||||
"last_modified": "2024-05-26T08:43:12.000+0000",
|
||||
"layers": [
|
||||
"arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2"
|
||||
],
|
||||
@@ -529,8 +531,8 @@
|
||||
"signing_profile_version_arn": "",
|
||||
"skip_destroy": false,
|
||||
"snap_start": [],
|
||||
"source_code_hash": "3BgVU1LZIANGSqFRswtfcKOPZUbQRntyXkYBvalUo/Y=",
|
||||
"source_code_size": 4619,
|
||||
"source_code_hash": "B5JyNWIx3dw+G1GcVOmfrdGGnhHvZAWYYP38oEX3dpk=",
|
||||
"source_code_size": 4971,
|
||||
"tags": {},
|
||||
"tags_all": {},
|
||||
"timeout": 10,
|
||||
@@ -546,8 +548,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
"aws_s3_bucket.s3_standout",
|
||||
@@ -752,8 +752,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_function.lambda_standout_config",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
@@ -985,8 +983,6 @@
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_apigatewayv2_api.api_standout_gateway",
|
||||
"aws_apigatewayv2_stage.api_standout_lambda_stage",
|
||||
"aws_iam_role.iam_for_lambda",
|
||||
"aws_lambda_function.lambda_standout_config",
|
||||
"aws_lambda_layer_version.lambda_layer",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 4,
|
||||
"terraform_version": "1.8.3",
|
||||
"serial": 34,
|
||||
"terraform_version": "1.8.4",
|
||||
"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"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -7,3 +7,8 @@ variable "env" {
|
||||
type = string
|
||||
default = "dev"
|
||||
}
|
||||
|
||||
variable "redirect_url" {
|
||||
type = string
|
||||
default = "https://nfc.standout.it/dev"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user