有人可以告诉我是否有一些在AWS和本地堆栈环境之间切换的最小影响解决方案?可能是无服务器本地堆栈吗?
我有一系列的node.js- java-ee-和spring-boot服务,它们被部署为docker-container(AWS ecs),并通过AWS sqs和其他AWS服务相互连接。
我以为使用localstack就像是来自localstack.cloud的图片,我将使用真正的AWS env和localstack env切换,而无需更改应用程序代码,甚至更好:docker-container。下面的模式鼓励我,它实际上可能是如此简单:
我只需要更改docker-compose-file中的某些选项,或者像操作/ etc / hosts文件一样用localhost:3456替换一组“真实” AWS-URL。就是这样。
没有这样的东西吗?我真的必须更改每个微服务吗?
随着我开始更深入地研究,我越来越困惑:
大多数教程从不描述应用程序级别,而是显示一些带有“ aws --endpoint-url ...”的调用,这很好,但是我想我的节点服务或Java服务不会调用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 1/2年后,我想我知道了答案。它是“ kubernetes和minikube”,而不是“ AWS和localstack”。
除少数例外情况外,有一条规则:“将节点部署为节点即节点”,无论是将其部署在本地微型kube还是远程云集群上。
在开发过程中,我在本地微型库上执行e2e测试,而Jenkins在某些临时测试集群上执行相同的e2e测试,您甚至可以在生产集群上远程运行相同的测试-所有这些都由相同的“ Kubernetes”完成客户”。