亚马逊 beanstalk ec2 实例当前 git sha

Posted

技术标签:

【中文标题】亚马逊 beanstalk ec2 实例当前 git sha【英文标题】:amazon beanstalk ec2 instance current git sha 【发布时间】:2013-12-23 01:07:04 【问题描述】:

如何获得提交的当前 git sha git aws.push ? 我的 container_commands 需要在以 git sha 作为文件名的服务器上下载一个文件,所以我需要一种方法来确定它。

我一直在浏览/opt/elasticbanstalk/ 并找到了文件 /opt/elasticbeanstalk/deploy/configuration/appsourceurl 其中包含

"url": "https://elasticbeanstalk-us-west-43434324.s3.amazonaws.com/resources%2Fenvironments%2Dg-fea2ffeaf5%2F_runtime%2F_versions%2Fbb-test-eb%2Fgit-6cb3416a7a5a84ce864dd0213236984age4b0b9-2678564154681?Expires=1417813357&AWSAccessKeyId=-----&Signature=-----"

我可以解析这个并提取 git-sha 这个 git sha 与我在本地的 git head sha 不同的问题,我只是 git aws.pushed!为什么?

【问题讨论】:

【参考方案1】:

您可以使用AWS Elastic Beanstalk API Command Line Interface 确认版本标签(又名 git commit):

$ elastic-beanstalk-describe-applications
ApplicationName | ConfigurationTemplates | DateCreated | DateUpdated | Description | Versions
---------------------------------------------------------------------------------------------
angrywhopper |  | 2013-12-05 10:44:21 -0800 | 2013-12-05 10:44:21 -0800 | N/A | git-c069d943a152871a3a43898ce19ea20295b1307d-1386466726575

它应该与您的本地提交匹配:

$ git rev-parse HEAD
c069d943a152871a3a43898ce19ea20295b1307d

另外,在日志中查找归档操作:

2013-12-08 03:51:31,830 [INFO] (10377 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Output from script: Archive:  /opt/elasticbeanstalk/deploy/appsource/source_bundle
c069d943a152871a3a43898ce19ea20295b1307d
   creating: /opt/python/ondeck/app/.ebextensions/
   ...

【讨论】:

嗨,安德烈,谢谢!我在 elastic-beanstalk-describe-applications 中找不到命令。我需要以某种方式进行设置吗? 嗨!是的,您需要进行设置:docs.aws.amazon.com/elasticbeanstalk/latest/dg/usingCLI.html 如果我进入 amazon beanstalk 在线系统并选择以前的 git sha 进行部署,这不会给我错误的 sha(即最新的而不是我要求部署的那个)吗? @user391986 这对我来说似乎违反直觉。如果您选择另一个提交进行部署,则应在部署日志中报告该提交。你有不同的看法吗?我将在今天晚些时候尝试运行该场景。

以上是关于亚马逊 beanstalk ec2 实例当前 git sha的主要内容,如果未能解决你的问题,请参考以下文章

一个 ec2 实例中的多个弹性 beanstalk 环境

在 BeanStalk 中运行 PHP 应用程序与手动 EC2 实例

Elastic Beanstalk 终止我的 EC2 实例

AWS - 配置从 Beanstalk 应用程序对 EC2 实例的访问

如何查看哪些 EC2 实例与我的 Elastic Beanstalk 应用程序相关联?

找出与 Elastic Beanstalk 应用程序关联的 EC2 实例?