【发布时间】:2021-02-02 00:38:28
【问题描述】:
我为 kibana 启用了 cognito 身份验证的弹性搜索。这按预期工作正常。
在我的 python 脚本中,我通过在 http_auth() 中提供用户名/密码来连接到 elasticsearch,同时创建连接对象。但是当我尝试检查索引是否存在时,会出现身份验证错误吗?有人可以帮忙吗。这是您模拟的示例代码。
from __future__ import print_function
import json
import time
import urllib
import re
import sys
import requests
import base64
import time
from elasticsearch import Elasticsearch
from datetime import datetime
esEndpoint = ""
uname
pwd
indexName = 'index_1'
mappings_rds = {
"settings": {
"number_of_shards": 2,
"number_of_replicas": 1
},
"mappings": {
"properties" : {
"tableName": {
"type": "keyword"
},
"tableRows": {
"type": "integer"
},
"updatedTime": {
"type": "date",
"format":"date_optional_time||yyyy-MM-dd'T'HH:mm:ss"
},
"created_timestamp":{
"type": "date",
"format":"date_optional_time||yyyy-MM-dd'T'HH:mm:ss"
}
}
}
}
esClient = Elasticsearch([esEndPoint],http_auth=(uname,pwd))
try:
res = esClient.indices.exists(indexName)
print(res)
if res is False:
r = esClient.indices.create(indexName, body=mapping_rds, ignore=400)
return 1
except Exception as E:
print("Unable to Create Index {0}".format(indexName))
【问题讨论】:
-
使用 (uname,pwd) 访问 kibana 并告诉我们您在运行
HEAD /index_1时看到了什么 -
感谢 Assael,我尝试了命令并得到 "{"statusCode":404,"error":"Not Found","message":"404 - Not Found"}" 作为响应kibana 控制台。
-
您能分享一下您在运行代码时遇到的错误吗?
-
esClient.ping() 的输出是什么?
标签: python python-3.x elasticsearch elasticsearch-py