

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Elastic Beanstalk 上使用 Procfile 設定自訂啟動命令
<a name="go-procfile"></a>

欲指定啟動 Go 應用程式的自訂命令，請於原始碼套件的根目錄，納入名為 `Procfile` 的檔案。

如需撰寫和使用 的詳細資訊`Procfile`，請參閱 [Buildfile 和 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 AMI (Amazon Linux 2 之前) 上使用 Procfile
<a name="go-procfile.alami"></a>

如果您的 Elastic Beanstalk Go 環境使用 Amazon Linux AMI 平台版本 (Amazon Linux 2 前身)，請閱讀本節中的其他資訊。

**備註**  
本主題中的資訊僅適用於以 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 做為初始連接埠。

在上述範例中，`web` 應用程式的 `PORT` 環境屬性為 5000，`queue_process` 應用程式使用 5100，而 `foo` 應用程式使用 5200。

您可透過 [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) 命名空間設定 `PORT` 選項，藉此指定初始連接埠，如下列範例所示。

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

如需應用程式設定環境屬性的詳細資訊，請參閱[選項設定](ebextensions-optionsettings.md)。