使用 Elastic Beanstalk 上的 Procfile 配置自定義啟動命令 - AWS Elastic Beanstalk

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

使用 Elastic Beanstalk 上的 Procfile 配置自定義啟動命令

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

如需撰寫和使用 a 的詳細資訊Procfile,請參閱Buildfile 和 Procfile

範例 Procfile
web: bin/server queue_process: bin/queue_processor foo: bin/fooapp

您必須呼叫主應用程式 web,並在 Procfile 中將其列為第一個命令。Elastic Beanstalk 會在環境根目錄URL上公開主要web應用程式;例如,。http://my-go-env.elasticbeanstalk.com

Elastic Beanstalk 亦會執行名稱沒有 web_ 前綴字的應用程式,但這些應用程式無法自您的執行個體外取用。

Elastic Beanstalk 預期 Procfile 執行的程序會持續執行。Elastic Beanstalk 會監控這些應用程式,並重新啟動終止的任何程序。針對短期執行的程序,請使用 Buildfile 命令。

如果您的 Elastic Beanstalk 圍棋環境使用 Amazon Linux AMI 平台版本(在 Amazon Linux 2 之前),請閱讀本節中的其他信息。

備註
注意

本主題中的資訊僅適用於以 Amazon Linux AMI (AL1) 為基礎的平台分支。AL2023/ AL2 平台分支機構與先前的 Amazon Linux AMI (AL1) 平台版本不相容,因此需要不同的組態設定

Elastic Beanstalk 會設定 nginx 代理程式,將對您應用程式的請求轉送至應用程式 PORT 環境屬性指定的連接埠號碼。您的應用程式應隨時接聽該連接埠。您可呼叫 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 命名空間設定 PORT 選項,藉此指定初始連接埠,如下列範例所示。

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

如需應用程式設定環境屬性的詳細資訊,請參閱選項設定