

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

# 無伺服器應用程式入門
<a name="sam-get-started"></a>

下列各節說明如何使用 AWS Serverless Application Model (AWS SAM) 和 CloudFormation 堆疊 AWS Toolkit for Visual Studio Code，從 AWS 無伺服器應用程式 開始建立 。

## 先決條件
<a name="serverless-apps-assumptions"></a>

您必須先完成下列先決條件 AWS 無伺服器應用程式，才能建立或使用 。

**注意**  
下列操作可能需要您在變更完成之前結束或重新啟動 VS 程式碼。
+ 安裝 AWS SAM 命令列界面 (CLI)。如需如何安裝 CLI AWS SAM 的其他資訊和指示，請參閱本*AWS Serverless Application Model 使用者指南*中的[安裝 AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) 主題。
+ 從您的 AWS 組態檔案中，識別您的預設 AWS 區域。如需組態檔案的詳細資訊，請參閱*AWS Command Line Interface 《 使用者指南*》中的[組態和登入資料檔案設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)主題。
+ 安裝您的語言 SDK 並設定您的工具鏈。如需如何從 設定工具鏈的其他資訊， AWS Toolkit for Visual Studio Code 請參閱《 使用者指南》中的[設定工具鏈](setup-toolchain.md)主題。
+ 從 VS Code Marketplace 安裝 [YAML 語言支援擴充](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml)功能。這是 AWS SAM 範本檔案的 CodeLens 功能可以存取的必要項目。如需 CodeLens 的其他資訊，請參閱 VS Code 文件中的 [CodeLens](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#codelens-show-actionable-context-information-within-source-code) 一節 

## 無伺服器應用程式的 IAM 許可
<a name="serverless-apps-permissions"></a>

在 Toolkit for VS Code 中，您必須擁有憑證設定檔，其中包含部署和執行無伺服器應用程式所需的 AWS Identity and Access Management (IAM) 許可。您必須擁有下列服務的適當讀取/寫入存取權：IAM CloudFormation、Lambda、Amazon API Gateway、Amazon Simple Storage Service (Amazon S3) 和 Amazon Elastic Container Registry (Amazon ECR)。

如需設定部署和執行無伺服器應用程式所需的身分驗證的詳細資訊，請參閱《 *AWS Serverless Application Model 開發人員指南*》中的[管理資源存取和許可](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-permissions.html)。如需如何設定登入資料的資訊，請參閱本使用者指南[AWS IAM 登入資料](setup-credentials.md)中的 。

## 建立新的無伺服器應用程式 （本機）
<a name="serverless-apps-create"></a>

此程序說明如何使用 Toolkit for VS Code 建立無伺服器應用程式 AWS SAM。此程序的輸出是開發主機上的本機目錄，其中包含範例無伺服器應用程式，您可以建置、本機測試、修改和部署至 AWS 雲端。<a name="serverless-apps-create-proc"></a>

1. 若要開啟**命令調色盤**，請選擇**檢視**、**命令調色盤**，然後輸入 **AWS**。

1. 選擇 **AWS Toolkit Create Lambda SAM 應用程式**。  
![命令面板對話方塊。](http://docs.aws.amazon.com/zh_tw/toolkit-for-vscode/latest/userguide/images/sam-create-app-cmdlet-updated.png)
**注意**  
如果未安裝 AWS SAM CLI，您會在 VS Code 編輯器的右下角收到錯誤。如果發生這種情況，請確認您已符合所有[假設和先決條件](#serverless-apps-assumptions)。

1. 選擇 AWS SAM 應用程式的執行時間。
**注意**  
如果您選取了包含「(Image)」的執行時間，您的應用程式就是 `Image` 套件類型。如果您選取了不包含「(Image)」的執行時間，您的應用程式就是 `Zip` 類型。如需詳細了解 `Image` 和 `Zip` 套件類型的差異，請參閱 *AWS Lambda 開發人員指南*中的 [Lambda 部署套件](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)。

1. 根據您選取的執行時間，您可能需要為 SAM 應用程式選取相依性管理員和執行時間架構。

------
#### [ Dependency Manager ]

   選擇 **Gradle** 或 **Maven**。

**注意**  
此建置自動化工具選擇僅適用於 Java 執行期。

------
#### [ Architecture ]

   選擇 **x86\_64** 或 **arm64**。

   在 ARM64-based 型模擬環境中執行無伺服器應用程式的選項，而非預設的 x86\_64 型環境，可用於下列執行時間：
   + nodejs12.x (ZIP 和映像）
   + nodejs14.x (ZIP 和映像）
   + python3.8 (ZIP 和映像）
   + python3.9 (ZIP 和映像）
   + python3.10 (ZIP 和映像）
   + python3.11 (ZIP 和映像）
   + python3.12 (ZIP 和映像）
   + java8.al2 搭配 Gradle (ZIP 和映像）
   + java8.al2 搭配 Maven （僅限 ZIP)
   + java11 搭配 Gradle (ZIP 和映像）
   + java11 搭配 Maven （僅限 ZIP)

**重要**  
您必須安裝 1 AWS CLI .33.0 版或更新版本，才能允許應用程式在ARM64-based環境中執行。如需詳細資訊，請參閱[先決條件](setup-toolkit.md#setup-prereq)。

------

1. 您可以選擇新專案的位置。如果現有工作空間已開啟，您可以使用此工作空間。**選擇已存在的不同資料夾**，或建立新資料夾並選取之。在此範例中，請選擇 **There are no workspace folders open (無工作空間資料夾開啟)**，以建立名為 `MY-SAM-APP` 的資料夾。

1. 輸入新專案的名稱。在此範例中，使用 `my-sam-app-nodejs`。按 **Enter** 後， Toolkit for VS Code 需要一些時間來建立專案。

建立專案時，隨即將您的應用程式新增到目前的工作空間。您應會在 **Explorer** 視窗中看到它。

## 開啟無伺服器應用程式 （本機）
<a name="serverless-apps-open"></a>

若要在本機開發主機上開啟無伺服器應用程式，請開啟包含應用程式範本檔案的資料夾。

1. 從 **檔案**中，選擇**開啟資料夾...**。

1. 在**開啟資料夾**對話方塊中，導覽至您要開啟的無伺服器應用程式資料夾。

1. 選擇**選取資料夾**按鈕。

當您開啟應用程式的資料夾時，它會新增至 **Explorer** 視窗。

## 從範本執行和偵錯無伺服器應用程式 （本機）
<a name="serverless-apps-debug"></a>

您可以使用 Toolkit for VS Code 來設定如何偵錯無伺服器應用程式，並在開發環境中於本機執行這些應用程式。

您可以使用 VS [CodeLens](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#codelens-show-actionable-context-information-within-source-code) 功能來識別合格的 Lambda 函數，以開始設定偵錯行為。CodeLens 可讓您與原始程式碼進行內容感知互動。如需確保您可存取 CodeLens 功能的相關資訊，請參閱本主題稍早的[先決條件](#serverless-apps-assumptions)一節。

**注意**  
在此範例中，您會偵錯使用 JavaScript 的應用程式。不過，您可以使用 Toolkit for VS 程式碼偵錯功能搭配下列語言和執行時間：  
C\# – .NET Core 2.1、3.1；.NET 5.0
JavaScript/TypeScript – Node.js 12.*x*、14.*x*
Python – 3.6、3.7、3.8、3.9、3.10、3.11、3.12
Java – 8、8.al2、11
Go – 1.x
您的語言選擇也會影響 CodeLens 偵測合格 Lambda 處理常式的方式。如需詳細資訊，請參閱[直接從程式碼執行和偵錯 Lambda 函數](serverless-apps-run-debug-no-template.md)。

在此程序中，您會使用本主題先前[建立新的無伺服器應用程式 （本機）](#serverless-apps-create)章節中建立的範例應用程式。

1. 若要在 VS Code 的檔案總管中檢視應用程式檔案，請選擇**檢視**、**總管**。

1. 從應用程式資料夾 (例如 *my-sample-app*) 中開啟 `template.yaml` 檔案。
**注意**  
如果您使用的名稱與 不同的範本`template.yaml`，則不會自動在 YAML 檔案中使用 CodeLens 指標。這表示您必須手動新增偵錯組態。

1. 在 的編輯器中`template.yaml`，前往定義無伺服器資源之範本的 `Resources`區段。在此情況下，這是類型 `HelloWorldFunction`的資源`AWS::Serverless::Function`。

   在此資源的 CodeLens 指示器中，選擇**新增偵錯組態**。  
![使用 template.yaml 檔案中的 CodeLens 指標來新增偵錯組態。](http://docs.aws.amazon.com/zh_tw/toolkit-for-vscode/latest/userguide/images/yaml_template_debug.png)

1. 在**命令面板**中，選取應用程式 AWS SAM 將在其中執行的執行時間。

1. 在 `launch.json` 檔案的編輯器中編輯或確認下列組態屬性的值：
   + `"name"` – 輸入方便識讀的名稱，讓它顯示在 **Run** (執行) 檢視的 **Configuration** (組態) 下拉式欄位中。
   + `"target"` – 確定值為 ，`"template"`讓 AWS SAM 範本成為偵錯工作階段的進入點。
   + `"templatePath"` – 輸入 `template.yaml` 檔案的相對或絕對路徑。
   + `"logicalId"` – 確定名稱符合 AWS SAM 範本**的資源**區段中指定的名稱。在此例中，此名稱為 `AWS::Serverless::Function` 類型的 `HelloWorldFunction`。  
![設定 launch.json 檔案以進行以範本為基礎的偵錯。](http://docs.aws.amazon.com/zh_tw/toolkit-for-vscode/latest/userguide/images/template_based_config_updated.png)

   如需詳細了解 `launch.json` 檔案中的上述與其他項目，請參閱 [除錯無伺服器應用程式的組態選項](serverless-apps-run-debug-config-ref.md)。

1. 如果您認為除錯組態沒有問題，請儲存 `launch.json`。然後，若要開始偵錯，請在 **RUN** 檢視中選擇綠色「播放」按鈕。

   當除錯工作階段啟動時，**DEBUG CONSOLE** (除錯主控台) 面板會顯示除錯輸出，並顯示 Lambda 函式傳回的任何值。（偵錯 AWS SAM 應用程式時，會在**輸出**面板中選取 **AWS Toolkit** 做為**輸出**通道。)

## 同步 AWS SAM 應用程式
<a name="serverless-apps-deploy"></a>

會 AWS Toolkit for Visual Studio Code 執行 AWS SAM CLI 命令`sam sync`，將您的無伺服器應用程式部署到 AWS 雲端。如需 AWS SAM 同步的詳細資訊，請參閱《 *AWS Serverless Application Model 開發人員指南*》中的 [AWS SAM CLI 命令參考](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html)主題

下列程序說明如何`sam sync`從 Toolkit for VS Code AWS 雲端 使用 將無伺服器應用程式部署至 。

1. 從 VS Code 的主選單中，展開**檢視**並選擇**命令調色盤**，以開啟**命令調色盤**。

1. 從**命令調色盤**搜尋 **AWS** ，然後選擇**同步 SAM 應用程式**以開始設定同步。  
![用於同步無伺服器應用程式的命令。](http://docs.aws.amazon.com/zh_tw/toolkit-for-vscode/latest/userguide/images/samsync032023.png)

1. 選擇要同步無伺服器應用程式的 AWS 區域。

1. 選擇要用於部署的 `template.yaml` 檔案。

1. 選取現有的 Amazon S3 儲存貯體，或輸入要部署應用程式的新 Amazon S3 儲存貯體名稱。
**重要**  
您的 Amazon S3 儲存貯體必須符合下列要求：  
儲存貯體必須位於您要同步的區域。
在現有的所有 Amazon S3 儲存貯體名稱中，該 Amazon S3 儲存貯體名稱必須為全域唯一。

1. 如果您的無伺服器應用程式含有套件類型為 `Image` 的函式，請輸入此部署可以使用的 Amazon ECR 儲存庫名稱。儲存庫必須位於您要部署檔案的區域。

1. 從先前的部署清單中選擇部署堆疊，或建立新的部署堆疊以輸入新的堆疊名稱。然後，繼續開始同步程序。
**注意**  
每個工作區和區域會回收先前部署中使用的堆疊。

1. 在同步程序期間，您的部署狀態會在 VS 程式碼的**終端機**索引標籤中擷取。確認您的同步已從終端機索引標籤成功，如果發生錯誤，您會收到通知。  
![部署無伺服器應用程式時發生錯誤快顯視窗。](http://docs.aws.amazon.com/zh_tw/toolkit-for-vscode/latest/userguide/images/sam-deploy-error.png)
**注意**  
如需有關同步的其他詳細資訊，可從 **命令面板**存取 AWS Toolkit for Visual Studio Code 日誌。

   若要從命令調色盤存取 AWS Toolkit for Visual Studio Code 日誌，請展開**檢視**，選擇**命令調色盤**，然後搜尋 **AWS: View AWS Toolkits Logs**，然後在填入清單中時選取它。

部署完成時，您會在 **AWS Explorer** 中看到您的應用程式。如需如何叫用在應用程式中建立的 Lambda 函數的詳細資訊，請參閱本使用者指南中的 [使用 AWS Lambda 函數](remote-lambda.md)主題。

## 從 刪除無伺服器應用程式 AWS 雲端
<a name="serverless-apps-delete"></a>

刪除無伺服器應用程式涉及刪除您先前部署到 AWS 雲端的 CloudFormation 堆疊。請注意，此程序不會從本機主機刪除應用程式目錄。

1. 開啟 [AWS Explorer](aws-explorer.md)。

1. 在 **AWS Toolkit Explorer** 視窗中，展開包含您要刪除之已部署應用程式的 區域，然後展開 **CloudFormation**。

1. 開啟對應至您要刪除之無伺服器應用程式之 CloudFormation 堆疊名稱的內容 （按一下滑鼠右鍵） 選單，然後選擇**刪除 CloudFormation 堆疊**。

1. 若要確認要刪除選取的堆疊，請選擇**是**。

如果堆疊刪除成功， Toolkit for VS Code 會從 **AWS Explorer** 的 CloudFormation 清單中移除堆疊名稱。