ビルドファイルと Procfile - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ビルドファイルと Procfile

プラットフォームによっては、アプリケーションの構築または準備方法をカスタマイズしたり、アプリケーションを実行するプロセスを指定することができます。各プラットフォームのトピックでは、プラットフォームによりサポートされている場合は特に BuildfileProcfile について言及されています。特定のプラットフォームについては、「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 という名前のログを生成します。