介绍

本文内容

CI/CD让我们用(持续集成/持续交付)准备一个开发环境!即使你有一个ToBe,也很难突然创建一个理想的管道。

所以,这次使用个人 AWS 账户CI/CD我尝试实现了一个简单管道的示例,可以说是实现的管道中的“最小配置”

以此为基础,你可以真正地创造和学习,扩展你的形象,添加和更新你需要的服务,成为一名ToBeCI/CD我想用它作为建筑的基础。

参考

以下基于 AWS 官方上机。基于此内容,我们添加了一些更改,例如使用 CodeCommit 代替 Github。

创建持续交付管道

前提

  • 我有 AWS 账户并且知道基本操作和设置
  • 了解 Git 帐户/工具的基本知识,如何设置它们等。
  • 即使环境和工具有一些差异,也可以酌情吸收!你可以谷歌它!

宪法

我们将通过以下五个部分来实现如图所示的最小持续交付实现。

  1. 设置存储库 (CodeCommit)

  2. 平台设置 (BeansTalk)

  3. 构建项目设置 (CodeBuild)

  4. 设置交付管道 (CodePipeline)

  5. 实现持续交付

  6. AWS はじめての継続的デリバリーパイプライン(CICD)やってみた

    成本

    虽然取决于个人使用情况,但我们完全不能保证,
    在我的情况下我想在创建帐户后的 12 个月内,我可以在免费框架内以 0 日元的价格做到这一点。

    日志输出到Beantalk的机器费和S3,API在pipeline上飞来飞去,请自行查看收费情况。 (这还不错,因为它可能涵盖计费元素,因此您自担风险。)

    动手程序

    我将从以下描述我实际尝试过的实践流程。
    一切都在东京地区完成。
    未指定的设置在当时保留为默认设置。

    1. 存储库设置

    概述

    代码提交我们将在上面构建一个存储库。
    您可以稍后将此存储库作为管道中的源引用,或者检测更改并启动自动交付。

    注意,AWS 动手由于我们使用的是 Github,请参考那些想在 Github 上做的人,或者对 CodeCommit 有问题或无法进行身份验证的人。

    创建存储库

    代码提交打开控制台

    将输出存储库列表,因此请按 [创建存储库] 按钮。

    输入以下存储库设置,然后单击 [创建] 按钮。

    物品 输入值
    存储库名称 光盘

    克隆存储库

    将创建的存储库克隆到本地计算机。从存储库的“克隆 URL”复制 HTTP URL,然后在本地计算机上键入以下命令。

    git clone https://~~~

    在本地克隆 CodeCommit 存储库时,需要某种身份验证。例如,如果您从 AWS IAM 用户屏幕打开“凭证”选项卡,则会有一个项目用于为 CodeCommit 生成凭证。

    我们会将文件适当地添加到创建的本地存储库中。在这里,尝试推送返回以下 Hello World 的应用程序的 app.js。

    应用程序.js
    const express = require('express');
    const app = express();
    const port = 8080;
    
    app.get('/', (req, res) => res.send('Hello World!'));
    
    app.listen(port);
    console.log(`App running on http://localhost:${port}`);
    

    git add app.js

    git commit -m "change message"

    git push


    检查

    确认您在本地提交和推送的文件也存在于 AWS CodeCommit 控制台中。

    2.平台设置

    概述

    弹力豆茎准备用于部署应用程序的环境。首先,在本节中,我们将构建一个 Web 服务器来显示 AWS 示例代码。稍后,它将是一个运行我创建的 app.js 并显示 Hello World 的 Web 服务器。

    我觉得 Beanstalk 相当频繁地改变屏幕的布局。

    创建豆茎

    豆茎打开控制台

    首先,环境列表被输出,所以按下[创建新环境]按钮。

    在“选择环境”中,选择 Web 服务器环境。在下一页输入以下设置。

    物品 输入值
    应用名称 光盘
    环境 cd_consideration
    平台 节点.js
    应用代码 示例应用程序

    按创建环境按钮。
    等待一段时间以创建环境。

    检查

    一旦环境被创建并显示在列表中,就会生成一个指向在 Beanstalk 上运行的 Web 服务器的 URL 链接,因此请移至它。
    确保您可以访问显示祝贺的示例网页。


    3.构建项目设置

    概述

    代码构建使用 .定义设置各种运行时等和编译源代码的细节。

    创建构建项目

    代码构建打开控制台

    将输出项目列表,因此请按[创建构建项目]按钮。

    输入以下设置值。

    物品 输入值
    项目名称 cd_consideration ld
    源提供者 AWS 代码提交
    存储库 光盘
    环境形象 托管映像
    操作系统 亚马逊 Linux 2
    运行 标准
    图片 aws/codebuild/amazonlinux2-x86_64-standard:3.0
    环境类型 Linux
    服务角色 新的服务角色
    角色名称 codebuild-cicd-build-service-角色

    构建规范设置

    每个构建过程和环境变量都可以写入并保存在名为 buildspec.yml 的文件中。
    选择“插入构建命令”和“切换到编辑器”。替换为下面的代码。

    version: 0.2
    phases:
        build:
            commands:
                - npm i --save
    artifacts:
        files:
            - '**/*'
    

    按创建构建项目按钮。


    检查

    按下创建按钮后,确认输出“以下项目已成功创建:Cicd_kangaezaru-build”。

    4. 创建交付管道

    概述

    代码管道建立一个能够持续交付的管道在这里,CodeCommit 代码是使用 CodeBuild 作为源构建的,部署到 Beanstalk 的顺序是无缝自动化的。

    设置 CodePipeline

    代码管道打开控制台

    将输出管道列表,因此请按 [创建管道] 按钮。

    输入以下设置值。

    物品 输入值
    管道名称 Shi cd_我不这么认为
    服务角色 新的服务角色
    角色名称 AWSCodePipelineServiceRole-cicd-line-service-role

    按下一步按钮。

    源阶段放。

    物品 输入值
    源提供者 AWS 代码提交
    存储库名称 光盘
    分店名称 掌握

    按下一步按钮。

    构建阶段放。

    物品 输入值
    源提供者 AWS CodeBuild
    地区 亚太地区(东京)
    项目名称 cd_consideration ld
    分店名称 掌握

    按下一步按钮。

    部署阶段放。

    物品 输入值
    源提供者 AWS Elastic Beanstalk
    地区 亚太地区(东京)
    应用名称 光盘
    环境名称 cd_consideration

    按下一步按钮。

    在审查页面上审查它,然后按 Create Pipeline 按钮。

    检查

    执行通过源、构建和部署阶段进行。

    稍等片刻,source 和 build 阶段都变绿了,但是 deploy 有错误。如果您只推送 app.js,则需要添加另一个文件,它会按预期工作。

    5.实现持续改进和交付

    概述

    修复错误部分并再次运行管道以执行自动部署。这使得在实际开发过程中可以立即检查环境中的修正,并不断进行改进和反映。

    改善行动

    在您机器的本地存储库中创建以下文件以消除错误。 (在 AWS 手册中样本比)

    包.json
    {
      "name": "aws-elastic-beanstalk-express-js-sample",
      "version": "1.0.0",
      "description": "Sample Node.js (Express) app for AWS Elastic Beanstalk",
      "main": "app.js",
      "scripts": {
        "start": "node app.js"
      },
      "repository": {
        "type": "git",
        "url": "git+https://github.com/aws-samples/aws-elastic-beanstalk-express-js-sample.git"
      },
      "license": "MIT-0",
      "dependencies": {
        "express": "^4.17.1"
      }
    }
    

    提交并推送文件。

    git add package.json

    git commit -m "change message"

    git push

    验证和持续交付

    推时代码管道创建的管道将再次从源阶段开始运行。
    我认为这次它会输出部署阶段成功。

    在部署阶段AWS Elastic Beanstalk点击链接查看将打开一个新选项卡,列出您的 Elastic Beanstalk 环境。
    单击您创建的环境的 URL。您将看到一个带有白色背景的网页和您上次提交的文本(Hello World 等)。

    当然,如果你改了Hello World和commit/push等字符,文字也会变,所以请验证一下。


    综上所述

    您现在拥有一个最小的持续交付管道。

    基于此,让我们通过结合其他服务来追求理想的CI/CD,替换为其他语言的开发验证,增加单元测试和集成测试阶段!

    删除不再需要的资源 (此页面上的清理参考)。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308622638.html

相关文章: