0

最近、.NET Core 1.0を使用したAWS Serverless Architectureに入っています。私のアプリケーションでは、それを維持するためにElasticsearchを独自のマシンで使用しています。私がしようとしているのは、AWS LambdaによってプロキシされているAWS API GatewayのAWS Elasticsearch Serviceを使用することです。 (私はこれを正しくタイプしたと信じています)AWS Lambda + API Gateway + AWS Elasticsearchタイムアウトが発生しました

私のコードがElasticsearchドメインにアクセスすると、タイムアウトエラーが発生します。現時点では、私のElasticsearchドメインは誰でも情報にアクセスできるように広く開いています。 API GatewayとLamdaの機能だけをロックしたいと思います。

私は、ポリシーと役割をうまく使いこなそうとしました。誰かが私がやろうとしていることをやろうとしたことがありますか?もしそうなら、どのようにそれを接続することができましたか?それとも良い方法がありますか?

+0

1)同じ地域(または異なる地域)のすべてのリソース? 2)リソースには適切なポリシーが添付されていますか? 3)あなたのリクエストはすぐに処理でき、コードの問題ではないと確信していますか?ほとんどのタイムアウトの問題は、これらを中心に回ります – kosa

+0

1)私は地域を見つけることができるかどうか確認しました。私はElasticsearchやAPI Gatewayの地域を見つけることができません。ラムダとAPIゲートウェイを展開するプロセスは、Amazon AWS Toolkit for Visual Studioから実行されたので、同じ地域にいることを願っています。 2)私はポリシーについてよく分かりません。私はそれが私が問題を持っているかもしれないところだと思う。これについての練習はどうすべきですか。これらのサービスについて正しい方針を立てるにはどうすればいいですか? 3)私のコードでは単体テストを実行し、ローカル開発環境からAWS Elasticsearchには検索要求に約1秒かかります。 – sroye98

+0

ElasticSearchドメインにアクセスする方法については、ElasticSearchの[いい例](https://github.com/awslabs/amazon-elasticsearch-lambda-samples/blob/master/src/s3_lambda_es.js)のように見えます。ラムダ関数。詳細は、[このドキュメント](http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-aws-integrations.html)を参照してください。 –

答えて

0

単純な解決策は、あなたのサービスのすべてをからVPCの中に置くことです。彼らは現在(あなたのIOコールがタイムアウトになるのと同じではないと信じています)。

ここで私の答えは、AWS LambdaのVPCに関する素晴らしい背景と、外部IOコールがタイムアウトする理由を説明します。

AWS lambda invoke not calling another lambda function - Node.js

注:答えはNodeJSとは関係ありません。

関連する問題