cat << EOF > ${FILE_CODE_FUNCTION}
import os
import boto3
import logging
sns_client = boto3.client('sns')
topic_arn = '${SNS_TOPIC_ARN}'
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
logger.info('## ENVIRONMENT VARIABLES')
logger.info(os.environ)
logger.info('## EVENT')
logger.info(event)
# publush sns topic
sns_message = event['detail']
sns_subject = 'Hello {} {}!'.format(event['first_name'],
event['last_name'])
request = {
'TopicArn': topic_arn,
'Message': sns_message,
'Subject': sns_subject
}
try:
response_sns = sns_client.publish(**request)
logger.info('## REQUEST RESPONSE SNS')
logger.info(response_sns)
except Exception as e:
return logger.error("Failed to publish SNS message: {}".format(e))
return {
"statusCode": 200,
"sns": "Successfully publush SNS message."
}
EOF
cat ${FILE_CODE_FUNCTION}