

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

# 使用 AWS SAM 為 Jenkins、GitLab CI/CD、GitHub Actions、Bitbucket Pipelines 產生入門管道
<a name="serverless-generating-example-ci-cd-others"></a>

若要產生 Jenkins、GitLab CI/CD、GitHub Actions 或 Bitbucket Pipelines 的入門管道組態，請依此順序執行下列任務：

1. 建立基礎設施資源

1. 將您的 Git 儲存庫與您的 CI/CD 系統連線

1. 建立登入資料物件

1. 產生管道組態

1. 將您的管道組態遞交至 Git 儲存庫

**注意**  
下列程序使用兩個 AWS SAM CLI命令 `sam pipeline bootstrap`和 `sam pipeline init`。有兩個命令的原因是處理使用案例，其中管理員 （即需要許可來設定基礎設施 AWS 資源的使用者，例如 IAM 使用者和角色） 擁有更多許可，開發人員 （即只需要許可來設定個別管道，但不需要必要基礎設施 AWS 資源的使用者）。

## 步驟 1：建立基礎設施資源
<a name="generating-example-step-1"></a>

使用 的管道 AWS SAM 需要特定 AWS 資源，例如具有必要許可的 IAM 使用者和角色、Amazon S3 儲存貯體，以及選用的 Amazon ECR 儲存庫。您必須針對管道的每個部署階段擁有一組基礎設施資源。

您可以執行下列命令來協助進行此設定：

```
sam pipeline bootstrap
```

**注意**  
針對管道的每個部署階段執行先前的命令。

您必須為管道的每個部署階段擷取管道使用者的 AWS 登入資料 （金鑰 ID 和私密金鑰），因為後續步驟需要這些登入資料。

## 步驟 2：將 Git 儲存庫與您的 CI/CD 系統連線
<a name="generating-example-step-2"></a>

必須將 Git 儲存庫連線至您的 CI/CD 系統，以便 CI/CD 系統能夠存取您的應用程式原始碼以進行建置和部署。

**注意**  
如果您使用下列其中一個組合，則可以略過此步驟，因為會自動為您完成連線：  
使用 GitHub 儲存庫的 GitHub 動作
使用 GitLab 儲存庫的 GitLab CI/CD
具有 Bitbucket 儲存庫的 Bitbucket 管道

若要將 Git 儲存庫與您的 CI/CD 系統連線，請執行下列其中一項操作：
+ 如果您使用的是 Jenkins，請參閱「新增分支來源」的 [Jenkins 文件](https://www.jenkins.io/doc/book/pipeline/multibranch/)。
+ 如果您使用的是 GitLab CI/CD 和 GitLab 以外的 GitLab 儲存庫，請參閱「連接外部儲存庫」的 [GitLab 文件](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/)。

## 步驟 3：建立登入資料物件
<a name="generating-example-step-3"></a>

每個 CI/CD 系統都有自己的方法來管理 CI/CD 系統存取 Git 儲存庫所需的登入資料。

若要建立必要的登入資料物件，請執行下列其中一項操作：
+ 如果您使用的是 Jenkins，請建立儲存金鑰 ID 和私密金鑰的單一「憑證」。請遵循[使用部落格建置 Jenkins 管道 AWS SAM](https://aws.amazon.com/blogs/compute/building-a-jenkins-pipeline-with-aws-sam/)一節中的指示****。下一個步驟需要 "Credential id"。
+ 如果您使用的是 GitLab CI/CD，請建立兩個「受保護的變數」，每個金鑰 ID 和私密金鑰各一個。遵循 [GitLab 文件](https://docs.gitlab.com/ee/ci/variables/)中的指示 – 在下一個步驟中，您將需要兩個「可變金鑰」。
+ 如果您使用的是 GitHub 動作，請建立兩個「加密的秘密」，每個金鑰和私密金鑰各一個。遵循 [GitHub 文件](https://docs.github.com/en/actions/reference/encrypted-secrets)中的指示 - 下一個步驟需要兩個「秘密名稱」。
+ 如果您使用的是 Bitbucket 管道，請建立兩個「安全變數」，每個金鑰 ID 和私密金鑰各一個。遵循[變數和秘密](https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets)中的指示 - 下一個步驟需要兩個「秘密名稱」。

## 步驟 4：產生管道組態
<a name="generating-example-step-4"></a>

若要產生管道組態，請執行下列命令。您需要輸入您在上一個步驟中建立的登入資料物件：

```
sam pipeline init
```

## 步驟 5：將您的管道組態遞交至 Git 儲存庫
<a name="generating-example-step-5"></a>

此步驟是必要的，以確保您的 CI/CD 系統知道您的管道組態，並在遞交變更時執行。

## 進一步了解
<a name="serverless-generating-other-cicd-learn"></a>

如需使用 設定 CI/CD 管道的實作範例GitHub Actions，請參閱 *完成 AWS SAM 研討會*中的[使用 CI/CDGitHub](https://s12d.com/sam-ws-en-gh)。