2017-10-21 1 views
0

Ich fange gerade an, Terraform zu lernen und versuche, einen elastischen Suchcluster mit einem API-Zugang davor zu gründen. Ich habe den Dienst erfolgreich so erstellt, dass der Elastic Search-Cluster erstellt und der Ausgabeendpunkt über die Ausgabevariablen an das API-Gateway für die Integrationsanforderung übergeben wird.Terraform kreisförmige Abhängigkeit zwischen Diensten

In meinen ersten Versuchen verwendete ich weit offenen Zugriff in der aws_elasticsearch_domain.my_name.access_policies zum Testen meines Vorlagencodes. Dies funktionierte gut für Testzwecke, aber für den realen Gebrauch möchte ich den ARN des API-Gateways in der aws_elasticsearch_domain.my_name.access_policies verwenden. Dies ist anscheinend problematisch, da die aws_api_gateway_integration.my_name.uri die aws_elasticsearch_domain.my_name.endpoint benötigt, um die aws_api_gateway_deployment.my_name.execution_arn einzurichten.

Ich denke, das ist ziemlich häufig, aber ich kann nicht herausfinden, wie dies durch Ausgänge oder Variablen erreicht werden kann.

Danke für jede Hilfe.

Antwort

0

Eine Möglichkeit, dies zu umgehen, ist die Erstellung eines route53-Endpunkts für Ihre elastische Suche und die harte Codierung des route53-Endpunkts der elastischen Suche im API-Gateway, indem die zirkuläre Abhängigkeit aufgehoben wird.

+0

Danke Monil. Dies könnte funktionieren, aber ich bin auf ein anderes Problem gestoßen, da AWS Ihnen keine Sicherheitsrichtlinie zuweist, die es Ihrem API-Gateway ermöglicht, direkt mit Elastic Search zu sprechen, ohne es für die Welt zugänglich zu machen. Ihre Lösung besteht darin, sie entweder zu vertreten oder ein Lambda in einer Mitte zu verwenden, die beide nicht ideal sind, aber es gibt nicht viel, was ich tun kann, bis AWS eine direkte sichere Kommunikation ermöglicht. – earthtrip

+0

Ah ja. Ich mag diese Anforderung auch nicht. Mit Lambda können Sie Ihre Ressourcen jedoch hinter VPC stellen und Lambda einfach mit der VPC sprechen lassen. Hier ist der Link, wenn es hilft https://aws.amazon.com/blogs/compute/using-api-gateway-with-vpc-endpoints-via-aws-lambda/ –

+0

Danke Monil. Ich habe jetzt ein Lambda in der Mitte, ich wünschte nur, dass ich es nicht tun müsste, da es in den meisten Aufrufen genug Latenz> 100ms hinzufügt, um wirklich nichts anderes zu machen, als mich die Sicherheitsbeschränkungen in AWS zu umgehen. Aber für jetzt muss es tun und ich bin hoffnungsvoll Amazon wird die gleichen Sicherheitsmodelle hinzufügen, die sie für Dinge wie DynamoDB zum Beispiel in der Zukunft haben, so dass ich direkt zu API Gateway-> ElasticSearch zurückgehen kann. Danke nochmal! – earthtrip

Verwandte Themen