在post-deploy hook中读取修订字符串

时间:2016-01-18 09:07:42

标签: amazon-web-services elastic-beanstalk revision

我虽然这很容易,但我无法找到从EBS上的post deploy钩子获取修订字符串的方法。用例很简单:我想警告部署的滚动条。

这是当前的脚本:

# Rollbar deploy notifier
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/90_notify_rollbar.sh":
    mode: "000755"
    content: |
      #!/bin/bash
      . /opt/elasticbeanstalk/support/envvars

      LOCAL_USERNAME=`whoami`
      REVISION=`date +%Y-%m-%d:%H:%M:%S`

      curl https://api.rollbar.com/api/1/deploy/ \
        -F access_token=$ROLLBAR_KEY \
        -F environment=$RAILS_ENV \
        -F revision=$REVISION \
        -F local_username=$LOCAL_USERNAME

到目前为止,我使用当前日期作为修订号,但这并非真正有用。我尝试使用/opt/elasticbeanstalk/bin/get-config,但我在environmentcontainer部分找不到任何相关内容,也无法从meta中读取任何内容。另外,我找不到关于那些的文档,所以...

理想情况下,我还想要部署者的用户名,而不是本地计算机上的用户名,但这将是锦上添花。

谢谢你的时间!

2 个答案:

答案 0 :(得分:0)

您可以更新弹性beanstalk实例配置文件角色(aws-elasticbeanstalk-ec2-role)以允许它调用Elastic Beanstalk API。在post deploy hook中,您可以使用aws cli或任何AWS开发工具包调用具有当前环境名称的DescribeEnvironments。 如果您对此有任何疑问或者这对您不起作用,请与我们联系。

答案 1 :(得分:0)

我也在寻找API的简单替代方案。现在我用bash

eb deploy && curl https://api.rollbar.com/api/1/deploy/ -F access_token=xxx -F environment=production -F revision=`git rev-parse --verify HEAD` -F rollbar_username=xxx

xxx替换为您的令牌和用户名