設定 EB CLI - AWS Elastic Beanstalk

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

設定 EB CLI

安裝 EB CLI 之後,您就可以執行 eb init 以設定您的專案目錄和 EB CLI。

下列範例說明首次在名為 eb init 的專案資料夾執行 eb 的設定步驟。

欲初始化 EB CLI 專案
  1. 首先,EB CLI 會提示您選擇一個區域。輸入您要使用之區域相對應的編號,然後按 Enter (確認)

    ~/eb $ eb init Select a default region 1) us-east-1 : US East (N. Virginia) 2) us-west-1 : US West (N. California) 3) us-west-2 : US West (Oregon) 4) eu-west-1 : Europe (Ireland) 5) eu-central-1 : Europe (Frankfurt) 6) ap-south-1 : Asia Pacific (Mumbai) 7) ap-southeast-1 : Asia Pacific (Singapore) ... (default is 3): 3
  2. 接著,提供您的存取金鑰和私密金鑰,讓 EB CLI 能夠為您管理資源。存取金鑰於 AWS Identity and Access Management 主控台內建立。如果您沒有金鑰,請參閱《Amazon Web Services 一般參考》中的如何取得安全憑證?

    You have not yet set up your credentials or your credentials are incorrect. You must provide your credentials. (aws-access-id): AKIAJOUAASEXAMPLE (aws-secret-key): 5ZRIrtTM4ciIAvd4EXAMPLEDtm+PiPSzpoK
  3. Elastic Beanstalk 中的應用程式為資源,其中包含一組與單一 Web 應用程式建立關聯的應用程式版本 (來源)、環境及已儲存組態。您每次使用 EB CLI 將來源碼部署至 Elastic Beanstalk 時,都會建立新的應用程式版本,並新增至清單。

    Select an application to use 1) [ Create new Application ] (default is 1): 1
  4. 預設應用程式名稱為您執行 eb init 的資料夾名稱。輸入可描述專案的名稱。

    Enter Application Name (default is "eb"): eb Application eb has been created.
  5. 選擇符合您 Web 應用程式開發所用之語言或架構的平台。若您尚未開發應用程式,請選擇您喜歡的平台。您很快就會了解如何啟動範例應用程式,而且稍後可隨時變更此設定。

    Select a platform. 1) Node.js 2) PHP 3) Python 4) Ruby 5) Tomcat 6) IIS 7) Docker 8) Multi-container Docker 9) GlassFish 10) Go 11) Java (default is 1): 1
  6. 選擇 yes (是) 以指派 SSH 金鑰對到您 Elastic Beanstalk 環境中的執行個體。這可讓您直接連接以進行故障排除。

    Do you want to set up SSH for your instances? (y/n): y
  7. 選擇現有金鑰對或建立新的金鑰對。欲使用 eb init 來建立新的金鑰對,ssh-keygen 必須安裝於您的本機機器且可從命令列取用。EB CLI 會為您向 Amazon EC2 註冊新的金鑰對,並將私有金鑰存放於本機使用者目錄中名為 .ssh 的資料夾。

    Select a keypair. 1) [ Create new KeyPair ] (default is 1): 1

您的 EB CLI 安裝設定現已完成且就緒。如需建立並使用 Elastic Beanstalk 環境的說明,請參閱 使用 EB CLI 管理 Elastic Beanstalk 環境

使用 .ebignore 忽略檔案

您可將檔案 .ebignore 新增至專案目錄,藉此指示 EB CLI 忽略該目錄中的特定檔案。此檔案的運作方式如同 .gitignore 檔案。將專案目錄部署至 Elastic Beanstalk 並建立新的應用程式版本時,EB CLI 不會將 .ebignore 指定的檔案納入其所建立的來源套件中。

.ebignore 不存在但 .gitignore 存在,則 EB CLI 會忽略 .gitignore 指定的檔案。若 .ebignore 存在,則 EB CLI 不會讀取 .gitignore

.ebignore 存在,EB CLI 不會使用 git 命令來建立您的原始碼套件。這表示 EB CLI 會忽略 .ebignore 指定的檔案,並納入所有其他檔案,尤其是未遞交的來源檔案。

注意

在 Windows 中,新增 .ebignore 會使 EB CLI 在建立原始碼套件時,存取符號連結並納入連結檔案。此已知問題將於未來的更新中修正。

使用命名設定檔

如您將登入資料做為具名描述檔存放在 credentialsconfig 檔案,您可使用 --profile 選項來明確指定描述檔。例如,下列命令會使用 user2 設定檔來建立新的應用程式。

$ eb init --profile user2

您亦可設定 AWS_EB_PROFILE 環境變數來變更預設的設定檔。設定此變數後,EB CLI 會自指定設定檔讀取登入資料,而不從 defaulteb-cli 讀取。

Linux、macOS 或 Unix

$ export AWS_EB_PROFILE=user2

Windows

> set AWS_EB_PROFILE=user2

部署成品而非專案資料夾

您可將下列行新增至專案資料夾內的 .elasticbeanstalk/config.yml,藉此指示 EB CLI 部署您所產生的 ZIP 檔或 WAR 檔案,做為不同的建置程序的一部分。

deploy: artifact: path/to/buildartifact.zip

若您於 Git 儲存庫設定 EB CLI,而且不要將成品遞交至來源,請使用 --staged 選項來部署最新的建置。

~/eb$ eb deploy --staged

組態設定和優先順序

EB CLI 使用提供者鏈結在許多不同的地方尋找 AWS 登入資料,包括系統或使用者環境變數以及本機 AWS 組態檔案。

EB CLI 根據以下順序尋找登入資料和組態設定:

  1. 命令列選項 ‒ 使用 --profile 來指定具名描述檔以覆寫預設設定。

  2. 環境變數AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

  3. AWS 登入資料檔案 ‒ 位於 Linux 和 OS X 系統上的 ~/.aws/credentials,或是 Windows 系統上的 C:\Users\USERNAME\.aws\credentials。除了預設的設定檔外,此檔案還可以包含多個命名設定檔。

  4. AWS CLI 組態檔案 ‒ 位於 Linux 和 OS X 系統上的 ~/.aws/config,或是 Windows 系統上的 C:\Users\USERNAME\.aws\config。此檔案可以包含每個預設設定檔、命名設定檔和 AWS CLI 特定組態參數。

  5. 傳統 EB CLI 組態檔案 ‒ 位於 Linux 和 OS X 系統上的 ~/.elasticbeanstalk/config,或是 Windows 系統上的 C:\Users\USERNAME\.elasticbeanstalk\config

  6. 執行個體描述檔登入資料 ‒ 這些登入資料可用於具備指派執行個體角色的 Amazon EC2 執行個體,並透過 Amazon EC2 中繼資料服務交付。執行個體描述檔必須具備使用 Elastic Beanstalk 的許可。

若登入資料檔案包含名為「eb-cli」的命名設定檔,則 EB CLI 會偏好該設定檔,而非預設設定檔。若找不到描述檔,或所找到的描述檔未具備使用 Elastic Beanstalk 的許可,則 EB CLI 會提示您輸入金鑰。

執行個體中繼資料

若要從 Amazon EC2 執行個體使用 EB CLI,請建立可以存取所需資源的角色,並在執行個體啟動時,指派該角色到執行個體。啟動執行個體並使用 pip 安裝 EB CLI。

~$ sudo pip install awsebcli

pip 預先安裝在 Amazon Linux 上。

EB CLI 會讀取來自執行個體中繼資料的登入資料。如需詳細資訊,請參閱《IAM 使用者指南》中的授予在 Amazon EC2 執行個體上執行的應用程式存取 AWS 資源的許可