python - 索引到弹性搜索时的aws lambda超时
问题描述
我正在尝试一个简单的 lambda 函数将事件索引到弹性搜索中。
我的 elasticsearch 落后于 VPC,我的 lambda 函数也是如此。子网和安全组都是相同的。我确定
我的 ES 客户端如下:
es_host = 'vpc-somethingsomething.eu-west-1.es.amazonaws.com'
es = Elasticsearch(
hosts=[{'host': es_host, 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
而且我确信 ES 主机以这种方式是正确的,否则我会收到“无法建立新连接”错误。
# key = parsing_key_from_event()
print("the record being indexed: ", body)
res = es.index(index='my-index-name', id=key, body=body)
print("index response: ", res)
我看到了代表我的索引模型的正确 dict 的第一个打印。由于 es.index 确实超时,我无法看到最后的打印。索引的名称和键被审查,但在实际设置中是正确的。
我分配给 lambda 函数的角色为 elasticsearch 启用了上帝模式,并建议允许 EC2 使用。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface",
"ec2:DescribeNetworkInterfaces",
"ec2:DeleteNetworkInterface",
"dynamodb:*",
"es:*"
],
"Resource": "*"
}
]
}
鉴于所有这些信息,任何人都知道为什么 es.index 超时?
解决方案
推荐阅读
- flutter - 方法如何返回 2 个我稍后将在列中使用的小部件
- javascript - svg d3js .drag(...).origin 不是函数
- batch-file - 将参数作为文件的模式传递
- mysql - MySqlException:对于带有游标的存储过程,子查询返回多于 1 行
- json - Angular 发布请求失败,错误为 500
- vba - VBA 填充名称
- html - 如何使弹性项目的高度随内容扩展并阻止它溢出?
- wordpress - 如何将打开的图形元标记添加到 WordPress wp-login 页面?
- node.js - 具有 ASG 和 ELB (bitbucket) 的 AWS CD/CI 管道
- java - 来自 Keycloak 的 JWT 访问令牌的 Java 离线验证