在 Elastic Beanstalk 環境之間建立連結 - AWS Elastic Beanstalk

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

在 Elastic Beanstalk 環境之間建立連結

由於您應用程式的大小和複雜性均提升,建議您將其分割為具備不同開發與營運生命週期的元件。透過執行藉由定義良好的界面與彼此互動的較小服務,團隊能夠獨立工作,且部署可降低風險。 AWS Elastic Beanstalk 可讓您連結您的環境,以共用彼此相關之元件間的資訊。

注意

除了多容器 Docker 外,Elastic Beanstalk 目前支援所有平台的環境連結。

透過環境連結,您可將應用程式元件間的環境連線,指定為具名參考。當您建立定義連結的環境,Elastic Beanstalk 會以連結為名,設定一個環境變數。此變數的值就是您可用於連結其他元件的端點,可能是 Web 伺服器或工作者環境。

例如,若您應用程式的前端可收集電子郵件地址,而其工作者則將歡迎電子郵件傳送至前端收集的電子郵件地址,則您可於前端建立該工作者的連結,前端即可自動尋找工作者的端點 (佇列 URL)。

環境資訊清單 (一個名為 env.yaml 的 YAML 格式檔案,位於應用程式原始碼的根目錄) 中,定義其他環境的連結。下列資訊清單定義名為 worker 的環境的連結:

~/workspace/my-app/frontend/env.yaml

AWSConfigurationTemplateVersion: 1.1.0.0 EnvironmentLinks: "WORKERQUEUE": "worker"

當您透過內含上述環境資訊清單的應用程式版本來建立環境,Elastic Beanstalk 會尋找屬於相同應用程式且名為 worker 的環境。如果該環境存在,Elastic Beanstalk 會建立一個名為 WORKERQUEUE 的環境屬性。WORKERQUEUE 的值是 Amazon SQS 佇列 URL。前端應用程式可讀取此屬性,如同讀取環境變數一般。如需詳細資訊,請參閱 環境資訊清單 (env.yaml)

若要使用環境連結,請將環境資訊清單新增至應用程式來源,然後使用 EB CLI AWS CLI 或 SDK 上傳。如果您使用 AWS CLI 或 SDK,請在呼叫時設定process旗標CreateApplicationVersion

$ aws elasticbeanstalk create-application-version --process --application-name my-app --version-label frontend-v1 --source-bundle S3Bucket="DOC-EXAMPLE-BUCKET",S3Key="front-v1.zip"

此選項會指示 Elastic Beanstalk 在您建立應用程式版本時,於原始碼套件內驗證環境資訊清單及組態檔案。若您的專案目錄內含環境資訊清單,EB CLI 會自動設定此旗標。

使用任一用戶端正常建立您的環境。當您需要終止環境時,請先終止帶有連結的環境。若某環境受到另一環境連結,Elastic Beanstalk 將保護受連結環境不被終止。欲覆寫此項保護,請使用 ForceTerminate 旗標。此參數在 AWS CLI 則為 --force-terminate

$ aws elasticbeanstalk terminate-environment --force-terminate --environment-name worker