0

我正在使用 AWS Elastic Beanstalk 部署系统。这一切都很好。如果我想要一个 UAT 和 PROD 环境,我可以设置 2 个不同的弹性 beanstalk 应用程序,这也可以正常工作。现在我的问题:假设我的应用程序使用 dynamoDB 或 S3 存储桶(EB 部署之外的东西)我如何为 UAT 和 PROD 提供不同版本的这些存储桶?

使用发电机:您有一个发电机数据库实例,而不是每个 EB 部署一个。我的代码将写入“用户”表,但如果只有一个 dynamoDB,如何使用相同的用户表停止 UAT 和 PROD?

与 S3 存储桶相同吗?你理想中想要的是 prod.mybucket.xxx 和 uat.my bucket.xxx

我显然错过了一些东西,你能告诉我什么吗?:)

4

1 回答 1

0

您可以使用Elastic Beanstalk 环境变量(此示例适用于 java,但在其他语言中类似)。使用一个来跟踪环境类型(例如 PARAM1=dev 或 PARAM1=uat),然后使用该前缀命名您的其他资源(存储桶/发电机表)

s3 存储桶-> prod-myapp-bucket / uat-myapp-bucket

在您的代码中,只需在引导程序中获取 param1 并以这种方式调出您的 aws 资源。这就是 beanstalk 如何让您的应用程序知道要连接到哪个数据库(在 Java 中它是 JDBC_CONNECTION_STRING)。

或者

您可以使用 AWS api 查询实际的 Elastic Beanstalk 环境名称以执行类似操作(取决于您使用的语言,它类似于“描述环境”)。

于 2015-02-12T23:57:28.890 回答