

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

# Elastic Beanstalk で Procfile を使用したカスタムスタートコマンドの設定
<a name="go-procfile"></a>

Go アプリケーションをスタートするカスタムコマンドを指定するには、[`Procfile`] という名前のファイルを出典バンドルのルートに含めます。

`Procfile` 書き込みと使用の詳細については、「[ビルドファイルと Procfile](platforms-linux-extend.build-proc.md)」を参照してください。

**Example [Procfile]**  

```
web: {{bin/server}}
queue_process: {{bin/queue_processor}}
foo: {{bin/fooapp}}
```

メインアプリケーション `web` を呼び出し、`Procfile` の最初のコマンドとしてリストする必要があります。Elastic Beanstalk は、メインの `web` アプリケーションを環境のルート URL (例: `http://my-go-env.elasticbeanstalk.com`) で公開します。

Elastic Beanstalk は、名前に `web_` プレフィックスがないアプリケーションも実行しますが、これらのアプリケーションはインスタンス外から使用できません。

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

## (Amazon Linux 2 より前の) Amazon Linux AMI での Procfile の使用
<a name="go-procfile.alami"></a>

Elastic Beanstalk Go 環境で (Amazon Linux 2 より前の) Amazon Linux AMI プラットフォームバージョンを使用している場合は、このセクションの追加情報を読んでください。

**注意事項**  
このトピックの情報は、Amazon Linux AMI (AL1) に基づくプラットフォームブランチにのみ適用されます。AL2023/AL2 プラットフォームブランチでは、以前の Amazon Linux AMI (AL1) プラットフォームバージョンと互換性がなく、*別の構成設定が必要です*。
 [2022 年 7 月 18 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html)に、Elastic Beanstalk では Amazon Linux AMI (AL1) に基づくプラットフォームブランチのステータスがすべて**廃止**に設定されました。現在および完全にサポートされている Amazon Linux 2023 プラットフォームブランチへの移行の詳細については、「[Elastic Beanstalk Linux アプリケーションを Amazon Linux 2023 または Amazon Linux 2 に移行する](using-features.migration-al.md)」を参照してください。

### ポートパッシング — Amazon Linux AMI (AL1)
<a name="go-procfile.alami.ports"></a>

**注記**  
このトピックの情報は、Amazon Linux AMI (AL1) に基づくプラットフォームブランチにのみ適用されます。AL2023/AL2 プラットフォームブランチでは、以前の Amazon Linux AMI (AL1) プラットフォームバージョンと互換性がなく、*別の構成設定が必要です*。

Elastic Beanstalk は nginx プロキシを設定し、アプリケーション用の `PORT` [環境プロパティ](go-environment.md#go-options)で指定されたポート番号のアプリケーションにリクエストを転送します。アプリケーションは、このポートを常にリッスンする必要があります。アプリケーション内のこの可変数にアクセスするには、`os.Getenv("PORT")` メソッドを呼び出します。

Elastic Beanstalk は、`PORT` 内の最初のアプリケーションのポートの `Procfile` 環境プロパティで指定されたポート番号を使用します。`Procfile` 内の以降のアプリケーションでは、ポート番号は 100 ずつ増えていきます。`PORT` 環境プロパティが設定されていない場合、Elastic Beanstalk は初期ポートに 5000 を使用します。

前述の例では、`PORT` 環境プロパティは `web` アプリケーションで 5000、`queue_process` アプリケーションで 5100、`foo` アプリケーションで 5200 となります。

次のように、`PORT` オプションを [[aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment)] 名前空間で設定すると、最初のポートを指定できます。

```
option_settings:
  - namespace:  aws:elasticbeanstalk:application:environment
    option_name:  PORT
    value:  {{<first_port_number>}}
```

使用しているアプリケーションの環境プロパティの設定の詳細については、「[オプション設定](ebextensions-optionsettings.md)」を参照してください。