本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS SAM 为 Jenkins、GitLab CI/CD、GitHub Actions 和 Bitbucket 管线生成入门管线
要为 Jenkins、GitLab CI/CD、GitHub Actions 或 Bitbucket 管线生成入门管道配置,请按以下顺序执行以下任务:
-
创建基础设施资源
-
将 Git 存储库与 CI/CD 系统连接起来
-
创建凭证对象
-
生成管道配置
-
将管道配置提交到 Git 存储库
注意
以下过程使用两个 AWS SAM CLI 命令:sam pipeline
bootstrap 和 sam pipeline init。之所以使用两个命令,是为了处理这样的用例:管理员(即需要设置 IAM 用户和角色等基础设施 AWS 资源的权限的用户)比开发人员(即只需要设置单个管道而非所需基础设施 AWS 资源的权限的用户)拥有更多的权限。
第 1 步:创建基础设施资源
使用 AWS SAM 的管道需要某些 AWS 资源,例如具有必要权限的 IAM 用户和角色、Amazon S3 存储桶,以及可选的 Amazon ECR 存储库。对于管道的每个部署阶段,您都必须拥有一组基础设施资源。
您可以运行以下命令来帮助完成此设置:
sam pipeline bootstrap
注意
为管道的每个部署阶段运行上一条命令。
您必须在管道的每个部署阶段为管道用户捕获 AWS 凭证(密钥 ID 和密钥),因为后续步骤需要它们。
第 2 步:将 Git 存储库与 CI/CD 系统连接起来
必须将 Git 存储库连接到 CI/CD 系统,这样 CI/CD 系统才能访问用于构建和部署的应用程序源代码。
注意
如果您使用以下组合之一,则可以跳过此步骤,因为连接会自动完成:
-
使用 GitHub 存储库的 GitHub Actions
-
使用 GitLab 存储库的 GitLab CI/CD
-
带有 Bitbucket 存储库的 Bitbucket 管线
要将 Git 存储库与 CI/CD 系统连接,请执行以下操作之一:
-
如果您使用的是 Jenkins,请参阅 Jenkins 文档
中的“添加分支源”。 -
如果您使用的是 GitLab CI/CD 和 GitLab 以外的 Git 存储库,请参阅 GitLab 文档
中的“连接外部存储库”。
第 3 步:创建凭证对象
每个 CI/CD 系统都有自己的方式来管理 CI/CD 系统访问 Git 存储库所需的凭证。
要创建必需的凭证对象,请执行以下操作之一:
-
如果您使用的是 Jenkins,请创建一个存储密钥 ID 和密钥的“凭证”。请按照配置 Jenkins 部分里使用 AWS SAM 构建 Jenkins 管道
博客中的说明进行操作。下一步您将需要用到“凭证 ID”。 -
如果您使用的是 GitLab CI/CD,请创建两个“受保护的变量”,密钥 ID 和密钥各一个。请按照 GitLab 文档
中的说明进行操作。下一步您将需要两个“变量密钥”。 -
如果您使用的是 GitHub Actions,请创建两个“加密密钥”,密钥 ID 和密钥各一个。请按照 GitHub 文档
中的说明进行操作。下一步您将需要两个“密钥名称”。 -
如果您使用的是 Bitbucket 管线,请创建两个“安全变量”,密钥 ID 和密钥各一个。请按照变量和密钥
中的说明进行操作。下一步您将需要两个“密钥名称”。
第 4 步:生成管道配置
要生成管道配置,请运行以下命令。您需要输入在上一步中创建的凭证对象:
sam pipeline init
第 5 步:将管道配置提交到 Git 存储库
此步骤对于确保 CI/CD 系统知道您的工作流配置并在提交更改时运行而言是必要的。
了解更多
有关使用 GitHub Actions 设置 CI/CD 管道的实践示例,请参阅完整 AWS SAM 研讨会中的使用 GitHub 的 CI/CD