in source/pinpoint-iot-campaign-hook/lambda_function.py [0:0]
def lambda_handler(event, context):
try:
global log_level
log_level = str(os.environ.get('LOG_LEVEL')).upper()
if log_level not in [
'DEBUG', 'INFO',
'WARNING', 'ERROR',
'CRITICAL'
]:
log_level = 'ERROR'
logging.getLogger().setLevel(log_level)
client = boto3.client('iot-data', region_name=os.environ['AWS_REGION'])
cw_client = boto3.client('logs', region_name=os.environ['AWS_REGION'])
logging.debug("Received Lambda event:", event)
response = client.publish(
topic=os.environ['IOT_TOPIC'],
qos=1,
payload=json.dumps({"PinpointMessage":event['Message']['smsmessage']['body']}))
logging.debug("Received response from IoT client: ", response)
if send_anonymous_data == "YES":
try:
sendAnonymousData()
except Exception as error:
logging.error('send_anonymous_data error: %s', error)
else:
logging.info('Anonymous usage metrics collection disabled.')
result = {
'statusCode': '200',
'body': {'message': 'success'}
}
return json.dumps(result)
except Exception as error:
logging.error('lambda_handler error: %s' % (error))
logging.error('lambda_handler trace: %s' % traceback.format_exc())
result = {
'statusCode': '500',
'body': {'message': 'error'}
}
return json.dumps(result)