Code is below
I have created an elastic search domain.
Push the document into elastic search with index my-index through
lambda function
https://search-xx.us-east-1.es.amazonaws.com/my-index/_search
What I have done.
I have created an api (post)
What need to do?
How to fetch the data from elastic Search index to api on hit through lambda function?
My return is null
COde to generate elastic search
- How to create the package 1.create a env in your local
2.install necessary libraries (elasticsearch,requests,requests_aws4auth,boto3) using pip
3.create file inside env\Lib\site-packages\ with lambda_function.py and add the below code
4.Zip the above folder and name it as lambda_function.zip and upload into lambda function where you create the function with necessary IAM role
import boto3
import json
from requests_aws4auth import AWS4Auth
from elasticsearch import Elasticsearch, RequestsHttpConnection
session = boto3.session.Session()
credentials = session.get_credentials()
s3 = session.resource('s3')
bucket = s3.Bucket('test20220elastic')
awsauth = AWS4Auth(credentials.access_key,
credentials.secret_key,
session.region_name, 'es',
session_token=credentials.token)
es = Elasticsearch(
['https://search-testelastic-2276kyz2u4l3basec63onfq73a.us-east-1.es.amazonaws.com'],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
def lambda_handler(event, context):
es.cluster.health()
es.indices.create(index='my-index-1', ignore=400)
r = [{'Name': 'Dr. Christopher DeSimone', 'Specialised and Location': 'Health'},
{'Name': 'Dr. Tajwar Aamir (Aamir)', 'Specialised and Location': 'Health'},
{'Name': 'Dr. Bernard M. Aaron', 'Specialised and Location': 'Health'}]
for e in enumerate(r):
es.index(index="my-index-1", body=e[2])
result = es.search(index="my-index-1", body={"query": {"match_all": {}}})
bucket.put_object(Body=json.dumps(result),Key="my_result.json",ContentType="application/json")
{
'statusCode': 200,
#'body': json.dumps('API INVOKES!')
'body':result
}
Below is the content in the my-index
{"took":2,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":3,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"my-index_1","_type":"_doc","_id":"elqrJHMB10jKFvejVaNM","_score":1.0,"_source":{"Name":"Dr. Christopher DeSimone","Specialised and Location":"Health"}},{"_index":"my-index_1","_type":"_doc","_id":"e1qrJHMB10jKFvejVqMK","_score":1.0,"_source":{"Name":"Dr. Tajwar Aamir (Aamir)","Specialised and Location":"Health"}},{"_index":"my-index_1","_type":"_doc","_id":"fFqrJHMB10jKFvejVqMR","_score":1.0,"_source":{"Name":"Dr. Bernard M. Aaron","Specialised and Location":"Health"}}]}}