

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

# 具有完整堆疊 Amplify Gen 1 應用程式的團隊工作流程
<a name="team-workflows-with-amplify-cli-backend-environments"></a>

功能分支部署包含**前端**和選用**的後端**環境。前端建置並部署至全球內容交付網路 (CDN)，而後端則由 Amplify Studio 或 Amplify CLI 部署至 AWS。若要了解如何設定此部署案例，請參閱 [建置應用程式的後端](deploy-backend.md)。

Amplify Hosting 會使用功能分支部署持續部署後端資源，例如 GraphQL APIs 和 Lambda 函數。您可以使用下列分支模型，透過 Amplify Hosting 部署後端和前端。

## 功能分支工作流程
<a name="standard"></a>
+ 使用 Amplify Studio 或 Amplify CLI 建立**生產**、**測試**和**開發**後端環境。
+ 將 **prod** 後端映射至**主**分支。
+ 將**測試**後端映射至**開發**分支。
+ 團隊成員可以使用**開發**後端環境來測試個別**功能**分支。

![顯示如何將後端環境之間的關係映射至前端分支的圖表。](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/FeatureBranchWorkflow.png)


1. 安裝 Amplify CLI 以初始化新的 Amplify 專案。

   ```
   npm install -g @aws-amplify/cli
   ```

1. 為專案初始化「prod」**後端環境。如果您沒有專案，請使用 create-react-app 或 Gatsby 等引導工具建立專案。

   ```
   create-react-app next-unicorn
   cd next-unicorn
   amplify init
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: prod
   ...
   amplify push
   ```

1. 新增「test」**和「dev」**後端環境。

   ```
   amplify env add
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: test
   ...
   amplify push
   
   amplify env add
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: dev
   ...
   amplify push
   ```

1. 將程式碼推送至您選擇的 Git 儲存庫 （在此範例中，我們將假設您已推送至主要儲存庫）。

   ```
   git commit -am 'Added dev, test, and prod environments'
   git push origin main
   ```

1. 請造訪 中的 Amplify AWS 管理主控台 以查看您目前的後端環境。從導覽列向上導覽關卡，以檢視在後端環境索引標籤中建立的所有**後端環境**清單。  
![Amplify 主控台會顯示與 Amplify 應用程式相關聯的後端環境。](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/reuse-backend-5.png)

1. 切換到**前端環境**索引標籤，並連接您的儲存庫提供者和*主*分支。

1. 在建置設定頁面上，選取現有的後端環境，以使用主分支設定持續部署。從清單中選擇 *prod*，並將服務角色授予 Amplify。選擇 **Save and deploy (儲存並部署)**。建置完成後，您會在 https：//*https://main.appid.amplifyapp.com* 取得主要分支部署。  
![設定建置設定頁面，其中包含現有後端的清單。](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/reuse-backend-2.png)

1. 在 Amplify 中連接*開發*分支 （假設*開發*和*主要*分支目前相同）。選擇「test」**後端環境。  
![已選取分支和後端環境的新增儲存庫分支頁面。](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/reuse-backend-4.png)

1. Amplify 現在已設定。您可以開始在功能分支中處理新功能。請從本機工作站使用「dev」**後端環境來新增後端功能。

   ```
   git checkout -b newinternet
   amplify env checkout dev
   amplify add api
   ...
   amplify push
   ```

1. 功能處理完畢後，請遞交程式碼並建立提取請求，以在內部進行檢閱。

   ```
   git commit -am 'Decentralized internet v0.1'
   git push origin newinternet
   ```

1. 若要預覽變更的外觀，請前往 Amplify 主控台並連接您的功能分支。注意：如果系統 AWS CLI 已安裝 （而非 Amplify CLI)，您可以直接從終端機連接分支。依序前往 App settings (應用程式設定) > General (一般) > AppARN: *arn:aws:amplify:<region>:<region>:apps/<appid>*，即可找到 appid。

   ```
   aws amplify create-branch --app-id <appid> --branch-name <branchname>
   aws amplify start-job --app-id <appid> --branch-name <branchname> --job-type RELEASE
   ```

1. 您可前往 *https://newinternet.appid.amplifyapp.com* 存取該功能，以與團隊夥伴共享。如果看起來都沒問題，請將 PR 合併至開發分支。

   ```
   git checkout develop
   git merge newinternet
   git push
   ```

1. 這將啟動建置，以使用位於 https：//*https://dev.appid.amplifyapp.com* 的分支部署更新 Amplify 中的後端和前端。您可與內部合作夥伴分享此連結，讓他們檢閱新功能。

1. 從 Git、Amplify 刪除您的功能分支，並從雲端移除後端環境 （您可以隨時執行「amplify env checkout prod」和執行「amplify env add」來啟動新的分支）。

   ```
   git push origin --delete newinternet
   aws amplify delete-branch --app-id <appid> --branch-name <branchname>
   amplify env remove dev
   ```

## GitFlow 工作流程
<a name="gitflow"></a>

GitFlow 會使用兩個分支來記錄專案的歷史記錄。*主要*分支只會追蹤發行程式碼，而*開發*分支會用作新功能的整合分支。GitFlow 會將新開發與完成的工作分開，以簡化平行開發作業。系統會在「功能」**分支中完成新的開發 (例如功能和非緊急錯誤修正)。當開發人員認為程式碼隨時可發佈時，系統就會將該「功能」**分支合併回整合「開發」**分支。對主分支的唯一遞交是從*發行*分支和 *Hotfix* 分支合併 （以修正緊急錯誤）。

下圖顯示建議的 GitFlow 設定。您可以遵循上述功能分支工作流程一節的相同程序來操作。

![顯示 GitFlow 建議設定的圖表。](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/GitflowWorkflow.png)


## 每位開發人員的沙盒
<a name="sandbox"></a>
+ 團隊中的每位開發人員都應該在與其本機電腦分開的雲端中建立沙盒環境。這可讓開發人員彼此獨立運作，而不會覆寫其他團隊成員的變更。
+ Amplify 中的每個分支都有自己的後端。這可確保 Amplify 使用 Git 儲存庫作為部署變更的單一事實來源，而不是依賴團隊的開發人員從本機電腦手動將其後端或前端推送至生產環境。

![顯示每個開發人員沙盒工作流程的圖表。](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/AmplifySandboxWorkflow.png)


1. 安裝 Amplify CLI 以初始化新的 Amplify 專案。

   ```
   npm install -g @aws-amplify/cli
   ```

1. 為您的專案初始化 *mary* 後端環境。如果您沒有專案，請使用 create-react-app 或 Gatsby 等引導工具建立專案。

   ```
   cd next-unicorn
   amplify init
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: mary
   ...
   amplify push
   ```

1. 將程式碼推送至您選擇的 Git 儲存庫 （在此範例中，我們將假設您已推送至主要儲存庫。

   ```
   git commit -am 'Added mary sandbox'
   git push origin main
   ```

1. 將您的儲存庫 > *主要*連線至 Amplify。

1. Amplify 主控台會偵測 Amplify CLI 建立的後端環境。從下拉式清單中選擇*建立新環境*，並將服務角色授予 Amplify。選擇 **Save and deploy (儲存並部署)**。建置完成後，您會在 https：//*https://main.appid.amplifyapp.com* 取得主要分支部署，其中包含連結至分支的新後端環境。

1. 在 Amplify 中連接*開發*分支 （假設*開發*和*主要*分支目前相同），然後選擇*建立*