in functions/source/lex_custom_lambda/lex_custom_lambda.py [0:0]
def create_bot(event):
try:
lex_prefix = event['ResourceProperties']['LexResourcesPrefix']
if lex_prefix and not lex_prefix.endswith('_'):
lex_prefix = lex_prefix + '_'
else:
lex_prefix = ''
s3 = boto3.resource('s3')
bucket_name = event['ResourceProperties']['BucketName']
lex_json_key = event['ResourceProperties']['LexJsonKey']
fulfillment_lambda_arn = event['ResourceProperties']['FulfillmentLambdaArn']
bucket = s3.Bucket(bucket_name)
lex_json_obj = bucket.Object(lex_json_key)
lex_json = json.loads(lex_json_obj.get()["Body"].read().decode('utf-8'))
new_lex_json = lex_json.copy()
for intent in new_lex_json['resource']['intents']:
fulfillmentActivityType = intent['fulfillmentActivity']['type']
if fulfillmentActivityType == 'CodeHook':
intent['fulfillmentActivity']['codeHook']['uri'] = fulfillment_lambda_arn
bot_response = chatbot_utils.import_bot(new_lex_json, lex_prefix)
return bot_response
except Exception as ex:
logger.error("Exception while trying to create Lex Bot : " + str(ex))
return None