

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

# 正在为 AWS CodePipeline in 生成入门管道 AWS SAM
<a name="serverless-generating-example-ci-cd-codepipeline"></a>

要为生成入门工作流配置 AWS CodePipeline，请按以下顺序执行以下任务：

1. 创建基础设施资源

1. 生成管道配置

1. 将管道配置提交到 Git

1. 将你的 Git 仓库与你的 CI/CD 系统连接起来

**注意**  
以下过程使用两个 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
```

**注意**  
为管道的每个部署阶段运行上一条命令。

## 第 2 步：生成管道配置
<a name="generating-example-step-2"></a>

要生成管道配置，请运行以下命令：

```
sam pipeline init
```

## 第 3 步：将管道配置提交到 Git 存储库
<a name="generating-example-step-3"></a>

此步骤对于确保您的 CI/CD 系统知道您的工作流配置是必要的，并且将在提交更改时运行。

## 第 4 步：将 Git 存储库与 CI/CD 系统连接
<a name="generating-example-step-4"></a>

因为 AWS CodePipeline 您现在可以通过运行以下命令来创建连接：

```
sam deploy -t codepipeline.yaml --stack-name <pipeline-stack-name> --capabilities=CAPABILITY_IAM --region <region-X>
```

如果您使用的是 Bitbucket， GitHub 则在之前运行**sam deploy**命令后，请按照*开发者工具控制台用户指南*中 “[更新待处理的**连接” 主题中的 “完成**连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)” 下的步骤完成连接，完成连接。此外，请存储**sam deploy**命令输出`CodeStarConnectionArn`中的副本，因为如果您想与之以外的其他分支 AWS CodePipeline 一起使用，则需要该副本`main`。

## 配置其他分支
<a name="configuring-other-branches"></a>

默认情况下， AWS CodePipeline 使用带的`main`分支 AWS SAM。如果要使用 `main` 以外的分支，则必须再次运行 **sam deploy** 命令。请注意，根据使用的 Git 仓库，还可能需要提供 `CodeStarConnectionArn`：

```
# For GitHub and Bitbucket
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name> CodeStarConnectionArn=<codestar-connection-arn>"

# For AWS CodeCommit
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name>"
```

## 了解详情
<a name="serverless-generating-cicd-learn"></a>

有关设置 CI/CD 管道的动手示例，请参阅*完整 AWS SAM *研讨会 AWS CodePipeline中的 [CI/CD](https://catalog.workshops.aws/complete-aws-sam/en-US/module-4-cicd)。