

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

# 使用 部署應用程式的選項 AWS SAM
<a name="deploying-options"></a>

使用 AWS SAM，您可以手動部署應用程式並自動化部署。使用 AWS SAM CLI 手動部署您的應用程式。若要自動化部署，請使用管道和持續整合和持續部署 (CI/CD) 系統。本節中的主題提供有關這兩種方法的資訊。

**Topics**
+ [如何使用 AWS SAM CLI 手動部署](#serverless-sam-cli-using-package-and-deploy)
+ [使用 CI/CD 系統和管道部署](#serverless-deploying-ci-cd)
+ [逐步部署](#serverless-deploying-gradual)
+ [使用 對部署進行故障診斷 AWS SAM CLI](#serverless-deploying-troubleshooting)
+ [進一步了解](#serverless-sam-cli-using-invoke-learn)

## 如何使用 AWS SAM CLI 手動部署
<a name="serverless-sam-cli-using-package-and-deploy"></a>

在本機開發和測試無伺服器應用程式之後，您可以使用 **[sam deploy](sam-cli-command-reference-sam-deploy.md)**命令部署應用程式。

若要讓 使用提示 AWS SAM 引導您完成部署，請指定 **--guided**旗標。當您指定此旗標時，**sam deploy**命令會壓縮應用程式成品、將它們上傳至 Amazon Simple Storage Service (Amazon S3) （適用於 .zip 檔案封存） 或 Amazon Elastic Container Registry (Amazon ECR) （適用於容器映像）。命令接著會將您的應用程式部署到 AWS 雲端。

**範例**：

```
# Deploy an application using prompts:
sam deploy --guided
```

## 使用 CI/CD 系統和管道部署
<a name="serverless-deploying-ci-cd"></a>

AWS SAM 可協助您使用管道和持續整合和持續部署 (CI/CD) 系統來自動化部署。 AWS SAM 可用來建立管道，並簡化無伺服器應用程式的 CI/CD 任務。多個 CI/CD 系統支援 AWS SAM 建置容器映像， AWS SAM 也為封裝部署最佳實務 AWS的多個 CI/CD 系統提供一組預設管道範本。

如需詳細資訊，請參閱[使用 CI/CD 系統和管道搭配 部署 AWS SAM](deploying-cicd-overview.md)。

## 逐步部署
<a name="serverless-deploying-gradual"></a>

如果您想要逐步部署 AWS SAM 應用程式，而不是一次全部部署，您可以指定 AWS CodeDeploy 提供的部署組態。如需詳細資訊，請參閱*AWS CodeDeploy 《 使用者指南*[》中的在 CodeDeploy 中使用部署組態](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)。

如需設定 AWS SAM 應用程式以逐步部署的資訊，請參閱 [使用 逐步部署無伺服器應用程式 AWS SAM](automating-updates-to-serverless-apps.md)。

## 使用 對部署進行故障診斷 AWS SAM CLI
<a name="serverless-deploying-troubleshooting"></a>

### AWS SAM CLI 錯誤：「未滿足安全限制條件」
<a name="troubleshooting-security-constraints"></a>

執行 時**sam deploy --guided**，系統會提示您輸入問題 `HelloWorldFunction may not have authorization defined, Is this okay? [y/N]`。如果您使用 **N**（預設回應） 回應此提示，您會看到下列錯誤：

```
 
Error: Security Constraints Not Satisfied
```

提示會通知您即將部署的應用程式可能在未經授權的情況下設定 Amazon API Gateway API。透過**N**回應此提示，您表示這不行。

若要修正此問題，您有下列選項：
+ 使用授權設定您的應用程式。如需設定授權的資訊，請參閱 [使用 AWS SAM 範本控制 API 存取](serverless-controlling-access-to-apis.md)。
+ 使用 回應此問題，**Y**表示您可以部署已設定 API Gateway API 的應用程式，無需授權。

## 進一步了解
<a name="serverless-sam-cli-using-invoke-learn"></a>

如需部署無伺服器應用程式的實作範例，請參閱 The *Complete AWS SAM Workshop *中的以下內容：
+ [單元 3 - 手動部署](https://s12d.com/sam-ws-en-manual-deploy) – 了解如何使用 建置、封裝和部署無伺服器應用程式 AWS SAM CLI。
+ [單元 4 - CI/CD](https://s12d.com/sam-ws-en-cicd-deploy) – 了解如何透過建立*持續整合和交付 (CI/CD) *管道來自動化建置、套件和部署階段。