我剛剛開始學習terraform,並試圖設置一個彈性搜索集羣,其前面有一個API網關。我已成功構建服務,以便構建彈性搜索集羣,並通過輸出變量將輸出端點傳遞到API網關以獲取集成請求。Terraform服務之間的循環依賴
在我最初的試驗中,我使用aws_elasticsearch_domain.my_name.access_policies
的廣泛開放訪問來測試我的模板代碼。這對測試的目的很好,但對於真實世界的使用,我想在aws_elasticsearch_domain.my_name.access_policies
中使用API網關的ARN。這似乎是有問題的,因爲aws_api_gateway_integration.my_name.uri
需要aws_elasticsearch_domain.my_name.endpoint
來設置,但aws_elasticsearch_domain.my_name.access_policies
需要aws_api_gateway_deployment.my_name.execution_arn
。
我猜這是相當普遍的,但我不知道如何通過輸出或變量來實現這一點。
感謝您的任何幫助。
感謝Monil。這可能會起作用,但我遇到了一個不同的問題,因爲AWS不會讓您有一個安全策略,允許您的API網關直接與Elastic Search進行對話而無需向世界開放。他們的解決方案是代理它或者在中間使用Lambda,這兩者都不是理想的,但在AWS允許進行直接安全通信之前我沒有太多的工作要做。 – earthtrip
啊是的。我也不喜歡這個要求。但是,使用Lambda可以將您的資源置於VPC之後,並且只需將lambda與VPC交談即可。這是鏈接,如果它有幫助 https://aws.amazon.com/blogs/compute/using-api-gateway-with-vpc-endpoints-via-aws-lambda/ –
感謝Monil。我現在在中間有一個Lambda,我只是希望我不必這樣做,因爲它在大多數呼叫中添加了足夠多的延遲> 100ms,因爲它們沒有做任何其他事情,因此我可以繞過AWS中奇怪的安全限制。但現在它必須要做,我希望亞馬遜能夠爲未來增加與DynamoDB等產品相同的安全模型,以便我可以直接返回到API網關 - > ElasticSearch。不過謝謝你! – earthtrip