

# 從 AWS Toolkit for JetBrains 同步 AWS SAM 應用程式
<a name="sam-sync"></a>

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。

## 先決條件
<a name="w7aac13c40c11b9"></a>

必須符合下列先決條件才能使用 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) 一節。

## 入門
<a name="w7aac13c40c11c11"></a>

若要開始使用 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)主題。

## 「同步化無伺服器應用程式」對話方塊
<a name="sam-sync-serverless-app-dialog"></a>

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

### 建立堆疊或更新堆疊
<a name="w7aac13c40c11c13b5"></a>

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

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

### 範本參數
<a name="w7aac13c40c11c13b7"></a>

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

### S3 儲存貯體
<a name="w7aac13c40c11c13b9"></a>

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

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

### ECR 儲存庫
<a name="w7aac13c40c11c13c11"></a>

**必要，只有在使用 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 功能
<a name="w7aac13c40c11c13c13"></a>

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

### Tags (標籤)
<a name="w7aac13c40c11c13c15"></a>

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

### 在容器內建置函數
<a name="w7aac13c40c11c13c17"></a>

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

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