

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 用于 AWS SAM 为 Jenkins、C GitLab I/CD、Actions、Bitbucket Pipelines 生成入 GitHub
<a name="serverless-generating-example-ci-cd-others"></a>

要为 Jenkins、C GitLab I/CD、Actions 或 Bitbucket Pipelines 生成入门工作流配置，请按以下顺序执行以下任务： GitHub 

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 带有存储库的 CI/CD GitLab 
带有 Bitbucket 存储库的 Bitbucket 管线

要将 Git 存储库与 CI/CD 系统连接，请执行以下任一操作：
+ 如果您使用的是 Jenkins，请参阅 [Jenkins 文档](https://www.jenkins.io/doc/book/pipeline/multibranch/)中的“添加分支源”。
+ 如果您使用的是 C GitLab I/CD 和除之外的 Git 存储库 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构建 Jenkins 管道](https://aws.amazon.com/blogs/compute/building-a-jenkins-pipeline-with-aws-sam/)博客中的说明进行操作。下一步您将需要用到“凭证 ID”。
+ 如果您使用的是 C GitLab I/CD，请创建两个 “受保护变量”，密钥 ID 和密钥各一个。按照[GitLab 文档](https://docs.gitlab.com/ee/ci/variables/)中的说明进行操作 — 下一步需要两个 “变量键”。
+ 如果您使用的是 Ac GitHub tions，请创建两个 “加密机密”，密钥和密钥各一个。按照[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 *研讨会GitHub中的 [CI/CD](https://s12d.com/sam-ws-en-gh)。