in lambda/source/elasticsearch/elkpostscriptlambda.py [0:0]
def lambda_handler(event, context):
print("Received event:")
print(json.dumps(event))
try:
responseStatus = 'SUCCESS'
print('OS environment -- ' + os.environ['DomainEndpoint'])
# If the Cloudformation Stack is being created, call the desired Elastic APIs for configuration
if event['RequestType'] == 'Create':
uri = os.environ['DomainEndpoint']
putRequest = json.dumps({
"index_patterns": [
"solumina*","di*"
],
"settings": {
"index.max_ngram_diff": "8",
"analysis": {
"analyzer": {
"ibaset_analyzer": {
"tokenizer": "ibaset_ngram_tokenizer",
"filter": [
"lowercase"
]
},
"comma_analyzer": {
"type": "custom",
"tokenizer": "comma_tokenizer"
}
},
"tokenizer": {
"ibaset_ngram_tokenizer": {
"type": "nGram",
"min_gram": "3",
"max_gram": "11",
"token_chars": []
},
"white_tokenizer": {
"type": "whitespace"
},
"comma_tokenizer": {
"type": "pattern",
"pattern": ","
}
}
},
"number_of_shards": 2,
"number_of_replicas" : "2"
},
"mappings": {
"doc": {
"properties": {
"oper_no": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"order_id": {
"type": "text"
},
"order_no": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"oper_key": {
"type": "text"
},
"part_no": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"serial_no": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"lot_no": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"asgnd_work_center": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"reject_work_center": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"resp_work_center": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"reject_order_no": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"disposition_order_no": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"disc_id": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"disc_line_no": {
"type": "text"
},
"updt_userid": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"part_chg": {
"type": "text",
"analyzer": "ibaset_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"security_group": {
"type": "text",
"analyzer": "comma_analyzer"
}
}
}
}
})
print('PUT Request: \n' + putRequest)
response = requests.put(uri, data=putRequest, headers={"Content-Type": "application/json"}, timeout= 30)
results = json.loads(response.text)
print('Results: \n' + response.text)
stack_name = os.environ['stackName']
# Sleep for 10 second, delete this code for production.
send(event, context, SUCCESS, outputData)
time.sleep(120)
print('About to delelete stack # ' + stack_name)
return delete_cfn(event, context, stack_name)
else:
send(event, context, SUCCESS, outputData)
except Exception as e:
print("send(..) failed executing handler (..): " + str(e))