

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

# AWS Lambda 運算平台上的部署
<a name="deployment-steps-lambda"></a>

本主題提供使用 AWS Lambda 運算平台之 CodeDeploy 部署元件和工作流程的相關資訊。

**Topics**
+ [AWS Lambda 運算平台上的部署工作流程](#deployment-process-workflow-lambda)
+ [上傳您的應用程式修訂版](#deployment-steps-uploading-your-app-lambda)
+ [建立您的應用程式和部署群組](#deployment-steps-registering-app-deployment-groups-lambda)
+ [部署您的應用程式修訂版](#deployment-steps-deploy-lambda)
+ [更新您的應用程式](#deployment-steps-updating-your-app-lambda)
+ [已停止和失敗的部署](#deployment-stop-fail-lambda)
+ [重新部署和部署轉返](#deployment-rollback-lambda)

## AWS Lambda 運算平台上的部署工作流程
<a name="deployment-process-workflow-lambda"></a>

下圖顯示新的及更新 AWS Lambda 函數部署中的主要步驟。

![\[CodeDeploy 如何部署新的或更新的 AWS Lambda 函數。\]](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/images/deployment-process-lambda.png)


這些步驟包括：

1. 建立應用程式並為其命名，而其名稱需唯一識別您要部署的應用程式修訂。若要部署 Lambda 函數，請在建立應用程式時選擇 AWS Lambda 運算平台。CodeDeploy 會在部署期間使用此名稱，以確保其參考正確的部署元件，例如部署群組、部署組態和應用程式修訂版。如需詳細資訊，請參閱[使用 CodeDeploy 建立應用程式](applications-create.md)。

1. 指定部署群組的名稱來設定部署群組。

1. 選擇部署組態，以指定流量如何從原始 AWS Lambda 函數版本轉移到新的 Lambda 函數版本。如需詳細資訊，請參閱[使用 CodeDeploy 檢視部署組態詳細資訊](deployment-configurations-view-details.md)。

1. 將*應用程式規格檔案* (AppSpec 檔案） 上傳至 Amazon S3。AppSpec 檔案會指定用來驗證部署的 Lambda 函數版本和 Lambda 函數。如果您不想建立 AppSpec 檔案，您可以使用 YAML 或 JSON，直接在主控台中指定 Lambda 函數版本和 Lambda 部署驗證函數。如需詳細資訊，請參閱[使用 CodeDeploy 的應用程式修訂](application-revisions.md)。

1. 將應用程式修訂版部署至部署群組。 AWS CodeDeploy 部署您指定的 Lambda 函數修訂版。流量會使用您在建立應用程式時選擇的部署 AppSpec 檔案，轉移到 Lambda 函數修訂版。如需詳細資訊，請參閱[使用 CodeDeploy 建立部署](deployments-create.md)。

1. 檢查部署結果。如需詳細資訊，請參閱[監控 CodeDeploy 中的部署](monitoring.md)。

## 上傳您的應用程式修訂版
<a name="deployment-steps-uploading-your-app-lambda"></a>

將 AppSpec 檔案放在 Amazon S3 中，或直接輸入至主控台或 AWS CLI。如需詳細資訊，請參閱[CodeDeploy 應用程式規格 (AppSpec) 檔案](application-specification-files.md)。

## 建立您的應用程式和部署群組
<a name="deployment-steps-registering-app-deployment-groups-lambda"></a>

 AWS Lambda 運算平台上的 CodeDeploy 部署群組可識別一或多個 AppSpec 檔案的集合。每個 AppSpec 檔案都可以部署一個 Lambda 函數版本。部署群組也會定義未來部署的一組組態選項 (例如警示和轉返組態)。

## 部署您的應用程式修訂版
<a name="deployment-steps-deploy-lambda"></a>

現在您已準備好將 AppSpec 檔案中指定的函數修訂版部署至部署群組。您可以使用 CodeDeploy 主控台或 [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) 命令。您可以指定多個參數來控制部署 (包含修訂、部署群組和部署組態)。

## 更新您的應用程式
<a name="deployment-steps-updating-your-app-lambda"></a>

您可以更新應用程式，然後使用 CodeDeploy 主控台或呼叫 [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) 命令來推送修訂。

## 已停止和失敗的部署
<a name="deployment-stop-fail-lambda"></a>

您可以使用 CodeDeploy 主控台或 [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) 命令來停止部署。當您嘗試停止部署時，會發生下列三者之一：
+ 部署停止，而且操作傳回成功狀態。在此情況下，不需要在已停止部署的部署群組上執行其他部署生命週期事件。
+ 此部署不會立即停止，而且操作傳回擱置中狀態。在此情況下，一些部署生命週期事件可能仍然在部署群組上執行。擱置中操作完成之後，後續呼叫停止部署會傳回成功狀態。
+ 部署無法停止，而且操作傳回錯誤。如需詳細資訊，請參閱 AWS CodeDeploy API 參考中的 [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html) 和[常見錯誤](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html)。

失敗的部署可能導致已執行某些部署生命週期事件，就像已停止的部署一樣。若要了解部署失敗的原因，您可以使用 CodeDeploy 主控台，或從失敗的部署分析日誌檔案資料。如需詳細資訊，請參閱[應用程式修訂和日誌檔案清除](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup)及[檢視 CodeDeploy EC2/現場部署的日誌資料](deployments-view-logs.md)。

## 重新部署和部署轉返
<a name="deployment-rollback-lambda"></a>

CodeDeploy 透過將先前部署的修訂重新部署為新部署來實作轉返。

您可以設定部署群組以在符合特定條件時自動轉返部署 (包含部署失敗或符合警示監控閾值時)。您也可以覆寫針對個別部署中部署群組所指定的轉返設定。

您也可以手動重新部署先前部署的修訂，以選擇轉返失敗部署。

在所有情況下，新的或轉返的部署會獲指派其專屬部署 ID。您可以在 CodeDeploy 主控台中檢視的部署清單會顯示哪些是自動部署的結果。

如需詳細資訊，請參閱[使用 CodeDeploy 重新部署以及復原部署](deployments-rollback-and-redeploy.md)。