在 Elastic Beanstalk 中提交 .elasticbeanstalk/config.yml
Commit .elasticbeanstalk/config.yml in Elastic Beanstalk
在使用 eb deploy
的项目的 git 存储库中提交 .elasticbeanstalk/config.yml
是一种好方法吗?
我们想使用 CI 进行部署,因此我们无法使用交互式 eb init
。
我们现在正在考虑的是在 config.yml(如果可能的话)中定义我们的 dev、uat 和 prod,并使用 eb deploy 指向该环境。
我们看到我们可以在 ebcli 版本 2 中使用所有必要的参数执行 eb init
但在版本 3 中就不行了吗?所以好像方法变了?
有人可以解释如何在没有交互的情况下为多个环境部署 EB 吗?
EB CLI 实际上是为了在工作站上使用。我认为您最好使用 AWS CLI 编写 CI 脚本。
使用 eb deploy
的部署会将您的代码存档在 S3(或 CodeCommit)中,创建新的应用程序版本,然后使用新版本标签更新环境。 AWS CLI 命令支持所有这些操作。
或者,您可以使用 boto3 在 Python 中编写自己的部署脚本。这也是一个简单的选择。 EB CLI 基本上就是这样。
- We want to deploy using our CI and so we can not use the interactive
eb init
您可以按如下方式抑制交互模式:
eb init --platform <platform-name> --region <region-name> <application-name>
- Is it a good approach to commit the .elasticbeanstalk/config.yml inside the git repo of a project which uses eb deploy?
- Can someone explain how to deploy EB for multiple environments, without interaction?
根据设计,EBCLI 避免提交 .elasticbeanstalk/
目录,因为它可能包含特定于开发人员的信息,当提交到 VC 时可能会造成混淆。所以,最好避免使用 VC。您可以自由地将其提交给版本控制。确保此处没有敏感信息。日志和保存的配置通常存储在 .elasticbeanstalk/
.
- 您可以将
.elasticbeanstalk/config.yml
文件的相关部分复制到根级文件中,CI 可以从中读取要使用的环境名称等信息。
- 在本地,您可以创建一个预提交 Git 挂钩,它将默认环境名称从
.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
(您可以通过执行 eb deploy $BEANSTALK_ENVIRONMENT_NAME
来组合 3.3. 和 3.4.;我只是想演示 eb use
的用法)
在使用 eb deploy
的项目的 git 存储库中提交 .elasticbeanstalk/config.yml
是一种好方法吗?
我们想使用 CI 进行部署,因此我们无法使用交互式 eb init
。
我们现在正在考虑的是在 config.yml(如果可能的话)中定义我们的 dev、uat 和 prod,并使用 eb deploy 指向该环境。
我们看到我们可以在 ebcli 版本 2 中使用所有必要的参数执行 eb init
但在版本 3 中就不行了吗?所以好像方法变了?
有人可以解释如何在没有交互的情况下为多个环境部署 EB 吗?
EB CLI 实际上是为了在工作站上使用。我认为您最好使用 AWS CLI 编写 CI 脚本。
使用 eb deploy
的部署会将您的代码存档在 S3(或 CodeCommit)中,创建新的应用程序版本,然后使用新版本标签更新环境。 AWS CLI 命令支持所有这些操作。
或者,您可以使用 boto3 在 Python 中编写自己的部署脚本。这也是一个简单的选择。 EB CLI 基本上就是这样。
- We want to deploy using our CI and so we can not use the interactive
eb init
您可以按如下方式抑制交互模式:
eb init --platform <platform-name> --region <region-name> <application-name>
- Is it a good approach to commit the .elasticbeanstalk/config.yml inside the git repo of a project which uses eb deploy?
- Can someone explain how to deploy EB for multiple environments, without interaction?
根据设计,EBCLI 避免提交 .elasticbeanstalk/
目录,因为它可能包含特定于开发人员的信息,当提交到 VC 时可能会造成混淆。所以,最好避免使用 VC。您可以自由地将其提交给版本控制。确保此处没有敏感信息。日志和保存的配置通常存储在 .elasticbeanstalk/
.
- 您可以将
.elasticbeanstalk/config.yml
文件的相关部分复制到根级文件中,CI 可以从中读取要使用的环境名称等信息。 - 在本地,您可以创建一个预提交 Git 挂钩,它将默认环境名称从
.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
(您可以通过执行 eb deploy $BEANSTALK_ENVIRONMENT_NAME
来组合 3.3. 和 3.4.;我只是想演示 eb use
的用法)