1

有人可以告诉我是否有一些影响最小的解决方案可以在 AWS 和 localstack env 之间切换?可能是 serverless-localstack 吗?

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

我想象使用 localstack 就像来自 localstack.cloud 的图片,我将使用 localstack env 切换一个真正的 AWS 环境,而无需更改应用程序代码,甚至更好:docker-container。下面的架构鼓励我,它可能真的就这么简单: 在此处输入图像描述

我只想更改 docker-compose-file 中的一些选项,或者像操作 /etc/hosts 文件一样,将一组“真实”AWS-URL 替换为 localhost:3456。就是这样。

难道没有这样的事情吗?我真的必须改变每一个微服务吗?

随着我开始深入研究,我越来越困惑:

  • 大多数教程从不描述应用程序级别,而是使用“aws --endpoint-url ...”显示一些调用,这很好,但我想,我的节点或 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 和 localstack env 之间切换,比如某种“重定向”?

提前非常感谢!

4

1 回答 1

0

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

除了一些小例外,规则是:“节点就是节点”,无论您将其部署在本地 minikube 还是某个远程云集群上。

在开发过程中,我在本地 minikube 上执行 e2e-tests,而 Jenkins 在一些临时测试集群上执行相同的 e2e-tests,您甚至可以在生产集群上远程运行相同的测试——所有这些都由同一个“Kubernetes”完成客户”。

于 2020-02-11T10:08:53.053 回答