

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

# 教學課程：使用 CodePipeline 進行 Lambda 函數部署
<a name="tutorials-lambda-deploy"></a>

本教學課程可協助您在 CodePipeline 中建立部署動作，將您的程式碼部署到您在 Lambda 中設定的函數。您將建立範例 Lambda 函數，其中您將建立別名和版本、將壓縮的 Lambda 函數新增至來源位置，並在管道中執行 Lambda 動作。

**注意**  
在主控台中建立管道時，CodePipeline 將使用 S3 成品儲存貯體做為成品。（這與用於 S3 來源動作的 儲存貯體不同。) 如果 S3 成品儲存貯體位於與管道帳戶不同的帳戶中，請確定 S3 成品儲存貯體由 所擁有 AWS 帳戶 ，安全且可靠。

**注意**  
部署動作僅適用於 V2 `Lambda` 類型管道。

## 先決條件
<a name="tutorials-lambda-deploy-prereqs"></a>

您必須先有幾個資源，才能使用此教學來建立 CD 管道。以下是在開始使用前需準備的事項：

**注意**  
所有這些資源都應在相同區域內建立 AWS 。
+ 來源控制儲存庫，例如 GitHub 或來源 S3 儲存貯體 （本教學課程使用 S3)，您將在其中存放為 Lambda 函數建立`.zip`的檔案。
+ 您必須使用已透過此動作許可更新的現有 CodePipeline 服務角色。若要更新您的服務角色，請參閱 [Lambda 部署動作的服務角色政策許可](action-reference-LambdaDeploy.md#action-reference-LambdaDeploy-permissions-action)。

滿足這些先決條件之後，即可繼續教學並建立 CD 管道。

## 步驟 1：建立範例 Lambda 函數
<a name="tutorials-lambda-deploy-instances"></a>

在此步驟中，您會建立您要部署的 Lambda 函數。

**建立 Lambda 函數**

1. 存取 Lambda 主控台，並依照下列教學課程中的步驟建立範例 Lambda 函數：連結。

1. 從頂端導覽中，選擇**建立**，然後從頁面頂端選取**從頭開始**。

1. 在**名稱**中，輸入 **MyLambdaFunction**。

1. 發佈新版本。這將是別名將指向的版本。

   1. 選取您的 函數。

   1. 選擇**動作**下拉式清單。

   1. 選擇 **Publish new version (發佈新版本)**。

   1. （選用） 將 新增至**描述**中的描述。

   1. 選擇**發布**。

1. 為您的函數建立別名，例如 `aliasV1`。

1. 請確定別名指向您剛建立的版本 （例如 1)。
**注意**  
如果您選擇 \$1LATEST，則無法使用流量轉移功能，因為 Lambda 不支援指向超過 1 個版本的別名 \$1LATEST。

## 步驟 2：將函數檔案上傳至您的儲存庫
<a name="tutorials-lambda-deploy-file"></a>

下載函數並將其儲存為 zip 檔案。使用下列步驟將壓縮檔案上傳至 S3 儲存貯體。

**將 `.zip` 檔案新增至來源儲存庫**

1. 開啟 S3 儲存貯體。

1. 選擇**上傳**。

1. 將包含 檔案的 zip `sample_lambda_source.zip` 檔案上傳至來源儲存貯體。

   記下路徑。

   ```
   object key
   ```

## 步驟 3：建立管道
<a name="tutorials-lambda-deploy-pipeline"></a>

使用 CodePipeline 精靈建立管道階段並連接來源儲存庫。

**建立管道**

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

1. 在 **Welcome (歡迎)** 頁面、**Getting started (入門)** 頁面、或者 **Pipelines (管道)** 頁面上，選擇 **Create pipeline (建立管道)**。

1. 在**步驟 1：選擇建立選項**頁面的**建立選項**下，選擇**建置自訂管道**選項。選擇**下一步**。

1. 在**步驟 2：選擇管道設定**中，在**管道名稱**中輸入 **MyPipeline**。

1. CodePipeline 提供 V1 和 V2 類型的管道，其特性和價格有所不同。V2 類型是您可以在 主控台中選擇的唯一類型。如需詳細資訊，請參閱[管道類型](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel)。如需 CodePipeline 定價的資訊，請參閱 [定價](https://aws.amazon.com/codepipeline/pricing/)。

1. 在**服務角色**中，選擇**使用現有的服務角色**，然後選擇已更新此動作所需許可的 CodePipeline 服務角色。若要為此動作設定 CodePipeline 服務角色，請參閱 [Lambda 部署動作的服務角色政策許可](action-reference-LambdaDeploy.md#action-reference-LambdaDeploy-permissions-action)。

1. 將 **Advanced settings (進階設定)** 下的設定保留為預設值，然後選擇 **Next (下一步)**。

1. 在**步驟 3：新增來源階段**頁面上，新增來源階段：

   1. 在**來源提供者**中，選擇 **Amazon S3**。

   1. 在**物件金鑰**中，新增 .zip 檔案的名稱，包括副檔名，例如 `sample_lambda_source.zip`。

      

   選擇**下一步**。

1. 在**步驟 4：新增建置階段**頁面上，選擇**略過**。

1. 在**步驟 5：新增測試階段**頁面上，選擇**略過**。

1. 在**步驟 6：新增部署階段**頁面上，選擇 **Lambda**。  
![\[\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/lambdadeploy-edit-screen.png)

   1. 新增您的函數名稱和別名。

   1. 選擇您的部署策略。

   1. 選擇**下一步**。

1. 在**步驟 7：檢閱**頁面上，檢閱管道組態，然後選擇**建立管道**以建立管道。  
![\[\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/lambdadeploy-pipeline-screen.png)

## 步驟 4：測試管道
<a name="tutorials-lambda-deploy-test"></a>

您的管道應具備執行end-to-end原生 AWS 持續部署所需的一切。現在，將程式碼變更推送至來源儲存庫，以測試其功能。

**測試管道**

1. 對設定的來源儲存庫進行程式碼變更、遞交並推送變更。

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

1. 從清單中選擇管道。

1. 觀看管道階段的管道進度。您的管道應該完成，而且您的動作會部署到您的 Lambda 函數。

## 進一步了解
<a name="tutorials-lambda-deploy-learn"></a>

Lambda 部署動作允許兩種部署方法。一種方法是單獨轉移流量，而沒有來源動作的輸入成品。另一種方法是使用來源動作的輸入成品更新函數程式碼，然後根據更新的程式碼發佈新版本。對於第二個方法，如果提供別名，CodePipeline 也會執行流量轉移。本 Lambda 部署動作教學課程示範如何使用來源成品更新函數。

若要進一步了解 動作，請參閱 的動作參考頁面[AWS Lambda 部署動作參考](action-reference-LambdaDeploy.md)。