本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 AWS CodeCommit 使用 EB CLI
您可使用 EB CLI,直接自 AWS CodeCommit 儲存庫部署您的應用程式。透過 CodeCommit,您部署時可僅將變更上傳至儲存庫,無須上傳整個專案。若您的專案較大或網際網路連線能力受限,如此可節省您的時間和頻寬。使用 eb appversion、eb create 或 eb deploy 時,EB CLI 會推播本機遞交內容,並用其建立應用程式版本。
若要部署變更,CodeCommit 整合會要求您先遞交變更。然而,當您開發或除錯時,建議您不要推播正處理待確認的變更。您可以暫存變更並使用會執行標準部署的 eb deploy --staged,藉此避免遞交變更。或者,先將您的變更遞交至開發或測試分支,並在您程式碼就緒後,再合併至主線分支。透過 eb use,您可將 EB CLI 設定為自您的開發分支部署至環境,並自主線分支部署至不同環境。
注意
某些區域未提供 CodeCommit。Elastic Beanstalk 和 CodeCommit 之間的整合在這些區域中不會發生作用。
如需各區域提供的 AWS 服務的資訊,請參閱區域表
必要條件
若要將 CodeCommit 與 AWS Elastic Beanstalk 搭配使用,您需要帶有至少一個遞交的本機 Git 儲存庫 (現有或新建立的皆可),使用 CodeCommit 的許可,以及 CodeCommit 支援區域內的 Elastic Beanstalk 環境。您的環境和儲存庫必須位於相同區域。
欲初始化 Git 儲存庫
-
於專案資料夾執行
git init
。~/my-app$
git init
-
使用
git add
暫存您的專案檔案。~/my-app$
git add .
-
使用
git commit
遞交變更。~/my-app$
git commit -m "Elastic Beanstalk application"
使用 EB CLI 建立 CodeCommit 儲存庫
若要開始使用 CodeCommit,請執行 eb init。在儲存庫設定期間,EB CLI 會提示您使用 CodeCommit 來存放您的程式碼,並加速部署。即使您之前已使用 eb init 設定專案,您可以再執行一次來設定 CodeCommit。
使用 EB CLI 建立 CodeCommit 儲存庫
-
於專案資料夾執行 eb init。在設定期間,EB CLI 會詢問您是否希望使用 CodeCommit 來存放您的程式碼,並加速部署。如果您之前已使用 eb init 設定專案,您仍可再執行一次來設定 CodeCommit。提示出現後。輸入
y
以設定 CodeCommit。~/my-app$
eb init
Note: Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service. To learn more, see Docs: https://aws.amazon.com/codecommit/ Do you wish to continue with CodeCommit? (y/n)(default is n):y
-
選擇 Create new Repository (建立新的儲存庫)。
Select a repository 1) my-repo 2) [ Create new Repository ] (default is 2):
2
-
輸入儲存庫名稱或按 Enter (確認) 接受預設名稱。
Enter Repository Name (default is "codecommit-origin"):
my-app
Successfully created repository: my-app -
選擇遞交內容的現有分支,或使用 EB CLI 來建立新的分支。
Enter Branch Name ***** Must have at least one commit to create a new branch with CodeCommit ***** (default is "mainline"):
ENTER
Successfully created branch: mainline
從您的 CodeCommit 儲存庫進行部署。
當您透過 EB CLI 儲存庫設定 CodeCommit 時,EB CLI 會使用儲存庫的內容來建立原始碼套件。執行 eb deploy 或 eb create 時,EB CLI 會推播新的遞交內容,並使用分支的 HEAD 修訂版來建立封存,即可將其部署至環境內的 EC2 執行個體。
搭配 EB CLI 使用 CodeCommit 整合
-
使用 eb create 建立新環境。
~/my-app$
eb create
Starting environment deployment via CodeCommit --- Waiting for application versions to be pre-processed --- Finished processing application version app-ac1ea-161010_201918 Setting up default branch Environment details for: my-app-env Application name: my-app Region: us-east-2 Deployed Version: app-ac1ea-161010_201918 Environment ID: e-pm5mvvkfnd Platform: 64bit Amazon Linux 2016.03 v2.1.6 running Java 8 Tier: WebServer-Standard CNAME: UNKNOWN Updated: 2016-10-10 20:20:29.725000+00:00 Printing Status: INFO: createEnvironment is starting. ...my-app-env
EB CLI 會使用追蹤分支內最新的遞交內容,以建立將部署至環境的應用程式版本。
-
當您有新的本機遞交內容,請使用 eb deploy 來推播遞交並部署至您的環境。
~/my-app$
eb deploy
Starting environment deployment via CodeCommit INFO: Environment update is starting. INFO: Deploying new version to instance(s). INFO: New application version was deployed to running EC2 instances. INFO: Environment update completed successfully. -
欲在遞交前測試變更,請使用
--staged
選項來部署您於暫存區域透過git add
新增的變更。~/my-app$
git add new-file
~/my-app$eb deploy --staged
使用
--staged
選項進行部署,會繞過 CodeCommit 執行標準部署。
設定其他分支與環境
CodeCommit 組態適用於單一分支。您可使用 eb use 與 eb codesource,以設定其他分支或修改目前分支的組態。
使用 EB CLI 設定 CodeCommit 整合
-
若要變更遠端分支,請使用 eb use 命令的
--source
選項。~/my-app$
eb use
test-env
--sourcemy-app/test
-
若要建立新的分支和環境,請查看新的分支,將其推播至 CodeCommit,建立環境,然後使用 eb use 來連接本機分支、遠端分支和環境。
~/my-app$
git checkout -b
~/my-app$production
git push --set-upstream
~/my-app$production
eb create
~/my-app$production-env
eb use --source
my-app/production production-env
-
若要以互動方式設定 CodeCommit,請使用 eb codesource codecommit。
~/my-app$
eb codesource codecommit
Current CodeCommit setup: Repository: my-app Branch: test Do you wish to continue (y/n):y
Select a repository 1) my-repo 2) my-app 3) [ Create new Repository ] (default is 2):2
Select a branch 1) mainline 2) test 3) [ Create new Branch with local HEAD ] (default is 1):1
-
若要停用 CodeCommit 整合,請使用 eb codesource local。
~/my-app$
eb codesource local
Current CodeCommit setup: Repository: my-app Branch: mainline Default set to use local sources
使用現有的 CodeCommit 儲存庫
如果您已有 CodeCommit 儲存庫,希望將其與 Elastic Beanstalk 搭配使用,請在本機 Git 儲存庫的根目錄執行 eb init。
將現有的 CodeCommit 儲存庫與 EB CLI 搭配使用
-
複製您的 CodeCommit 儲存庫。
~$
git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/
my-app
-
查看並推播分支以用於您的 Elastic Beanstalk 環境。
~/my-app$
git checkout -b
~/my-app$dev-env
git push --set-upstream origin
dev-env
-
執行 eb init.選擇您目前正在使用的相同區域、儲存庫和分支名稱。
~/my-app$
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):1
... Note: Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service. To learn more, see Docs: https://aws.amazon.com/codecommit/ Do you wish to continue with CodeCommit? (y/n)(default is n):y
Select a repository 1) my-app 2) [ Create new Repository ] (default is 1):1
Select a branch 1) mainline 2) dev-env 3) [ Create new Branch with local HEAD ] (default is 2):2
如需使用 eb init 的詳細資訊,請參閱 設定 EB CLI。