如何在正在运行的应用程序上将弹性 beantalk 经典负载均衡器转换为应用程序负载均衡器?

sak*_*ken 8 amazon-elastic-beanstalk

我有几个 EB 应用程序,我想将它们从经典转换为应用程序负载平衡器。在文档中,似乎默认方法是使用适当的负载均衡器从头开始创建新环境。考虑到我有很多环境变量和几个环境,我宁愿不必重建应用程序。有没有办法在已经运行的应用程序上切换负载平衡器?

sak*_*ken 8

除了在创建时,无法设置负载均衡器类型。您可以使用 elastic beanstalk cli 和 aws cli 来克隆具有相同配置和版本的应用程序。要运行已部署的应用程序版本:

aws elasticbeanstalk describe-environments --application-name ${APPLICATION_NAME} --environment-names ${SRC_ENV_NAME} | jq -r '.Environments | .[] |  .VersionLabel'
Run Code Online (Sandbox Code Playgroud)

jq 管道过滤掉 json blob 的其余部分。

之后,您可以使用以下命令保存当前应用程序的配置:

eb config save $SRC_ENV_NAME --cfg "${SRC_ENV_NAME}_save"
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令创建应用程序克隆:

eb create $NEW_ENV_NAME --elb-type application --cfg "${SRC_ENV_NAME}_save" --version $APP_VERSION
Run Code Online (Sandbox Code Playgroud)

其中 APP_VERSION 是第一步中提取的字符串。