

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

# 使用 CI/CD 系統和管道搭配 部署 AWS SAM
<a name="deploying-cicd-overview"></a>

AWS SAM 協助組織為其偏好的 CI/CD 系統建立管道，以便能夠以最少的努力實現 CI/CD 的優勢，例如加速部署頻率、縮短變更的前置時間，以及減少部署錯誤。

AWS SAM 透過建置容器映像的協助，簡化無伺服器應用程式的 CI/CD 任務。 AWS SAM 提供的映像包含 AWS SAM CLI多個支援 AWS Lambda 執行時間的 和 建置工具。這可讓您更輕鬆地使用 建置和封裝無伺服器應用程式 AWS SAM CLI。這些映像也減輕了團隊為 CI/CD 系統建立和管理自己映像的需求。如需 AWS SAM 建置容器映像的詳細資訊，請參閱[的影像儲存庫 AWS SAM](serverless-image-repositories.md)。

多個 CI/CD 系統支援 AWS SAM 建置容器映像。您應該使用的 CI/CD 系統取決於幾個因素。這些包括您的應用程式是使用單一執行時間還是多個執行時間，還是您要在容器映像內或直接在主機上建置應用程式，可以是虛擬機器 (VM) 或裸機主機。

AWS SAM 也為封裝部署最佳實務 AWS的多個 CI/CD 系統提供一組預設管道範本。這些預設管道範本使用標準 JSON/YAML 管道組態格式，而內建的最佳實務有助於執行多帳戶和多區域部署，並確認管道無法對基礎設施進行意外變更。

您有兩個主要選項可使用 AWS SAM 來部署無伺服器應用程式：1) 修改現有管道組態以使用 AWS SAM CLI 命令，或 2) 產生範例 CI/CD 管道組態，您可以將其做為自有應用程式的起點。

**Topics**
+ [什麼是管道？](#deploying-whatis-pipeline)
+ [如何在部署時 AWS SAM 上傳本機檔案](deploy-upload-local-files.md)
+ [使用 產生入門 CI/CD 管道 AWS SAM](serverless-generating-example-ci-cd.md)
+ [如何使用 自訂入門管道 AWS SAM](serverless-customizing-starter-pipelines.md)
+ [自動化 AWS SAM 應用程式的部署](serverless-deploying-modify-pipeline.md)
+ [如何搭配 AWS SAM 管道使用 OIDC 身分驗證](deploying-with-oidc.md)

## 什麼是管道？
<a name="deploying-whatis-pipeline"></a>

管道是自動執行的步驟序列，用於發行應用程式的新版本。透過 AWS SAM，您可以使用許多常見的 CI/CD 系統來部署應用程式，包括 [AWS CodePipeline](https://aws.amazon.com/codepipeline)、[Jenkins](https://www.jenkins.io/)、[GitLab CI/CD](https://docs.gitlab.com/ee/ci/) 和 [GitHub 動作](https://github.com/features/actions)。

管道範本包含 AWS 部署最佳實務，可協助多帳戶和多區域部署。開發和生產等 AWS 環境通常存在於不同的 AWS 帳戶中。這可讓開發團隊設定安全的部署管道，而不會對基礎設施進行意外變更。

您也可以提供自己的自訂管道範本，以協助跨開發團隊標準化管道。