【发布时间】:2020-01-05 11:51:48
【问题描述】:
使用 AWS JavaScript 开发工具包更新 ElasticBeanstalk 环境时,我的 .ebextensions/* 被忽略。我正在将应用程序源包作为 .zip 文件上传到 S3,这会触发 Lambda 使用这段代码部署新的应用程序版本:
const elasticbeanstalk = new AWS.ElasticBeanstalk();
exports.handler = async (event) => {
const versionLabel = "myVersionString" + (new Date().toUTCString());
// elasticbeanstalk.createApplicationVersion [...]
elasticbeanstalk.updateEnvironment({
"EnvironmentName": "myEBEnvironment",
"VersionLabel": versionLabel
});
};
在 AWS 管理控制台中上传相同的源包时,我的所有 .ebextensions 都按预期执行。
*.config 文件内部没有什么特别之处。我只是根据环境变量创建一些文件以供以后使用,例如
files:
"/home/ec2-user/prepare_key.sh":
mode: "000777"
content: |
#!/bin/bash
if [ -z ${MY_KEY+x} ]
then
echo "MY_KEY is not set. skip."
else
echo "prepare MY_KEY ..."
echo $MY_KEY > /home/ec2-user/key
fi
container_commands:
set_up:
command: "/home/ec2-user/prepare_key.sh"
因此,不会生成(或更新)文件 /home/ec2-user/prepare_key.sh,并且不会在 Lambda 部署期间执行命令 set_up。
我仔细检查了源包。我所有的.ebextensions/*.config 文件都在那里。我的项目目录中没有.ebignore 文件。
【问题讨论】:
标签: devops amazon-elastic-beanstalk ebextensions