我正在尝试将Elasticsearch用于连接到Alexa Skills Kit的Lambda函数的数据存储.Lambda在没有Elasticsearch的情况下正常工作,但ES提供了急需的模糊匹配.
我能够从Lambda访问它的唯一方法是启用Elasticsearch全局访问,但这是一个非常糟糕的主意.我也可以通过开放访问策略或IP地址策略从我的计算机访问.有没有办法通过Lambda进行只读访问和通过IP进行读写?
在IAM上,我授予了我的Lambda角色AmazonESReadOnlyAccess.在ES方面,我试过这个,但它只适用于IP地址:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::NUMBER:root",
"arn:aws:iam::NUMBER:role/lambda_basic_execution"
]
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:NUMBER:domain/NAME/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:NUMBER:domain/NAME/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "MY IP"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
该论坛帖子提出了同样的问题,但未得到答复.
我正在尝试分析我的应用程序,看看我是否可以重现这篇博文.我在命令行中添加了-D mapred.task.profile = true,并检查了它所执行的作业配置.
Hadoop:The Definitive Guide说明配置文件信息将出现在我运行作业的Unix目录中.我开始的目录有一个文件attempt_201305011806_0042_m_000002_0.profile,这是正确的作业ID,但没有映射器#2(只有1个映射器,它没有失败).输出仅在配置文件中包含标题信息; 没有任何实际的分析信息.
Hadoop文档说输出将在用户日志目录中,但我找不到任何内容.如果我进入映射器的任务日志,则会在"profile.out logs"下显示包含合法信息的分析信息.我的HDFS输出目录根本没有分析信息.分析输出不应该在某个地方的HDFS中吗?
此外,它只在日志中提供基于文本的输出,但我发现可视化配置文件的所有工具都采用二进制hprof格式.有关如何获取二进制配置文件或将基于文本的配置文件加载到hprof工具的任何想法?