我的笔记本电脑环境和AWS Lambda之间的Python Elasticsearch工作方式不同

时间:2018-08-01 16:00:44

标签: python-3.x amazon-web-services elasticsearch aws-lambda elasticsearch-6

from elasticsearch import Elasticsearch
host = 'http://..........'
es = Elasticsearch(host)

上面的简单代码创建了Elasticsearch实例。

在我的笔记本电脑环境中,它可以通过某些Elasticsearch方法(搜索,索引等)正常运行。

但是,当我将代码移至AWS Lambda时,创建实例时它将返回以下错误。

elasticsearch.exceptions.ImproperlyConfigured: Root certificates are missing for certificate validation. Either pass them in using the ca_certs parameter or install certifi to use it automatically.

两者都使用相同的Elasticsearch软件包6.3版,并且Elasticserach公开打开。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:ap-northeast-1:xxxxxxxx:domain/sam-test-es/*"
    }
  ]
}

我知道,如果我使用如下所示的不同形式,它在Lambda中也能正常工作,但我想知道是什么与众不同。

from elasticsearch import Elasticsearch
host = 'http://..........'
es = Elasticsearch(hosts=[{'host': host, 'port': 443}])
# the code works in Lambda.

0 个答案:

没有答案