Den*_*boy 7 amazon-web-services amazon-elastic-beanstalk ebcli
提交.elasticbeanstalk/config.yml使用的项目的git repo内部的好方法eb deploy吗?
我们要使用CI进行部署,因此不能使用交互式eb init。我们现在正在考虑的是在config.yml中定义我们的dev,uat和prod(如果可能),并使用eb deploy指向该环境。
我们看到我们可以eb init在ebcli版本2中使用所有必需的参数执行,但是在版本3中不再可用?看来方法改变了吗?
有人可以解释如何在没有交互的情况下为多个环境部署EB吗?
- 我们想使用 CI 进行部署,因此无法使用交互式
eb init
您可以按如下方式抑制交互模式:
eb init --platform <platform-name> --region <region-name> <application-name>
- 在使用 eb deploy 的项目的 git 存储库中提交 .elasticbeanstalk/config.yml 是一个好方法吗?
- 有人可以解释如何在没有交互的情况下为多个环境部署 EB 吗?
根据设计,EBCLI 避免提交.elasticbeanstalk/目录,因为它可能包含开发人员特定的信息,这些信息在提交给 VC 时可能会导致混乱。所以,最好避免VC。您可以自由地将其提交给版本控制。确保此处没有敏感信息。日志和保存的配置通常存储在.elasticbeanstalk/.
.elasticbeanstalk/config.yml到根级文件中,CI 可以从中读取要使用的环境名称等信息。.elasticbeanstalk/config.yml到根级文件中——我们称之为.environment_config.sh. 它可以是一个简单的声明export BEANSTALK_ENVIRONMENT_NAME=<environment name from .elasticbeanstalk/config.yml>在 CI 服务器上:
3.1. 确保 PWD 为git init-ed。像 Jenkins 这样的系统通常都有git init-ed必要的分支,因此 CI 可以简单地source .environment_config.sh在此时加载环境名称来部署。
3.2.eb init --platform <platform-name> --region <region-name> <application-name>
3.3.eb use $BEANSTALK_ENVIRONMENT_NAME
3.4.eb deploy
(您可以通过执行来组合 3.3. 和 3.4.;eb deploy $BEANSTALK_ENVIRONMENT_NAME我只是想演示 的用法eb use)
EB CLI 确实旨在从工作站使用。我认为您最好使用 AWS CLI 编写 CI 脚本。
部署eb deploy将在 S3(或 CodeCommit)中存档您的代码,创建新的应用程序版本,然后使用新版本标签更新环境。AWS CLI 命令支持所有这些操作。
或者,您可以使用 boto3 在 Python 中编写自己的部署脚本。这也是一个简单的选择。这基本上就是 EB CLI 的内容。