in source/aws_lambda/s3_event/handler.py [0:0]
def send_configuration_error(configuration: Configuration):
errors = configuration.errors
sns = get_service_client("sns")
dataset_group = configuration.dataset_group
subject = f"{solution_name()} Notifications"
def build_default_message():
f"The personalization workflow for {configuration.dataset_group} completed with errors."
def build_json_message():
return json.dumps(
{
"datasetGroup": dataset_group,
"status": "UPDATE FAILED",
"summary": "There were errors detected when reading a personalization job configuration file",
"description": [error for error in errors],
}
)
def build_long_message():
message = "There were errors detected when reading a personalization job configuration file:\n\n"
for error in errors:
logger.error(f"Personalization job configuration error: {error}")
message += f" - {error}\n"
message += "\nPlease correct these errors and upload the configuration again."
return message
logger.error("publishing configuration error to SQS")
sns.publish(
TopicArn=topic_arn(),
Message=json.dumps(
{
"default": build_default_message(),
"sms": build_default_message(),
"email": build_long_message(),
"email-json": build_json_message(),
"sqs": build_json_message(),
}
),
MessageStructure="json",
Subject=subject,
)
logger.error("published configuration error to SQS")