首页 > 解决方案 > 如何从 Bitbucket 部署到 AWS 到不同的实例和不同的文件夹?

问题描述

我在 AWS 中有两个实例。一种用于生产,一种用于认证。我使用 CodeDeploy 自动部署。我在 BitBucket 上有两个分支,master 和 homolog。当我在同源部署中提交时,必须转到同源实例,如果我在主部署中进行合并,则必须处于生产阶段。

要将 Bitbucket 自动部署到 AWS,有一系列配置部署详细信息的文件。这些文件之一是 appspec.yml。根据 AWS,只能有一个 appspec.yml 文件。

此基本表单文件具有以下结构:

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html
hooks:
  AfterInstall:
    - location: deploy-scripts/install_dependencies.py
      timeout: 300
      runas: root

问题是对于每个实例我都有一个目标文件夹。

如果我在同源实例上进行部署,目标文件夹应该是var/www/html,而对于生产实例,它应该是var/www/html/test/

我试图这样做:

version: 0.0
os: linux
files:
  - source: /
    destination: deploy-scripts/destination.py
hooks:
  AfterInstall:
    - location: deploy-scripts/install_dependencies.py
      timeout: 300
      runas: root

这就是destination.py:

if os.environ['APPLICATION_NAME'] == 'ahimsa-store-homolog':
    return '/var/www/html/'
elif os.environ['APPLICATION_NAME'] == 'ahimsa-store':
    return '/var/www/html/teste/'

上述选项不起作用。我怎样才能做到这一点?

标签: amazon-web-servicesamazon-s3aws-code-deploybitbucket-pipelinesbitbucket-aws-code-deploy

解决方案


另一种选择是在每个分支中使用不同的 appspec。这会使合并变得更加困难,但它可能会有所帮助。


推荐阅读