def lambda_handler()

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))