10

遵循示例和教程,了解如何使用 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

那么,这里是什么?

4

3 回答 3

3

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

于 2013-01-20T12:55:36.143 回答
0

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

于 2012-08-30T20:28:24.357 回答
0

我不认为这对你有任何影响,特别是。

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

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:

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

于 2012-09-14T06:53:07.890 回答