Нет ошибки при выполнении функции python, но все равно индекс не создается в elasticsreach

#python-3.x #elasticsearch #aws-lambda

Вопрос:

Я создал лямбда-функцию python для извлечения любого набора изменений, произошедших в route53, и отправки его в Elasticsearch.

Ниже приведена моя функция Python

 import json
import uuid
import sys
import re
from datetime import datetime
from elasticsearch import Elasticsearch, RequestsHttpConnection
from elasticsearch import TransportError

def lambda_handler(event, context):
    mydump = json.dumps(event)
    myload = json.loads(mydump)
    indexName = "routeindexname"
    logstashIndex = indexName   '-'   datetime.now().strftime("%Y.%m.%d")
    es = Elasticsearch(["192.168.21.150"], port=8200, connection_class = RequestsHttpConnection)
    es.indices.create(index=logstashIndex, ignore=400)
    id1 = uuid.uuid4()
    es.index(index=logstashIndex, id=str(id1), body=myload)
    print("Successly Created - Index: {}".format(logstashIndex))
         
    return {
        'statusCode': 200,
        'body': json.dumps('Successfully exported logs to ELK')
    }
 

Ниже приведен вывод моей консоли

 START RequestId: c45ab4ff-58c4-47d9-a747-e2af40b02z23 Version: $LATEST
END RequestId: c45ab4ff-58c4-47d9-a747-e2af40b02z23
REPORT RequestId: c45ab4ff-58c4-47d9-a747-e2af40b02z23  Duration: 3003.62 ms    Billed Duration: 3000 ms    Memory Size: 128 MB Max Memory Used: 28 MB  
2021-09-06T13:35:30.809Z c45ab4ff-58c4-47d9-a747-e2af40b02z23 Task timed out after 3.00 seconds
 

Когда я ставлю print(id1) ниже id1 , он отображается в консоли, но после этого, похоже, ничего не работает.
Похоже es.index , это не работает.
Для проверки при проверке индекса elasticsearch также не был создан.

Эластичный поиск = 7,14

Python = 3,8

Не уверен, что я чего-то не понимаю.

Ответ №1:

Я все понял. С лямбда-функцией все в порядке.

Мне пришлось добавить соответствующий VPC, подсеть и безопасность, такие же, как стек ELK, в функцию Lambda, и это сработало.