

# 透過 AWS Toolkit for JetBrains 使用 AWS 無伺服器應用程式
AWS Serverless

下列主題說明如何使用 AWS Toolkit for JetBrains 來使用 AWS 帳戶中的 AWS 無伺服器應用程式。

**Topics**
+ [建立應用程式](deploy-serverless-app.md)
+ [同步應用程式](sam-sync.md)
+ [變更 (更新) 應用程式設定](sam-update.md)
+ [刪除應用程式](sam-delete.md)

# 使用 AWS Toolkit for JetBrains 建立 AWS 無伺服器應用程式
建立應用程式

若要完成此程序，您必須先安裝 AWS 工具組，若尚未執行，請先首次連線到 AWS 帳戶。然後在 IntelliJ IDEA、PyCharm、WebStorm 或 JetBrains Rider 執行中的狀態下，執行以下操作。

1. 在 IntelliJ IDEA、PyCharm、WebStorm 或 JetBrains Rider 執行中的狀態下，執行以下其中一項操作：
   + 如果是 IntelliJ IDEA 或 WebStorm ，請選擇**檔案**、**新增**、**專案**。
   + 如果是 PyCharm，請選擇**檔案**、**新增專案**。
   + 如果是 JetBrains Rider，請為新解決方案選擇**檔案**、**新增**。或是以滑鼠右鍵在 **Explorer (總管)** 工具視窗中按一下現有的解決方案，然後選擇 **Add (新增)**、**New Project (新增專案)**。

1. 如果是 IntelliJ IDEA，請選擇 **AWS**、**AWS 無伺服器應用程式**，然後選擇**下一步**。  
![\[選擇在 IntelliJ IDEA 中建立 AWS 無伺服器應用程式\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/sam-create-intellij.png)

   如果是 PyCharm，請選擇 **AWS 無伺服器應用程式**。  
![\[選擇在 PyCharm 中建立 AWS 無伺服器應用程式\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/sam-create-pycharm.png)

   如果是 WebStorm ，請選擇 **AWS 無伺服器應用程式**。  
![\[選擇在 WebStorm 中建立 AWS 無伺服器應用程式\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/sam-create-webstorm.png)

   如果是 JetBrains Rider，請選擇 **AWS 無伺服器應用程式**。  
![\[選擇在 JetBrains Rider 中建立 AWS 無伺服器應用程式\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/sam-create-rider.png)

1. 完成[「新增專案」對話方塊 (或是 JetBrains Rider 中的「新增解決方案」對話方塊)](new-project-dialog.md)，然後選擇**完成** (適用於 IntelliJ IDEA) 或**建立** (適用於 PyCharm、WebStorm 或 JetBrains Rider)。AWS Toolkit for JetBrains 會建立專案並將無伺服器應用程式的程式碼檔案新增到新專案。

1. 如果您正在使用 IntelliJ IDEA，請在**專案**工具視窗已開啟並顯示包含無伺服器應用程式檔案專案的情況下，執行以下其中一項作業：
   + 針對 Maven 類型的專案，請以滑鼠右鍵按一下專案的 `pom.xml` 檔案，然後選擇 **Add as Maven Project (做為 Maven 專案新增)**。  
![\[選擇將 POM 檔案做為 Maven 專案新增\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/add-as-maven-project.png)
   + 針對 Gradle 類型的專案，請以滑鼠右鍵按一下專案的 `build.gradle` 檔案，然後選擇 **Import Gradle Project (匯入 Gradle 專案)**。  
![\[選擇匯入 Gradle 專案\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/import-gradle-project.png)

     完成 **Import Module from Gradle (從 Gradle 匯入模組)** 對話方塊，然後選擇 **OK (確定)**。

在您建立無伺服器應用程式後，您可以執行 (調用) 或偵錯包含在應用程式中的 AWS Lambda 函數本機版本。

您也可以部署無伺服器應用程式。部署應用程式後，您可以執行 (調用) 部署應用程式的 Lambda 函數遠端版本。

# 從 AWS Toolkit for JetBrains 同步 AWS SAM 應用程式
同步應用程式

AWS Serverless Application Model (AWS SAM) `sam sync` 是一個 AWS SAM CLI 命令部署程序，可自動識別對無伺服器應用程式所做的變更，然後選擇建置這些變更並部署到 AWS 雲端 的最佳方式。如果您只在不變更基礎架構的情況下變更應用程式的程式碼，AWS SAM Sync 會更新您的應用程式，而不會重新部署 CloudFormation 堆疊。

如需 `sam sync` 和 AWS SAM CLI 的詳細資訊，請參閱**《AWS Serverless Application Model 使用者指南》中的 [AWS SAM CLI 命令列參考](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html)。

下列各節說明如何開始使用 AWS SAM Sync。

## 先決條件


必須符合下列先決條件才能使用 AWS SAM Sync：
+ 有一個運作中的 AWS SAM 應用程式。如需建立 AWS SAM 應用程式的詳細資訊，請參閱本使用指南中的[使用 AWS SAM](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-sam-create) 主題。
+ 您必須安裝 AWS SAM CLI 的 1.78.0 或更新版本。如需安裝 AWS SAM CLI 的詳細資訊，請參閱《AWS Serverless Application Model 使用者指南》**中的[安裝 AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)。
+ 應用程式是在開發環境中執行。

**注意**  
若要同步和部署的無伺服器應用程式包含具有任何非預設屬性的 AWS Lambda 函數，部署之前必須在與 AWS Lambda 函數相關聯的 AWS SAM 範本檔中設定選用屬性。  
若要進一步了解 AWS Lambda 屬性，請參閱 GitHub 上《AWS Serverless Application Model 使用者指南》**中的 [AWS::Serverless::Function](https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) 一節。

## 入門


若要開始使用 AWS SAM Sync，請完成下列程序。

**注意**  
確定您的 AWS 區域設定為與您的無伺服器應用程式相關聯的位置。  
若要進一步了解如何從 AWS Toolkit for JetBrains 變更 AWS 區域，請參閱本使用指南中的[在 AWS 區域之間切換](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-switch-region)主題。

1. 在**專案**工具視窗中，從您的無伺服器應用程式專案開啟 `template.yaml` 檔案的內容選單 (按右鍵)。

1. 在 `template.yaml` 內容選單中，選擇**同步無伺服器應用程式 (之前稱為部署)**，開啟**確認開發堆疊**對話方塊。

1. 確認您正使用開發堆疊開啟**同步無伺服器應用程式**對話方塊。  
![\[「確認開發堆疊」對話方塊\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/sam-sync-dev-stack.png)

1. 完成**同步無伺服器應用程式**對話方塊中的步驟，然後選擇**同步**即可開始 AWS SAM Sync 處理程序。若要進一步了解**同步無伺服器應用程式**對話方塊，請參閱下文的「[「同步化無伺服器應用程式」對話方塊](#sam-sync-serverless-app-dialog)」一節。

1. 在同步程序期間，AWS Toolkit for JetBrains **執行視窗**會更新部署狀態。

1. 成功同步後，CloudFormation 堆疊名稱會新增到 **AWS Explorer** 中。

   如果同步失敗，可在 JetBrains **執行視窗**或 CloudFormation **事件日誌**中查看疑難排解詳細資訊。若要進一步了解如何檢視 CloudFormation 事件日誌，請參閱本使用指南中的[檢視堆疊的事件日誌](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-cloudformation-logs)主題。

## 「同步化無伺服器應用程式」對話方塊


**「同步化無伺服器應用程式」對話方塊**可協助您執行 AWS SAM 同步程序。以下各節提供不同對話方塊元件的描述和詳細資料。

### 建立堆疊或更新堆疊


**必要：**若要建立新的部署堆疊，請在提供的欄位中輸入名稱，以建立並設定無伺服器應用程式部署的 CloudFormation 堆疊。

或者，若要部署到現有 CloudFormation 堆疊，請從與 AWS 帳戶相關聯的自動填入堆疊清單中選擇堆疊名稱。

### 範本參數


**選用：**填入從您的專案 `template.yaml` 檔案偵測到的參數清單。若要指定參數值，請在**值**欄中提供的文字欄位中輸入新的參數值。

### S3 儲存貯體


**必要：**若要選擇現有的 Amazon Simple Storage Service (Amazon S3) 儲存貯體來儲存 CloudFormation 範本，請從清單中選取。

若要建立和使用新的 Amazon S3 儲存貯體來儲存，請選擇**建立**並按照提示進行操作。

### ECR 儲存庫


**必要，只有在使用 Image 套件類型時才可會顯示：**選擇現有 Amazon Elastic Container Registry (Amazon ECR) 儲存庫 URI，以部署無伺服器應用程式。

如需 AWS Lambda 套件類型的詳細資訊，請參閱《AWS Lambda 開發人員指南》**中的 [Lambda 部署套件](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)。

### CloudFormation 功能


**必要：**選擇 CloudFormation 允許在建立堆疊時使用的功能。

### Tags (標籤)


**選用：**在提供的文字欄位中輸入您偏好的標籤以標記參數。

### 在容器內建置函數


**選用，對 Docker 為必要：**若選取此選項，系統會在部署之前於本機 Docker 容器內建置無伺服器應用程式功能。當函數依賴包含原生編譯相依性或程式的套件時，此選項相當實用。

如需詳細資訊，請參閱《AWS Serverless Application Model 開發人員指南》**中的[建置應用程式](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)主題。

# 透過 AWS Toolkit for JetBrains 變更 (更新) AWS 無伺服器應用程式設定
變更 (更新) 應用程式設定

您必須先部署要變更的 AWS 無伺服器應用程式 (若尚未部署的話)。
**注意**  
如要部署包含 AWS Lambda 函數的無伺服器應用程式，並使用任何非預設或選用屬性在本機部署該函數，您必須先在函數的對應 AWS SAM 範本檔案 (例如專案中名為 `template.yaml` 的檔案) 中設定這些屬性。如需可用屬性的清單，請參閱 GitHub 上 [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) 儲存庫中的 [AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction)。

1. 在 **Project (專案)** 工具視窗已開啟並顯示包含無伺服器應用程式檔案專案的情況下，開啟專案的 `template.yaml` 檔案。變更檔案的內容以反映新設定，然後儲存並關閉檔案。

1. 如果您需要切換到不同的 AWS 區域以部署無伺服器應用程式到該區域，請現在進行。

1. 以滑鼠右鍵按一下專案的 `template.yaml` 檔案，然後選擇 **Deploy Serverless Application (部署無伺服器應用程式)**。  
![\[選擇 Deploy Serverless Application (部署無伺服器應用程式) 命令\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/deploy-serverless-application.png)

1. 完成 [Deploy Serverless Application (部署無伺服器應用程式)](deploy-serverless-application-dialog.md) 對話方塊，然後選擇 **Deploy (部署)**。AWS Toolkit for JetBrains 會為部署更新對應的 AWS CloudFormation 堆疊。

   如果部署失敗，您可以檢視堆疊的事件日誌，來嘗試判斷原因。

# 透過 AWS Toolkit for JetBrains 刪除 AWS 無伺服器應用程式
刪除應用程式

您必須先部署 AWS 無伺服器應用程式才能將其刪除。

1. 開啟 AWS Explorer (如尚未開啟的話)。如果您需要切換到包含無伺服器應用程式的不同 AWS 區域，請現在進行。

1. 展開 **CloudFormation**。

1. 以滑鼠右鍵按一下包含您要刪除無伺服器應用程式的 AWS CloudFormation 堆疊，然後選擇 **Delete CloudFormation Stack (刪除 CloudFormation 堆疊)**。  
![\[在 AWS Explorer 中開始選擇刪除 AWS 無伺服器應用程式的 AWS CloudFormation 堆疊\]](http://docs.aws.amazon.com/zh_tw/toolkit-for-jetbrains/latest/userguide/images/sam-delete.png)

1. 輸入堆疊的名稱以確認刪除，然後選擇 **OK (確定)**。如果堆疊刪除成功，AWS Toolkit for JetBrains 會從 **AWS Explorer** 的 **CloudFormation** 清單中移除堆疊名稱。如果刪除堆疊失敗，您可以檢視堆疊的事件日誌，來嘗試判斷原因。