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

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

在 Elastic Beanstalk 環境之間建立連結

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

注意

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

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

例如,如果您的應用程式包含收集電子郵件地址的前端,以及向前端收集的電子郵件地址傳送歡迎電子郵件的背景工作者,您可以建立前端中 Worker 的連結,並讓前端自動探索您背景工作的端點 (佇列URL)。

定義環境資訊清單中其他環境的連結,這是在應用程YAML式來源根目錄env.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)

若要使用環境連結,請將環境資訊清單新增至您的應用程式來源CLI,並使用 EB 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="amzn-s3-demo-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