在 AWS SAM 中为 AWS CodePipeline 生成入门管线 - AWS Serverless Application Model

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

在 AWS SAM 中为 AWS CodePipeline 生成入门管线

要为 AWS CodePipeline 生成入门管道配置,请按以下顺序执行以下任务:

  1. 创建基础设施资源

  2. 生成管道配置

  3. 将管道配置提交到 Git

  4. 将 Git 存储库与 CI/CD 系统连接起来

注意

以下过程使用两个 AWS SAM CLI 命令:sam pipeline bootstrapsam pipeline init。之所以使用两个命令,是为了处理这样的用例:管理员(即需要设置 IAM 用户和角色等基础设施 AWS 资源的权限的用户)比开发人员(即只需要设置单个管道而非所需基础设施 AWS 资源的权限的用户)拥有更多的权限。

第 1 步:创建基础设施资源

使用 AWS SAM 的管道需要某些 AWS 资源,例如具有必要权限的 IAM 用户和角色、Amazon S3 存储桶,以及可选的 Amazon ECR 存储库。对于管道的每个部署阶段,您都必须拥有一组基础设施资源。

您可以运行以下命令来帮助完成此设置:

sam pipeline bootstrap
注意

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

第 2 步:生成管道配置

要生成管道配置,请运行以下命令:

sam pipeline init

第 3 步:将管道配置提交到 Git 存储库

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

第 4 步:将 Git 存储库与 CI/CD 系统连接起来

对于 AWS CodePipeline,您现在可以通过运行以下命令创建连接:

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

如果您使用的是 GitHub 或 Bitbucket,则在之前运行 sam deploy 命令后,请按照《开发人员工具控制台用户指南》更新待处理的连接主题中的完成连接下的步骤完成连接。此外,请存储 sam deploy 命令输出中的 CodeStarConnectionArn 副本,因为如果您想将 AWS CodePipeline 与 main 以外的其他分支一起使用,则将需要它。

配置其他分支

默认情况下,AWS CodePipeline 使用带有 AWS SAM 的 main 分支。如果要使用 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>"

了解更多

有关设置 CI/CD 管道的实践示例,请参阅完整 AWS SAM 研讨会中的使用 AWS CodePipeline 的 CI/CD