2012-08-30 61 views
10

下面的例子和用於獲取PHP應用程序啓動和AWS彈性青苗運行,並且收到錯誤的教程,當我試圖推動:AWS彈性魔豆[遠程拒絕(鉤下降)

git aws.push 
remote: 
remote: error: Internal Error 
remote: 
To https://MYKEY:20120830T11331124[email protected]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:20120830T11331124[email protected]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 [email protected] 
     config = !git aws.elasticbeanstalk.config [email protected] 
[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

那麼,是什麼在這裏?

回答

0

這是一個黑暗中的鏡頭,但唯一奇怪的是我看到的應用程序名稱,嘗試沒有字符空間而不是「我的第一彈性Beanstalk應用程序」的空間。

0

我不認爲這是你的任何事情,特別是。

這裏有三條相關的錯誤消息。最外層的錯誤是:

error: failed to push some refs to ... 

這意味着,在你按動操作,至少一個 REF(通常意爲「分支」)未能推進。由於您只是試圖在此操作中推送一個分支,這有點多餘。

中的下一個級別是每個裁判的錯誤,「爲什麼某某所以裁判沒有成功推?」,此消息是:

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

因此,遠程拒絕它某種原因,原因是「鉤拒絕」。這意味着什麼,一切都很順利,但當服務器端post-receive鉤子開啓以確定是否可以更新指向「主」的指針以告訴它使用剛剛上傳的數據時,有關鉤說:「不,這是不是沒關係!」。鉤子只是一個腳本,通常是shell腳本或perl,但它可以是任何可執行文件,真的。它通過返回非零退出狀態來表示失敗。

那麼,爲什麼它返回非零退出狀態?這部分可能有點棘手,因爲鉤子沒有義務向客戶提供任何解釋。如果它希望的話,它可以通過在stderr上輸出任何想要的信息來通知客戶端,並且這些消息將出現在客戶端,以「remote:」爲前綴。對我們來說幸運的是,這個特定的鉤子已經選擇了這樣做。不幸的是,實際的錯誤消息就產生了:

remote: 
remote: error: Internal Error 
remote: 

所以實際的錯誤信息,這是怎麼回事這可能會提供一些線索,似乎僅僅是「內部錯誤」,這通常意味着相當於「意想不到的情況:這可能是一個錯誤,所以我現在會恐慌並放棄。」我想你需要聯繫亞馬遜的支持。

3

您可能超過了500個應用程序版本的Elastic Beanstalk限制。您需要通過Elastic Beanstalk管理控制檯在「版本」選項卡下刪除舊的應用程序版本。

+0

我很努力得到我的第一個應用程序,我絕對沒有499其他應用程序。 –

+0

@PhilSturgeon和其他人通過谷歌發送(像我一樣)。應用程序,環境和應用程序版本之間存在差異。每次你用'git aws.push'你創建一個新的**版本**,如果你推動很多,它可以很快達到500。一位同事收到了菲爾看到的錯誤(在這個問題中),但我收到了另一個問題中提到的錯誤(http://stackoverflow.com/questions/9589531/how-to-avoid-a-toomanyapplicationversion-exception-on -aws彈性-豆莖)。最好的解決方案是刪除舊版本(假設你的錯誤實際上並不是什麼不同)。 –

+0

我相信錯誤是不同的。這個錯誤發生在一個全新的環境中,每次都是一致的,每次嘗試使這個該死的事情再次發揮作用之間有很大的差距(數小時或數天)。 –