2017-10-21 14 views
0

私はちょうどterraformの学習を開始しています。その前にAPIゲートウェイを持つ弾性検索クラスタをセットアップしようとしています。私は、Elastic Searchクラスタが構築され、出力エンドポイントが出力変数を介して統合リクエストのAPIゲートウェイに渡されるように、サービスを構築しました。サービス間のTerraformの循環依存性

私の初期の試験では、テンプレートコードをテストするためにaws_elasticsearch_domain.my_name.access_policiesで広くオープンなアクセスを使用していました。これはテスト目的でうまくいきましたが、実際の世界ではaws_elasticsearch_domain.my_name.access_policiesのAPIゲートウェイのARNを使用したいと考えています。これは、aws_api_gateway_integration.my_name.uriaws_elasticsearch_domain.my_name.access_policiesをセットアップするためにaws_elasticsearch_domain.my_name.endpointを必要とするため、aws_api_gateway_deployment.my_name.execution_arnを必要とするため、一見問題があります。

私はこれがかなり一般的だと思っていますが、出力や変数を使ってこれを達成する方法を理解できません。

ありがとうございました。

答えて

0

これを回避する方法の1つは、エラスティックサーチのroute53エンドポイントを作成し、APIゲートウェイのエラスティックサーチのroute53エンドポイントを循環依存性を破ることによってハードコーディングすることです。

+0

ありがとうございました。これはうまくいくかもしれませんが、私は別の問題に遭遇しました。AWSは、あなたのAPIゲートウェイが世界に公開せずに直接Elastic Searchと話すことを許可するセキュリティポリシーを持つことができないという点で異なっています。彼らの解決策は、AWSが直接セキュアな通信を可能にするまでは、それをプロキシするか、どちらか一方が理想的ではないラムダを使用することです。 – earthtrip

+0

ああ、そうです。私はその要件も嫌いです。しかし、ラムダを使用すると、リソースをVPCの背後に置くことができ、ラムダがVPCと話すだけです。助けがあればここにリンクがあります https://aws.amazon.com/blogs/compute/using-api-gateway-with-vpc-endpoints-via-aws-lambda/ –

+0

ありがとうございました。真ん中にラムダがありました。AWSの奇妙なセキュリティ制限を克服してくれることは、他に何もないことをほとんどの呼び出しで100msを超えるレイテンシを追加して以来、私はそれほど必要ではないと思っています。しかし今のところそれが必要で、私はAmazonがDynamoDBのようなものと同じセキュリティモデルを将来追加することを期待しているので、API Gateway-> ElasticSearchに直接戻ることができます。もう一度ありがとう! – earthtrip