部署版本的Amazon ElasticBeanstalk容器是否有环境变量?

Pet*_*Fox 5 git environment-variables amazon-ec2 amazon-web-services amazon-elastic-beanstalk

我正在尝试创建部署挂钩,因此当我将PHP应用程序部署到EB时,它将发送应用程序代码版本或git提交点,甚至可能是git标记(如果存在于我的分析服务中).

如果在实例上设置任何环境变量以说明它们正在运行的是什么版本,或者它是否甚至将任何git数据复制到已作为EB设置的一部分部署的实例,我就会徘徊?

kuk*_*ido 2

AFAIK,当 Elastic Beanstalk 将您的应用程序部署到云时,它会使用git archive命令创建一个存档。生成的存档文件没有任何存储库元数据。尽管 Elastic Beanstalk 使用您的提交 sha1 作为版本名称的一部分,但如果您使用自己的版本控制架构,sha1 可能不可用。

作为替代方案,您可以创建 shell 脚本来将提交信息发送到分析服务。使用 git alias,您可以执行脚本并aws.push作为一个命令。

# .git/config

[alias "custom"]
        push = !git aws.push $1 && ./custom.sh


# custom.sh

commit=$(git rev-parse HEAD)
echo 'send info to analytics service for commit: ' $commit
Run Code Online (Sandbox Code Playgroud)

然后执行为$ git custom.push

在上面的示例中,即使出现aws.push错误,custom.sh 也会执行,因此如果您需要更可靠的解决方案,您可能希望将其与.git/AWSDevTools/aws.elasticbeanstalk.push脚本本身更紧密地集成。

希望能帮助到你。