AWS CodeDeploy:在 Appspec.yml 中移动超过 1 个文件夹深度的文件

AWS CodeDeploy: In Appspec.yml Move Files That Are More Than 1 Folder Deep

在我的 appspec.yml 文件中,我需要部署超过一层的文件。以下示例将仅获取 views 文件夹中的文件,但在 views 文件夹中还有其他 folders/files 我需要的文件。

version: 0.0
os: linux
files:
  - source: /views
    destination: /var/www/views

这再次为我提供了 /views 中的所有文件,但我需要 /views 文件夹中的文件夹。

我试过在文件夹视图后添加另一个条目,但这不起作用。它会给出错误 "No such file or directory".

解决方法:将应用程序文件夹压缩到源构建中,然后在部署时解压缩。

buildspec.yml

version: 0.2
phases:
  post_build:
    commands:
      - echo Entered the post_build phase...
      - zip -r site.zip ./*
      - echo Build completed on `date`
artifacts:
  files:
    - appspec.yml
    - site.zip
    - DeployScripts/*

appspec.yml

version: 0.0
os: linux
files:
  - source: site.zip
    destination: /var/www/ecommercepricing
hooks:
  AfterInstall:
    - location: DeployScripts/UnzipSite.sh
      timeout: 400

DeployScripts/UnzipSite.sh

#!/bin/bash

echo Starting unzip
apt-get install -y unzip
unzip -o /var/www/ecommercepricing/site -d /var/www/ecommercepricing
echo Finishing unzip