

 AWS Cloud9 不再提供給新客戶。 AWS Cloud9 的現有客戶可以繼續正常使用該服務。[進一步了解](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# 使用 AWS Toolkit 使用 AWS Lambda 函數
<a name="lambda-toolkit"></a>

Toolkit AWS 支援 [AWS Lambda](https://aws.amazon.com/lambda/)函數。Toolkit 會 AWS 取代先前由 Lambda 外掛程式提供的功能 AWS Cloud9。您可以使用 AWS Toolkit，為屬於[無伺服器應用程式的](https://aws.amazon.com/serverless/) Lambda 函數撰寫程式碼。此外，您可以在本機或 AWS上叫用 Lambda 函式。

Lambda 是一種完整受管的運算服務，可執行程式碼回應自訂程式碼所產生的事件，或執行來自各種 AWS 服務的程式碼。其中包括 Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、Amazon Kinesis、Amazon Simple Notification Service (Amazon SNS) 和 Amazon Cognito。

**重要**  
如果您想要建置 Lambda 應用程式來使用無伺服器應用模型 (SAM) 所提供的資源，請參閱 [AWS SAM 使用 AWS Toolkit 使用](serverless-apps-toolkit.md)。

**Topics**
+ [叫用遠端 Lambda 函式](#remote-lambda)
+ [下載、上傳並刪除 Lambda 函式](#import-upload-delete-lambda)

## 叫用遠端 Lambda 函式
<a name="remote-lambda"></a>

您可以使用 AWS Toolkit 以各種方式與 [AWS Lambda](https://aws.amazon.com/lambda/) 函數互動。

如需有關 Lambda 的詳細資訊，請參閱 [AWS Lambda 開發人員指南](https://docs.aws.amazon.com/lambda/latest/dg/)。

**注意**  
假設您已使用 AWS 管理主控台 或 以其他方式建立 Lambda 函數。您可以從 AWS Toolkit 叫用它們。若要使用可部署的 AWS Toolkit 建立新函數 AWS Lambda，您必須先[建立無伺服器應用程式](serverless-apps-toolkit.md#sam-create)。

### 先決條件
<a name="remote-lambda-prereq"></a>
+ 請確定您在 中設定的登入資料包含 AWS Lambda 對服務的適當讀取/寫入存取權。如果在 **AWS Explorer** 的 **Lambda** 下方，您看到類似「Error loading Lambda resources」(載入 Lambda 資源時發生錯誤) 的訊息，請檢查與這些憑證連接的許可。您對這些許可所做的變更需要幾分鐘的時間才會在 AWS Toolkit 中對 **AWS Explorer** 生效。

### 叫用 Lambda 函式
<a name="invoke-lam-func"></a>

**重要**  
使用 AWS Toolkit 呼叫 API 方法可能會導致無法復原的資源變更。舉例來說，如果您叫用 `POST` 方法，只要呼叫成功，API 的資源就會更新。

您可以使用 AWS Toolkit 在 上叫用 Lambda AWS 函數。

****

1. 在 **AWS Explorer** 中，選擇您想要叫用的 Lambda 函式名稱，然後開啟其內容選單。

1. 選擇**調用。 AWS**

1. 在開啟的 **Invoke function** (叫用函式) 視窗中，針對 Lambda 函式所需的酬載選擇選項。(酬載是您想要提供給 Lambda 函式作為輸入的 JSON。) 您可以選擇 **Browse** (瀏覽) 來選取要當作酬載的檔案，或使用下拉式欄位來挑選酬載的範本。在本例中，Lambda 函數可能會以字串方式輸入，如文字方塊中所示。

選擇 **Invoke** (叫用) 來叫用 Lambda 並傳入酬載。

您可以在 AWS Lambda 索引標籤中看到 Lambda 函數的輸出。

## 下載、上傳並刪除 Lambda 函式
<a name="import-upload-delete-lambda"></a>

 AWS 工具組提供在 AWS Cloud9 IDE 中匯入和上傳 Lambda 函數的選項。

### 下載 Lambda 函式
<a name="w2aac28c32c13b5"></a>

透過下載 Lambda 函數，您也可以從 AWS 雲端下載描述函數的專案檔案，並在 IDE AWS Cloud9 中使用它們。

### 如何下載 Lambda 函式


1. 在 **AWS Explorer** 的 Lambda 節點下，開啟 (按一下右鍵) 函數的內容選單，然後選擇 **Download** (下載)。

1. 如果系統要求 **Select a workspace folder for your new project** (為新專案選取工作空間資料夾)，您可以執行以下其中一項操作：
   + 選擇建議的資料夾來建立與 Lambda 專案相同名稱的子資料夾。
   + 選擇 **Select a different folder** (選取其他資料夾) 開啟對話方塊，為您的專案子資料夾瀏覽並選取其他上層資料夾。

   IDE 會開啟新的編輯器視窗。

### 設定已下載的 Lambda 函式，以便對其執行和除錯
<a name="w2aac28c32c13b7"></a>

您必須在`launch.json` 檔案 中定義啟動組態，才能執行做為無伺服器應用程式的 Lambda 函數並對其偵錯。在 中建立的 Lambda 函數 AWS 管理主控台 可能不會包含在啟動組態中。因此，您可能需要手動新增。

### 若要將 Lambda 函式新增至啟動組態


1. 下載 Lambda 函數後，請開啟 **Environment** (環境) 視窗以檢視其資料夾和檔案。

1. 然後，請檢查您的 Lambda 函式是否包含在`/home/ec2-user/.c9/launch.json` 檔案內。如果沒有，請執行以下步驟將 CodeLens 連結新增至功能的程式碼：

   1. 開啟定義 Lambda 函數的原始程式碼檔案 (例如 `.js` 或 `.py` 檔案)。然後，檢查是否有 CodeLens 連結可供您用來將 lambda 函數新增至`launch.json`檔案。CodeLens 會顯示在功能上方，並且包含 `Add Debug Config` 連結。

   1. 請選擇 IDE 左側的 **Go** (前往)(放大鏡圖示)，然後輸入「sam hint」以顯示 `AWS: Toggle SAM hints in source files` 命令。選擇該命令以執行它。

   1. 關閉 Lambda 原始碼檔案，然後重新開啟它。

   1. 重新開啟檔案後，如果可在原始碼中使用 Codelens，請選擇 `Add Debug Config` 以新增啟動組態。

1. 在切換 SAM 提示選項後，若仍無法新增 CodeLens，請執行以下操作以新增啟動組態：

   1. 請選擇 IDE 左側的 **Go** (前往)(放大鏡圖示)，然後輸入「config」以顯示 `AWS: SAM Debug Configuration Editor` 命令。選擇該命令以執行它。

   1. **SAM Debug Configuration Editor** (SAM 除錯組態編輯工具) 會顯示。您可以使用此編輯器來定義啟動組態屬性。如需詳細資訊，請參閱 [使用 SAM 範本執行並除錯無伺服器應用程式](serverless-apps-toolkit.md#sam-run-debug-template) 中 [configuring launch properties](serverless-apps-toolkit.md#properties) 的步驟。
**注意**  
如果 Lambda 函數沒有 SAM 應用程式所需的 `template.yaml`，您就必須加以新增。如需詳細資訊，請參閱「[建立您的 AWS SAM 範本](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-lambda-sam-template.html)」。

   1. 在編輯器中輸入所需的組態資訊後，啟動組態就會新增至 **launch.json** 檔案。

定義了 Lambda 函數的啟動組態後，可以藉由以下操作來執行它：

1. 選擇 IDE 頂部 **Auto** (自動) 旁邊的箭頭，然後選取相關的啟動組態。

1. 然後選擇 **Run** (執行)。

### 上傳 Lambda 函式
<a name="w2aac28c32c13b9"></a>

您可以使用本機程式碼更新現有的 Lambda 函式。以這種方式更新程式碼不會使用 AWS Serverless Application Model CLI 進行部署，也不會建立 AWS CloudFormation 堆疊。如此一來，您可以使用 Lambda 支援的任何執行時間來上傳 Lambda 函數。

有多種使用 AWS Toolkit 上傳 Lambda 函數的介面選項。

#### 從 **Environment** (環境) 視窗或 **Command** (命令) 窗格上傳
<a name="upload-lambda-from-environment"></a>

1. 在您專案檔案的 **Environment** (環境) 視窗中，在您要上傳的 Lambda 應用程式的 `template.yaml` 上按一下右鍵開啟內容選單，然後選擇 **Upload Lambda** (上傳 Lambda)。

   或是，按下 **Ctrl\$1P** 開啟 **Go to Anything** (移至任何項目) 窗格，然後輸入「lambda」以存取 **AWS Upload Lambda** ( 上傳 Lambda) 命令。然後選取它以開始上傳程序。

1. 接著，選取 AWS 區域 您要上傳的 。

1. 現在選擇一個選項來上傳 Lambda 函式：

   **上傳 .zip 存檔**

   1. 從選單中選擇 **ZIP Archive** (ZIP 存檔)。

   1. 從檔案系統選擇 .zip AWS Cloud9 檔案，然後選擇**開啟**。

   **直接上傳目錄**

   1. 從選單中選擇 **Directory** (目錄)。

   1. 從 AWS Cloud9 檔案系統中選擇目錄，然後選擇**開啟**。

1. 指定用於處理事件的 Lambda 函式處理常式。當有人叫用您的函數時，Lambda 會執行此處理常式方法。
**注意**  
選擇 Lambda 函式時，您可以從顯示的列表中進行選擇。如果您不知道要選擇哪個函數，可以輸入 Toolkit 中提供的 Lambda 函數的 Amazon Resource Number (ARN)。

   出現一個對話框，詢問您是否要將此代碼作為 Lambda 函式的最新版本發佈。選擇 **Yes** (是) 以確認發佈。
**注意**  
您也可以透過上層資料夾的內容功能表上傳 Lambda 應用程式，方法是在資料夾上按一下滑鼠右鍵開啟，然後選取 **Upload Lambda** (上傳 Lambda)。系統會自動選取上層資料夾進行上傳。

#### 從 **AWS Explorer** 上傳
<a name="upload-lambda-from-explorer"></a>

1. 在 **AWS Explorer** 中，以滑鼠右鍵按一下您要匯入的 Lambda 函數名稱，開啟內容選單。

1. 選擇 **Upload Lambda** (上傳 Lambda)。

1. 從三個選項中選擇要用於上傳 Lambda 函式的方式。

   **上傳預先製作的 .zip 存檔**

   1. 從選單中選擇 **ZIP Archive** (ZIP 存檔)。

   1. 從檔案系統選擇 .zip AWS Cloud9 檔案，然後選擇**開啟**。

   1. 透過強制回應對話方塊確認上傳。這個動作會直接上傳 .zip 文件，並在部署後立即更新 Lambda。

   **直接上傳目錄**

   1. 從選單中選擇 **Directory** (目錄)。

   1. 從 AWS Cloud9 檔案系統選擇目錄，然後選擇**開啟**。

   1. 在系統提示建置目錄時選擇 **No** (否)。

   1. 透過強制回應對話方塊確認上傳。這個動作會直接上傳目錄，並在部署後立即更新 Lambda。

   **建置並上傳目錄**

   1. 從選單中選擇 **Directory** (目錄)。

   1. 從 AWS Cloud9 檔案系統選擇目錄，然後選擇**開啟**。

   1. 在系統提示建置目錄時選擇 **Yes** (是)。

   1. 透過強制回應對話方塊確認上傳。這會使用 CLI AWS SAM `sam build`命令在 目錄中建置程式碼，並在部署後立即更新 Lambda。

### 部署用於遠端存取的 Lambda 函式
<a name="w2aac28c32c13c11"></a>

您可將本機功能部署為無伺服器 SAM 應用程式，使其可供遠端使用。

### 若要將 Lambda 函式部署為 SAM 應用程式


1. 在 **AWS Explorer** 視窗中，以滑鼠右鍵按一下 **Lambda** 節點開啟內容選單，並選取 **Deploy SAM Application** (部署 SAM 應用程式)。

1. 在命令窗格中，選取 [YAML template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy.html) (YAML 範本)，其可將您的功能定義為無伺服器應用程式。

1. 接下來，選取要用於 Lambda 部署的 Amazon S3 儲存貯體。您也可以選擇建立用於部署的儲存貯體。

1. 現在輸入您要部署到的 CloudFormation 堆疊名稱。如果指定現有堆疊，則命令會更新該堆疊。如果指定新的堆疊，則命令會加以建立。

   輸入堆疊名稱後，Lambda 函式會開始部署為 SAM 應用程式。成功部署後，即可從遠端使用 SAM Lambda 應用程式。如此一來，您就可以從其他 AWS Cloud9 開發環境下載或叫用它。

如需從新開始建立 Lambda 函式，我們建議遵循 [使用 AWS Toolkit 建立無伺服器應用程式](serverless-apps-toolkit.md#create-serverless-app) 的步驟。

### 刪除 Lambda 函式
<a name="delete-lambda"></a>

您也可以使用同一個內容選單 (按一下右鍵) 刪除 Lambda 函數。

**警告**  
請勿使用此程序刪除與 [CloudFormation](https://docs.aws.amazon.com/cloudformation/) 相關聯的 Lambda 函數。例如，在本指南前述步驟中[建立無伺服器應用程式時](serverless-apps-toolkit.md#sam-create)建立的 Lambda 函數。這些函式必須透過 CloudFormation 堆疊刪除。

****

1. 在 **AWS Explorer** 中，選擇您要刪除的 Lambda 函數名稱，然後開啟 (按一下右鍵) 其內容選單。

1. 選擇 **刪除**。

1. 在出現的訊息中，選擇 **Yes** (是)，以確認刪除。

刪除函式後，該函數不會再列於 **AWS Explorer** 檢視中。