Код ниже
import boto3
import json
from requests_aws4auth import AWS4Auth
from elasticsearch import Elasticsearch, RequestsHttpConnection
session = boto3.session.Session()
credentials = session.get_credentials()
awsauth = AWS4Auth(credentials.access_key,
credentials.secret_key,
session.region_id, 'es',
session_token=credentials.token)
es = Elasticsearch(
['https://xx.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.delete(index='test', ignore=[400, 404])
es.indices.create(index='test', ignore=400)
r = [{'id': '1', 'data': 'Health'},
{'id': '2', 'data': 'countries'},
{'id': '3', 'data': 'currency'},
{'id': '4', 'data': 'language'}]
for e in enumerate(r):
es.index(index="test", body=e[1])
result = es.search(index="test", body={"query": {"match_all": {}}})
return{
'statusCode': 200,
'body':result
}
В прошлый день у меня все получалось
Сегодня я получил ошибку ниже
{
"errorMessage": "'Session' object has no attribute 'region_id'",
"errorType": "AttributeError",
"stackTrace": [
" File \"/var/lang/lib/python3.8/imp.py\", line 234, in load_module\n return load_source(name, filename, file)\n",
" File \"/var/lang/lib/python3.8/imp.py\", line 171, in load_source\n module = _load(spec)\n",
" File \"<frozen importlib._bootstrap>\", line 702, in _load\n",
" File \"<frozen importlib._bootstrap>\", line 671, in _load_unlocked\n",
" File \"<frozen importlib._bootstrap_external>\", line 783, in exec_module\n",
" File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n",
" File \"/var/task/lambda_function.py\", line 15, in <module>\n session.region_id, 'es',\n"
]
}