Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何将Bitbucket部署到AWS的不同实例和文件夹?_Amazon Web Services_Amazon S3_Aws Code Deploy_Bitbucket Pipelines_Bitbucket Aws Code Deploy - Fatal编程技术网

Amazon web services 如何将Bitbucket部署到AWS的不同实例和文件夹?

Amazon web services 如何将Bitbucket部署到AWS的不同实例和文件夹?,amazon-web-services,amazon-s3,aws-code-deploy,bitbucket-pipelines,bitbucket-aws-code-deploy,Amazon Web Services,Amazon S3,Aws Code Deploy,Bitbucket Pipelines,Bitbucket Aws Code Deploy,我在AWS中有两个实例。一个用于生产,一个用于认证。我使用CodeDeploy自动部署。我在BitBucket上有两个分支,主分支和同调分支。当我在同源部署中提交时,必须转到同源实例,如果我在主部署中进行合并,则必须在生产阶段进行部署 要将Bitbucket自动部署到AWS,有一系列配置部署详细信息的文件。其中一个文件是appspec.yml。根据AWS,只有appspec.yml文件才可能存在 此基本表单文件具有以下结构: version: 0.0 os: linux files: - s

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

要将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
这就是目的地。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/'

上述选项不起作用。如何执行此操作?

appspec.yml的文件部分不运行脚本

  • 使用文件部分将所需文件移动到临时文件夹中
  • 创建一个脚本,根据需要将这些文件从临时位置移动到所需的目标。正如您所建议的,例如使用
    os.environ['APPLICATION\u NAME']
  • 确保脚本在移动文件后设置了正确的文件权限
  • 将该脚本包括在AfterInstall部分中,以便该脚本可以在您选择的临时位置找到“已安装”的新文件。另外,请确保在安装依赖项之前完成
另一种选择是在每个分支中使用不同的appspec。这将使合并更加困难,但可能会有所帮助