AWS CodePipeline

AWS CodePipeline是托管的流水线发布服务,在本节中, 我们使用CodePipeline来将之前的CodeCommit、 CodeBuild、 CodeDeploy 组件串起来,当代码提交时,实现自动化构建并部署更新:

CodePipeline Diagram

创建Pipeline

进入CodePipeline服务,选择Create pipeline

image-20220312155031727

为pipeline命名为unicorn-web-pipeline ,选择New service role并使用默认生成好的名称:

image-20220312155218491

在source stage部分,选择CodeCommit,并使用 unicorn-web-project作为仓库地址,使用main分支,其他选项保持默认,进入下一步:

image-20220312155256966

在build stage部分,选择AWS CodeBuild和 unicorn-web-build作为项目名称,进入下一步:

image-20220312155336447

在deploy stage,选择AWS CodeDeploy=> unicorn-web-deploy => unicorn-web-deploy-group:

image-20220312155409140

进入下一步,检查配置并点击Create pipeline。当第一次创建pipeline时,默认会走一遍流程,确保它全部执行成功:

image-20220312155459704

发布代码更新

目前我们就有一个完全托管的CI/CD流水线了,我们来测试下它是否工作正常。

回到Cloud 9环境,更新index.jsp内容如下:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

<h1>Be an AWSome builder with AWS!</h1>
<img src="https://pingfan.s3.amazonaws.com/pic4/3l1fh.png" alt="">

</body>
</html>

提交更新:

cd ~/environment/unicorn-web-project/
git add *
git commit -m "Visual improvements to homepage"
git push -u origin main

回到CodePipeline控制台,在里面看到整个流水线被自动触发,大概五分钟内流程会全部走完

image-20220312160030449

当流水线结束后,访问EC2的主页,发现页面更改已生效:

image-20220312160207331

使用AWS Code家族,我们走完了整个CI/CD流水线🔥🔥🔥