翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ビルドファイルと Procfile
プラットフォームによっては、アプリケーションの構築または準備方法をカスタマイズしたり、アプリケーションを実行するプロセスを指定することができます。各プラットフォームのトピックでは、プラットフォームによりサポートされている場合は特に Buildfile や Procfile について言及されています。特定のプラットフォームについては、「Elastic Beanstalk プラットフォーム」を参照してください。
このページで説明されているとおり、サポートされているすべてのプラットフォームでは、構文とセマンティクスは同じです。個々のプラットフォームのトピックでは、それぞれの言語でアプリケーションを構築および実行するために、ファイルの具体的な使用方法について説明しています。
[Buildfile]
アプリケーションのカスタムビルドおよび設定コマンドを指定するには、アプリケーションソースのルートディレクトリに Buildfile
という名前のファイルを配置します。ファイル名では、大文字と小文字が区別されます。Buildfile
には、次の構文を使用します。
<process_name>
: <command>
Buildfile
内のコマンドは、正規表現 ^[A-Za-z0-9_-]+:\s*[^\s].*$
に一致する必要があります。
Elastic Beanstalk は、Buildfile
で実行されるアプリケーションをモニタリングしません。Buildfile
は、短期間実行されてタスクが完了したら終了されるコマンドに使用します。長期間継続的に実行される必要のあるアプリケーションプロセスには、Procfile を使用します。
Buildfile
内のすべてのパスは、出典バンドルのルートと関連します。次の Buildfile
の例では、build.sh
がシェルスクリプトとして、ソースバンドルのルートに配置されています。
例 [Buildfile]
make: ./build.sh
カスタムビルドステップを提供する場合は、Buildfile
ではなく、最も単純なコマンド以外の predeploy
プラットフォームフックを使用することをお勧めします。プラットフォームフックは、より豊富なスクリプトとより良いエラー処理を可能にします。プラットフォームフックについては、次のセクションで説明します。
[Procfile]
アプリケーションを起動して実行するためのカスタムコマンドを指定するには、アプリケーションソースのルートディレクトリに Procfile
という名前のファイルを配置します。ファイル名では、大文字と小文字が区別されます。Procfile
には、次の構文を使用します。1 つまたは複数のコマンドを指定できます。
<process_name1>
: <command1>
<process_name2>
: <command2>
...
Procfile
内の各行は、正規表現 ^[A-Za-z0-9_-]+:\s*[^\s].*$
に一致する必要があります。
長時間継続的に実行されるアプリケーションプロセスには、Procfile
を使用します。Elastic Beanstalk では、Procfile
のプロセスは継続的に実行される必要があります。Elastic Beanstalk はこれらのプロセスをモニタリングし、終了されたプロセスをすべて再開します。短期間実行されるプロセスには、Buildfile コマンドを使用します。
Procfile
内のすべてのパスは、出典バンドルのルートと関連します。次の例では、Procfile
は 3 つのプロセスを定義します。最初のプロセスは、この例では web
と呼ばれますが、メインウェブアプリケーションです。
例 [Procfile]
web: bin/myserver
cache: bin/mycache
foo: bin/fooapp
Elastic Beanstalk は、ポート 5000 のメインウェブアプリケーションにリクエストを転送するようにプロキシサーバーを設定し、このポート番号を設定できます。Procfile
の一般的な使用方法は、このポート番号をコマンド引数としてアプリケーションに渡すことです。プロキシ設定の詳細については、「リバースプロキシの設定」を参照してください。
Elastic Beanstalk は、Procfile
プロセスから標準出力ストリームとエラーストリームをログファイルにキャプチャします。Elastic Beanstalk は、プロセスの後にログファイルに名前を付け、/var/log
に保存します。たとえば、前述の例では web
プロセスが web-1.log
および web-1.error.log
についてそれぞれ stdout
および stderr
という名前のログを生成します。