

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

# ビルドファイルと Procfile
<a name="platforms-linux-extend.build-proc"></a>

プラットフォームによっては、アプリケーションの構築または準備方法をカスタマイズしたり、アプリケーションを実行するプロセスを指定することができます。各プラットフォームのトピックでは、プラットフォームによりサポートされている場合は特に *Buildfile* や *Procfile* について言及されています。特定のプラットフォームについては、「[Elastic Beanstalk プラットフォーム](concepts-all-platforms.md)」を参照してください。

このページで説明されているとおり、サポートされているすべてのプラットフォームでは、構文とセマンティクスは同じです。個々のプラットフォームのトピックでは、それぞれの言語でアプリケーションを構築および実行するために、ファイルの具体的な使用方法について説明しています。

## [Buildfile]
<a name="platforms-linux-extend.build"></a>

アプリケーションのカスタムビルドおよび設定コマンドを指定するには、アプリケーションソースのルートディレクトリに `Buildfile` という名前のファイルを配置します。ファイル名では、大文字と小文字が区別されます。`Buildfile` には、次の構文を使用します。

```
{{<process_name>}}: {{<command>}}
```

`Buildfile` 内のコマンドは、正規表現 `^[A-Za-z0-9_-]+:\s*[^\s].*$` に一致する必要があります。

Elastic Beanstalk は、`Buildfile` で実行されるアプリケーションをモニタリングしません。`Buildfile` は、短期間実行されてタスクが完了したら終了されるコマンドに使用します。長期間継続的に実行される必要のあるアプリケーションプロセスには、[Procfile](#platforms-linux-extend.proc) を使用します。

`Buildfile` 内のすべてのパスは、出典バンドルのルートと関連します。次の `Buildfile` の例では、`build.sh` がシェルスクリプトとして、ソースバンドルのルートに配置されています。

**Example [Buildfile]**  

```
make: ./build.sh
```

カスタムビルドステップを提供する場合は、`Buildfile` ではなく、最も単純なコマンド以外の `predeploy` プラットフォームフックを使用することをお勧めします。プラットフォームフックは、より豊富なスクリプトとより良いエラー処理を可能にします。プラットフォームフックについては、次のセクションで説明します。

## [Procfile]
<a name="platforms-linux-extend.proc"></a>

アプリケーションを起動して実行するためのカスタムコマンドを指定するには、アプリケーションソースのルートディレクトリに `Procfile` という名前のファイルを配置します。ファイル名では、大文字と小文字が区別されます。`Procfile` には、次の構文を使用します。1 つまたは複数のコマンドを指定できます。

```
{{<process_name1>}}: {{<command1>}}
{{<process_name2>}}: {{<command2>}}
...
```

`Procfile` 内の各行は、正規表現 `^[A-Za-z0-9_-]+:\s*[^\s].*$` に一致する必要があります。

長時間継続的に実行されるアプリケーションプロセスには、`Procfile` を使用します。Elastic Beanstalk では、`Procfile` のプロセスは継続的に実行される必要があります。Elastic Beanstalk はこれらのプロセスをモニタリングし、終了されたプロセスをすべて再開します。短期間実行されるプロセスには、[Buildfile](#platforms-linux-extend.build) コマンドを使用します。

`Procfile` 内のすべてのパスは、出典バンドルのルートと関連します。次の例では、`Procfile` は 3 つのプロセスを定義します。最初のプロセスは、この例では `web` と呼ばれますが、*メインウェブアプリケーション*です。

**Example [Procfile]**  

```
web: {{bin/myserver}}
cache: {{bin/mycache}}
foo: {{bin/fooapp}}
```

Elastic Beanstalk は、ポート 5000 のメインウェブアプリケーションにリクエストを転送するようにプロキシサーバーを設定し、このポート番号を設定できます。`Procfile` の一般的な使用方法は、このポート番号をコマンド引数としてアプリケーションに渡すことです。プロキシ設定の詳細については、「[リバースプロキシの設定](platforms-linux-extend.proxy.md)」を参照してください。

Elastic Beanstalk は、`Procfile` プロセスから標準出力ストリームとエラーストリームをログファイルにキャプチャします。Elastic Beanstalk は、プロセスの後にログファイルに名前を付け、`/var/log` に保存します。たとえば、前述の例では `web` プロセスが `web-1.log` および `web-1.error.log` についてそれぞれ `stdout` および `stderr` という名前のログを生成します。