通过使用 Elastic Beanstalk 和 Amazon Linux 2,我尝试对部署(代码部署)和配置部署执行相同的挂钩,而不必在两个不同的位置重复我的代码。
根据AWS 文档eb 将在.platform/hooks/prebuild
部署初始步骤中运行钩子,但在.platform/confighooks/prebuild
配置部署的情况下也会运行钩子。
我的文件看起来像这样。
.platform
├── hooks
│ └── prebuild
│ ├── 00_hookname.sh
│ ├── 01_hookname.sh
│ └── 99_basic_auth.sh
└── httpd
└── conf.d
└── elasticbeanstalk
├── directory.conf
├── hardening.conf
└── headers.conf
我正在尝试找到一种方法来让 99_basic_auth.sh 运行部署和进行配置部署,而不必重复该代码。
有什么方法可以实现这个目的吗?
干杯!
答案1
我发现做这样的事情最简单的方法就是从第二个脚本调用第一个脚本。
.platform
├── hooks
│ └── prebuild
│ ├── 00_hookname.sh
│ ├── 01_hookname.sh
│ └── 99_basic_auth.sh
├── confighooks
│ └── prebuild
│ └── 99_basic_auth.sh
└── httpd
└── conf.d
└── elasticbeanstalk
├── directory.conf
├── hardening.conf
└── headers.conf
其中的内容为.platform/confighooks/prebuild/99_basic_auth.sh
:
#!/bin/bash
set -e
/bin/bash "/var/app/current/.platform/hooks/prebuild/99_basic_auth.sh"
答案2
这也可以通过符号链接来完成,与使用脚本调用另一个脚本相比,我更喜欢使用符号链接:
mkdir -p .platform/confighooks/prebuild
ln -sr .platform/hooks/prebuild/99_basic_auth.sh .platform/confighooks/prebuild