in Back-End/lambdas/receive_sqs_message.py [0:0]
def lambda_handler(event, context):
print(json.dumps(event))
# message hasn't failed yet
failed_message = False
try:
message = event['Records'][0]
except KeyError:
print('No messages on the queue!')
try:
message = event['Records'][0]
print(json.dumps(message))
sqs_function = message['messageAttributes']['Function']['stringValue']
account_number = message['messageAttributes']['AccountNumber']['stringValue']
region = message['messageAttributes']['Region']['stringValue']
receipt_handle = event['Records'][0]['receiptHandle']
print(f'sqs_function passed is: {sqs_function}')
# Try run each function
try:
# Lambda logic
compare_and_update_function(
account_number, region, sqs_function, cross_account_role)
except ClientError as e:
print(
f'Error: with {sqs_function}, in account {account_number}, in region {region} - {e}')
except Exception as e:
print(
f'Error: with {sqs_function}, in account {account_number}, in region {region} - {e}')
except ClientError as e:
print(f'Error: on processing message, {e}')
failed_message = True
except Exception as e:
print(f'Error: on processing message, {e}')
failed_message = True
# message must have passed, deleting
if failed_message is False:
client_sqs.delete_message(
QueueUrl=queue_url,
ReceiptHandle=receipt_handle,
)