【问题标题】:AWS Elastic Beanstalk [remote rejected] (hook declined)AWS Elastic Beanstalk [远程拒绝](挂钩被拒绝)
【发布时间】:2012-08-25 03:18:11
【问题描述】:

以下示例和教程可帮助我使用 AWS Elastic Beanstalk 启动并运行 PHP 应用程序并在我尝试推送时遇到错误:

git aws.push
remote: 
remote: error: Internal Error
remote: 
To https://MYKEY:20120830T1133112489ce23684fb0061664e8de896cce922cf6d06981add734c00e356828847eb54@git.elasticbeanstalk.us-east-1.amazonaws.com/repos/4d7920466972737420256c6173746963204265616e7374616c6b204170706c69636174696f6e20456e7669726f6e6d656e6463/philsturgeon
 ! [remote rejected] HEAD -> master (hook declined)
error: failed to push some refs to 'https://MYKEY:20120830T1133112489ce23684fb0061664e8de896cce922cf6d06981add734c00e356828847eb54@git.elasticbeanstalk.us-east-1.amazonaws.com/repos/4d7920466972737420256c6173746963204265616e7374616c6b204170706c69636174696f6e20456e7669726f6e6d656e6463/philsturgeon'

这是什么原因?谷歌似乎没有任何想法。我最初认为这是由于我的主机不匹配,因为您第二次运行 aws.config 它不会要求主机,但是在手动更改 .git/config 中的配置后,它仍然给出相同的错误。

[aws "endpoint"]
        us-east-1 = git.elasticbeanstalk.us-east-1.amazonaws.com
        ap-northeast-1 = git.elasticbeanstalk.ap-northeast-1.amazonaws.com
        eu-west-1 = git.elasticbeanstalk.eu-west-1.amazonaws.com
        us-west-1 = git.elasticbeanstalk.us-west-1.amazonaws.com
        us-west-2 = git.elasticbeanstalk.us-west-2.amazonaws.com
[alias "aws"]
        push = !git aws.elasticbeanstalk.push $@
        config = !git aws.elasticbeanstalk.config $@
[aws]
        accesskey = MYKEY
        secretkey = MYSECRET
        region = us-east-1
[aws "elasticbeanstalk"]
        host = git.elasticbeanstalk.us-east-1.amazonaws.com
        application = My First Elastic Beanstalk Application
        environment = philsturgeon

这个配置应该是正确的:

http://d.pr/i/ehwv

那么,这里有什么?

【问题讨论】:

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


    【解决方案1】:

    您可能超出了 Elastic Beanstalk 中 500 个应用程序版本的限制。您需要通过 Elastic Beanstalk 管理控制台的“版本”选项卡下删除旧的应用程序版本。

    【讨论】:

    • 我的第一个应用程序正在努力运行,我绝对没有其他 499 个应用程序。
    • @PhilSturgeon 和其他人由谷歌发送到这里(比如我)。应用程序、环境和应用程序版本之间存在差异。每次你git aws.push你创建一个新的版本,如果你推送很多,它可以很快达到500。一位同事收到了 Phil 看到的错误(在这个问题中),但我收到了 another question 中提到的错误。最好的解决方案就是删除旧版本(假设你的错误实际上并没有什么不同。)
    • 我相信错误是不同的。这个错误是在全新的设置中发生的,每次都始终如一,尝试使该死的东西再次工作之间存在很大的间隔(数小时或数天)。
    【解决方案2】:

    这是在黑暗中拍摄,但我看到的唯一奇怪的是应用程序名称,尝试使用不带空格的名称,而不是“我的第一个 Elastic Beanstalk 应用程序”。

    【讨论】:

      【解决方案3】:

      我认为这与你无关,特别是。

      这里有三个相关的错误消息。最外层的错误是:

      error: failed to push some refs to ...
      

      这意味着,在您的推送操作中,至少有 一个 ref(通常表示“分支”)未能推送。由于您只是尝试在此操作中推送一个分支,这有点多余。

      下一级是 per-ref 错误,“为什么某某 ref 没有推送成功?”,消息是:

       ! [remote rejected] HEAD -> master (hook declined)
      

      所以,遥控器出于某种原因拒绝了它,原因是“挂钩被拒绝”。这意味着,一切进展顺利,但是当服务器端 post-receive 钩子触发以实际确定是否可以更新指向“master”的指针以告诉它使用您刚刚上传的数据时,某事关于钩子说“不,这是好吧!”。钩子只是一个脚本,通常是 shell 脚本或 perl,但实际上它可以是任何可执行文件。它通过返回非零退出状态来表示失败。

      那么,为什么它返回非零退出状态?这部分可能有点难以确定,因为钩子根本没有义务向客户端提供任何解释。如果它愿意,它可以通过在 stderr 上输出它想要的任何内容来通知客户端,这些消息将出现在客户端上,前缀为“remote:”。对我们来说幸运的是,这个特殊的钩子选择了这样做。不幸的是,它产生的实际错误消息是:

      remote:
      remote: error: Internal Error
      remote:
      

      所以实际的错误消息,可能提供一些关于发生了什么的线索,似乎仅仅是“内部错误”,这通常意味着相当于“意外情况:这可能是一个错误,所以我要去现在恐慌并中止”。我认为您需要联系亚马逊支持。

      【讨论】:

        猜你喜欢
        • 2020-07-19
        • 2012-03-21
        • 2013-04-28
        • 2020-03-12
        • 2022-01-22
        • 2021-11-28
        • 2021-07-25
        • 2019-10-16
        • 2015-02-04
        相关资源
        最近更新 更多