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'

これの原因は何ですか?グーグルは何の考えも持っていないようです。2回目に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

おそらく、500 のアプリケーション バージョンの Elastic Beanstalk の制限を超えました。Elastic Beanstalk 管理コンソールの [バージョン] タブで、古いアプリケーション バージョンを削除する必要があります。

于 2013-01-20T12:55:36.143 に答える
0

暗闇の中でのショットですが、私が目にする唯一の奇妙なことは、アプリケーション名です。「My First Elastic Beanstalk Application」の代わりに、文字のスペースを含まないものを試してください。

于 2012-08-30T20:28:24.357 に答える
0

特にあなたの側には何もないと思います。

ここには、関連する 3 つのエラー メッセージがあります。最も外側のエラーは次のとおりです。

error: failed to push some refs to ...

これは、プッシュ操作で、少なくとも1 つの参照 (通常は「ブランチ」を意味する) がプッシュに失敗したことを意味します。この操作では 1 つのブランチのみをプッシュしようとしているため、少し冗長です。

次のレベルは、ref ごとのエラーで、"なぜ、何々の ref が正常にプッシュされなかったのですか?" です。このメッセージは次のとおりです。

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

そのため、リモートは何らかの理由でそれを拒否しました。その理由は「フックが拒否されました」でした。つまり、すべてが順調に進んでいましたが、サーバー側のpost-receiveフックが起動して、「マスター」へのポインターを更新して、アップロードしたばかりのデータを使用するように指示しても問題ないかどうかを実際に判断したとき、フックについて何か「いいえ、これは大丈夫ではありません!」と言いました。フックは単なるスクリプトで、通常はシェル スクリプトまたは perl ですが、実際には任意の実行可能ファイルである可能性があります。ゼロ以外の終了ステータスを返すことで失敗を通知します。

では、なぜゼロ以外の終了ステータスが返されたのでしょうか? フックはクライアントに説明を提供する義務をまったく負わないため、この部分を特定するのは少し難しい場合があります。必要に応じて、必要なものを stderr に出力することでクライアントに通知できます。これらのメッセージは、「remote:」という接頭辞が付けられてクライアント側に表示されます。幸いなことに、この特定のフックはそうすることにしました。残念ながら、実際に生成されたエラー メッセージは次のとおりです。

remote:
remote: error: Internal Error
remote:

そのため、実際のエラー メッセージは、何が起こっているかの手がかりになるかもしれませんが、単なる「内部エラー」のように見えます。これは通常、「予期しない状況: これはおそらくバグです。パニックに陥り、今すぐ中止してください」。Amazonのサポートに連絡する必要があると思います。

于 2012-09-14T06:53:07.890 に答える