AWS にデプロイするには、次の 2 つの方法があります。
基本的に S3 から参照される .zip ファイルである API バックエンド。デプロイ時に、インスタンスはいくつかのカスタム スクリプトを解凍して実行します (AMI から、または推奨される方法であるカスタム構成ファイルを介してオーバーライドできます)。AWS Elastic Beanstalk 環境で新しいバージョンを作成してデプロイするには、s3 へのアップロード、アプリケーション バージョンの作成、および UpdateEnvironment の 3 つの呼び出しが必要であることに注意してください。
次のように機能する git エンドポイント:
- AWS Elastic Beanstalk DevToolsをインストールし、git リポジトリでセットアップ スクリプトを実行します。
- 実行されると、セットアップ スクリプトは、特に
.git/config
サポートするためにパッチを適用します(これは文書化されていません)。git aws.push
git aws.remote
git aws.push
キーを取得し、カスタム URL (git aws.remote) を作成し、git push -f master を実行するだけです
- AWS がこれを受け取ると (url は基本的
<api>/<app>/<commitid>(/<envname>)
に .s3 .zip ファイルを (コミットの内容から) 作成し、アプリケーション バージョンが存在<app>
する<commitid>
場合<envname>
は、UpdateEnvironment 呼び出しも発行します。AWS ID はハッシュされ、 URL はすべての AWS 呼び出しと同じですが、ユーザー名/パスワード認証トークンとして送信されます。
(完全なリファレンス ドキュメント)
数か月前にこれを Maven プラグインとして移植しました。このファイルは、それがプレーンな Java でどのように行われるかを示しています。実際には多くのコードをカバーしています (実際にはカスタム git リポジトリを構築するため - jgit を使用してハッシュを計算し、そこにプッシュします)。
私は、バックポートを ant タスクとして行うことを強く検討しています。または、pom.xml
ファイルが存在しなくても機能するようにすることで、ユーザーは Maven のみを使用してデプロイを行います。
歴史的には、最初の方法のみがサポートされていましたが、2 番目の方法が重要になってきました。2 番目の方法は実際にははるかに簡単なので (beanstalk-maven-plugin では、3 つの異なるメソッドを呼び出す必要がありますが、単純な git push で 3 つすべてが実行されます)、git ベースのデプロイをサポートし、そのアーキタイプも公開しています (ここにサンプル プロジェクト、特に README.md が表示されます)。
(ところで、.war ファイルを使用している場合、私のElastic Beanstalk プラグインは両方の方法をサポートしています。実際には git を支持しています。これにより、いくつかの増分展開が可能になるからです)
それで、あなたはまだそれを実装したいですか?
読むことをお勧めする 3 つのファイルがあります。
やりたい
- パイソン?ダルウィッチを探したい
- C#? powershell バージョンはそれに基づいています
- ルビー?Linuxはそれに基づいています
- ジャワ?私のものを使用してください、それはjgitを使用します