在网络级的AWS和本地堆栈之间切换

时间:2018-09-10 15:59:09

标签: java node.js amazon-web-services amazon-sqs atlassian-localstack

有人可以告诉我是否有一些对AWS和localstack env之间切换有最小影响的解决方案吗?可能是无服务器本地堆栈吗?

我有一系列的node.js- java-ee-和spring-boot服务,它们被部署为docker-containers(AWS ecs),并通过AWS sqs和其他AWS服务相互连接。

我想象使用localstack就像来自localstack.cloud的图片,我将使用localstack env切换一个真正的AWS env,而无需更改应用程序代码,甚至更好:docker-container。下面的模式鼓励我,它实际上可能是如此简单: enter image description here

我只是更改docker-compose-file中的某些选项,或者像操纵一个/ etc / hosts文件一样,在其中我用localhost:3456替换了一组“真实的” AWS-URL。就是这样。

没有这样的东西吗?我真的必须更改每个微服务吗?

当我开始更深入地潜水时,我会越来越困惑:

  • 大多数教程从不描述应用程序级别,而是显示一些带有“ aws --endpoint-url ...”的调用,这很好,但是我想我的node-service或java-service不会调用aws shell命令,对吧?

  • 在应用程序级别,这意味着我必须更改不同环境的代码,用java中的配置文件替换bean并导入不同的代码,不是吗? 对于Java,这意味着: .withEndpointConfiguration(new EndpointConfiguration(“ http://localhost:4575”,“ eu-west-1”) 对于node.js-module sqs-consumer,我看到了类似的解决方案...

    这些URL更改本可以在更抽象的级别进行,不是吗?

  • https://github.com/temyers/serverless-localstack听起来像上面想象的解决方案,但是似乎并没有太大变化,并且存在大量的WIP警告。有任何经验吗?

再说一遍-有人可以告诉我是否有一些简单的,影响最小的解决方案,例如某种“重定向”在AWS和本地堆栈环境之间切换?

非常感谢!

1 个答案:

答案 0 :(得分:0)

1 1/2年后,我想我知道了答案。它是“ kubernetes和minikube”,而不是“ AWS和localstack”。

有一些例外规定:无论是将其部署在本地minikube还是某些远程云集群上,“一个节点即一个节点即一个节点”。

在开发过程中,我在本地minikube上执行e2e测试,而Jenkins在某些临时测试集群上执行相同的e2e测试,您甚至可以在生产集群上远程运行相同的测试-全部由相同的“ Kubernetes客户端”。