繁体   English   中英

AWS Lambda使用C#代理ElasticSearch Service

[英]AWS Lambda to proxy ElasticSearch Service using C#

我正在尝试使用c#创建一个AWS lamda以访问AWS ElasticSerch服务。 我创建了一个角色,可以将我的lambda函数配置为使用该角色,该角色可以访问ElasticSeach。 但是许可似乎没有奏效。

这是我的设置:

  1. 我创建了具有对ES服务的读写访问权限的访问策略。 在此处输入图片说明

  2. 创建角色并分配上述策略

  3. 我已将此权限授予我的ES群集权限。

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::XXXXXXXXXXX:role/lambda-es-role" }, "Action": "es:*", "Resource": "arn:aws:es:us-west-2:XXXXXXXXXXXXXx:domain/es-test-es/*" } ] } 

  1. 我在lambda中有一个简单的代码,看是否可以连接到它。

     public async Task<string> FunctionHandler() { HttpClient client = new HttpClient(); var response = await client.GetStringAsync("https://XXXXX.us-west-2.es.amazonaws.com/firstindex"); return response; } 

这给我403禁止错误。 我什至尝试与es.amazonaws.com建立角色的信任关系。 那也没有用。

如果将ES群集公开,则可以看到响应。

Lambda可以使用此方法吗? 我缺少一些权限吗?

我认为你需要使用签名版本签署您的要求4.请参见

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM