

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

# 步驟 3：部署更新的 Lambda 函數
<a name="tutorial-lambda-sam-deploy-update"></a>

 在此步驟中，您會使用更新的 `myDateTimeFunction.js`來更新和啟動 Lambda 函數的部署。您可以在 CodeDeploy 或 AWS Lambda 主控台中監控部署進度。

 AWS SAM 範本中的`AutoPublishAlias: live`行會導致您的基礎設施偵測使用`live`別名之函數的更新。函數的更新會觸發 CodeDeploy 的部署，將生產流量從函數的原始版本轉移到更新的版本。

 **sam package** 和 **sam deploy**命令用於更新和觸發 Lambda 函數的部署。您在[封裝 AWS SAM 應用程式](tutorial-lambda-sam-package.md)和[部署 AWS SAM 應用程式](tutorial-lambda-sam-deploy.md)中執行過這些命令。

**部署更新的 Lambda 函數**

1.  在 `SAM-Tutorial` 目錄中執行下列命令。

   ```
   sam package \
     --template-file template.yml \
     --output-template-file package.yml  \
     --s3-bucket amzn-s3-demo-bucket
   ```

    這會建立新的一組成品，參考 S3 儲存貯體中更新的 Lambda 函數。

1.  在 `SAM-Tutorial` 目錄中執行下列命令。

   ```
   sam deploy \
     --template-file package.yml \
     --stack-name my-date-time-app \
     --capabilities CAPABILITY_IAM
   ```

   由於堆疊名稱仍然是 `my-date-time-app`， 會 CloudFormation 辨識這是堆疊更新。若要檢視更新後的堆疊，請傳回 CloudFormation 主控台，然後從導覽窗格中選擇**堆疊**。

**（選用） 在部署期間檢視流量 (CodeDeploy 主控台）**

1. 前往 [https://console.aws.amazon.com/codedeploy/](https://console.aws.amazon.com/codedeploy/) 開啟 CodeDeploy 主控台。

1.  在導覽窗格中，展開 **Applications (應用程式)**，然後選擇您的 **my-date-time-app-ServerlessDeploymentApplication** 應用程式。

1.  在 **Deployment groups (部署群組)** 中，選擇您應用程式的部署群組。其狀態應為 **In progress (進行中)**。

1.  在 **Deployment group history (部署群組歷史記錄)** 中，選擇進行中的部署。

   此頁面上的 **Traffic shifting (流量轉移)** 進度列及 **Original (原始)** 和 **Replacement (取代)** 方塊中的百分比會顯示其進度。  
![\[CodeDeploy 主控台的流量轉移進度區段。\]](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/images/lambda-tutorial-codedeploy-console-20-percent-deployed.png)

**（選用） 在部署期間檢視流量 (Lambda 主控台）**

1. 在 https：//[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/) 開啟 AWS Lambda 主控台。

1.  從導覽窗格中，選擇您的 `my-date-time-app-myDateTimeFunction` 函數。在主控台中，其名稱包含識別符，因此看起來像 `my-date-time-app-myDateTimeFunction-123456ABCDEF`。

1.  選擇**別名**，然後選擇**即時**。

原始函數版本 (版本 1) 和已更新的函數版本 (版本 2) 旁的權重會顯示載入此 AWS Lambda 主控台頁面時，每個版本接到多少流量。頁面不會隨著時間更新權重。如果您每分鐘重新整理一次頁面，版本 1 的權重會減少 10%，而版本 2 的權重會增加 10%，直到版本 2 的權重達到 100 為止。

![\[CodeDeploy 主控台的別名區段。\]](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/images/lambda-tutorial-lambda-console-20-percent-deployed.png)
