in rstudio_fargate/rstudio/ses/ses_custom_resource_handler.py [0:0]
def main(event, context):
physical_id = "%s.%s" % (id_generator(6), id_generator(16))
print(event)
try:
log.info("Input event: %s", event)
# Check if this is a Create and we're failing Creates
if event["RequestType"] == "Create" and event["ResourceProperties"].get(
"FailCreate", False
):
raise RuntimeError("Create failure requested")
if event["RequestType"] in ["Create"]:
client = boto3.client("ses")
sm_client = boto3.client("secretsmanager")
email_from = event["ResourceProperties"]["EmailFrom"]
email_to = event["ResourceProperties"]["EmailTo"]
subject = event["ResourceProperties"]["Subject"]
message = event["ResourceProperties"]["Message"]
secret_arn = event["ResourceProperties"]["SecretArn"]
sresponse = sm_client.get_secret_value(SecretId=secret_arn)
message = message.replace("<password>", escape(sresponse["SecretString"]))
response = send_email(email_from, email_to, subject, message)
attributes = {"Response": response}
cfnresponse.send(
event, context, cfnresponse.SUCCESS, attributes, physical_id
)
if event["RequestType"] in ["Delete", "Update"]:
attributes = {"Response": "Delete/update performed"}
cfnresponse.send(
event, context, cfnresponse.SUCCESS, attributes, physical_id
)
except Exception as e:
log.exception(e)
cfnresponse.send(event, context, cfnresponse.FAILED, {}, physical_id)