在软件开发领域,代码审查和批准是确保所开发软件的质量、安全性和功能的重要流程。然而,负责监督这些关键流程的管理者经常面临许多挑战,例如:
- 缺乏技术专长 – 管理人员可能对所使用的编程语言没有深入的技术理解,或者可能很长一段时间没有参与软件工程。这会导致知识差距,使他们难以准确评估拟议代码更改的影响和健全性。
- 时间限制 – 代码审查和批准可能是一个耗时的过程,尤其是在更大或更复杂的项目中。管理者需要在审核的彻底性与满足项目时间表的压力之间取得平衡。
- 变更请求量 – 处理大量变更请求是管理者面临的常见挑战,尤其是在他们监管多个团队和项目的情况下。与时间限制的挑战类似,管理者需要能够有效地处理这些请求,以免阻碍项目进度。
- 体力劳动 – 代码审查需要管理人员的手动操作,并且缺乏自动化可能导致难以扩展该流程。
- 配套文档 – 代码审查和批准流程的正确记录对于透明度和问责制非常重要。
随着崛起 生成式人工智能 (AI),管理人员现在可以利用这一变革性技术,并将其与 AWS 部署工具和服务套件集成,以前所未有的方式简化审核和批准流程。在这篇文章中,我们探索了一种解决方案,该解决方案提供集成的端到端部署工作流程,该工作流程将自动变更分析和摘要与审批工作流程功能结合在一起。我们用 亚马逊基岩,这是一项完全托管的服务,可通过 API 提供来自领先 AI 初创公司和 Amazon 的基础模型 (FM),因此您可以从各种 FM 中进行选择,找到最适合您的用例的模型。借助 Amazon Bedrock 无服务器体验,您可以快速入门,使用自己的数据私下自定义 FM,并使用 AWS 工具将其集成和部署到您的应用程序中,而无需管理任何基础设施。
解决方案概述
下图说明了解决方案体系结构。
工作流程包括以下步骤:
- 开发人员将新的代码更改推送到其代码存储库(例如 AWS 代码提交),这会自动触发启动 AWS 代码管道 部署。
- 应用程序代码将经历代码构建过程、执行漏洞扫描并使用您首选的工具进行单元测试。
- AWS 代码构建 检索存储库并执行 git show 命令以提取当前提交版本和先前提交版本之间的代码差异。这会产生逐行输出,指示此版本中所做的代码更改。
- CodeBuild 将输出保存到 Amazon DynamoDB 附有附加参考信息的表格:
- CodePipeline 运行 ID
- AWS地区
- 代码管道名称
- CodeBuild 内部版本号
- 日期和时间
- Status
- Amazon DynamoDB流 捕获数据修改 上桌了。
- An AWS Lambda 函数由 DynamoDB 流触发来处理捕获的记录。
- 该函数通过 Amazon Bedrock 调用 Amazon Bedrock 上的 Anthropic Claude v2 模型 调用模型API 称呼。代码差异与提示一起作为模型的输入提供以供分析,并且代码更改的摘要作为输出返回。
- 模型的输出将保存回同一个 DynamoDB 表。
- 经理通过以下方式收到通知 亚马逊简单电子邮件服务 (Amazon SES) 的代码更改摘要以及部署需要获得其批准。
- 经理审核电子邮件并通过 CodePipeline 控制台提供他们的决定(批准或拒绝)以及任何审核意见。
- 批准决定和审查意见由 亚马逊EventBridge,这会触发 Lambda 函数将它们保存回 DynamoDB。
- 如果获得批准,管道将使用您首选的工具部署应用程序代码。如果被拒绝,工作流将结束并且部署不会进一步进行。
在以下部分中,您将部署解决方案并验证端到端工作流程。
先决条件
要遵循此解决方案中的说明,您需要满足以下先决条件:
部署解决方案
要部署解决方案,请完成以下步骤:
- 启动堆栈 启动 CloudFormation 堆栈
us-east-1
: - 针对 电子邮件地址,输入您有权访问的电子邮件地址。代码更改摘要将发送到此电子邮件地址。
- 针对 型号,保留默认的 anthropic.claude-v2,即 Anthropic Claude v2 模型。
部署模板大约需要 4 分钟。
- 当您收到来自 Amazon SES 的用于验证您的电子邮件地址的电子邮件时,请选择提供的链接来授权您的电子邮件地址。
- 您将收到一封标题为“变更摘要”的电子邮件,了解示例存储库首次提交到 CodeCommit 的情况。
- 在 AWS CloudFormation 控制台上,导航到 输出 已部署堆栈的选项卡。
- 复制 RepoCloneURL 的值。您需要它来访问示例代码存储库。
测试解决方案
您可以通过扮演开发人员的角色并推送一些代码更改来端到端测试工作流程。 CodeCommit 已经为您准备了一组示例代码。到 访问 CodeCommit 存储库,在 IDE 上输入以下命令:
您将发现以下目录结构 AWS云开发套件 (AWS CDK) 应用程序,创建 Lambda 函数以对整数字符串执行冒泡排序。 Lambda 函数可通过公开可用的 URL 访问。
您对应用程序代码进行了三处更改。
- 要增强功能以支持快速排序和冒泡排序算法,请接受一个参数以允许选择要使用的算法,并在输出中返回所使用的算法和排序数组,替换整个内容
lambda/index.py
使用以下代码:
- 要将函数的超时设置从 10 分钟减少到 5 秒(因为我们预计函数的运行时间不会超过几秒),请更新第 47 行
my_sample_project/my_sample_project_stack.py
如下:
- 要使用 IAM 限制函数调用以增强安全性,请更新第 56 行:
my_sample_project/my_sample_project_stack.py
如下:
- 通过输入以下命令推送代码更改:
这将启动 CodePipeline 部署工作流程(如解决方案概述中所述)的步骤 1-9。调用 Amazon Bedrock 模型时,我们提供了以下提示:
- SEO 支持的内容和 PR 分发。 今天得到放大。
- PlatoData.Network 垂直生成人工智能。 赋予自己力量。 访问这里。
- 柏拉图爱流。 Web3 智能。 知识放大。 访问这里。
- 柏拉图ESG。 碳, 清洁科技, 能源, 环境, 太阳能, 废物管理。 访问这里。
- 柏拉图健康。 生物技术和临床试验情报。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/
- :具有
- :是
- :不是
- $UP
- 1
- 10
- 100
- 11
- 17
- 200
- 27
- 58
- 7
- 8
- 9
- a
- Able
- 关于
- 加快
- ACCESS
- 无障碍
- 问责制
- 准确
- 通
- 添加
- 增加
- 额外
- 地址
- 添加
- 优点
- AI
- 算法
- 算法
- 让
- 沿
- Amazon
- 亚马逊网络服务
- an
- 检测值
- 分析
- 分析
- 和
- 人类的
- 任何
- API
- 应用
- 应用领域
- 应用领域
- 批准
- 批准
- 批准
- 架构
- 保健
- 围绕
- 排列
- 人造的
- AS
- 评估
- 协助
- 助理
- 属性
- 增强
- 认证
- 认证
- 授权
- 自动化
- 自动
- 自动化和干细胞工程
- 可使用
- AWS
- AWS CloudFormation
- 背部
- 当前余额
- 基于
- BE
- 因为
- 很
- 作为
- 最佳
- 之间
- 身体
- 都
- 带来
- 泡沫
- 建立
- 建筑物
- by
- 呼叫
- CAN
- 可以得到
- 捕获
- 案件
- CD
- 挑战
- 挑战
- 更改
- 变
- 更改
- 清洁
- 云端技术
- 码
- 代码审查
- 代码
- 注释
- 承诺
- 相当常见
- 完成
- 复杂
- 简洁
- 进行
- 行为
- 后果
- 注意事项
- 由
- 安慰
- 内容
- 上下文
- 创建
- 创建
- 危急
- 电流
- 定制
- data
- 女儿
- 处理
- 决定
- 默认
- 定义
- 部署
- 部署
- 部署
- 部署
- 部署
- 设计
- 期望
- 详图
- 确定
- 发达
- 开发商
- 研发支持
- 图表
- 差异
- 不同
- 难
- 目录
- 文件
- 不
- 别
- 为期
- 缓解
- 效率
- 有效
- 努力
- 或
- 其他
- 邮箱地址
- 结束
- 端至端
- 结束
- 工程师
- 提高
- 保证
- 输入
- 进入
- 整个
- 环境
- 特别
- 活动
- 例子
- 除
- 期望
- 体验
- 实验
- 探索
- 探讨
- 扩展
- 提取
- 面部彩妆
- 面临
- 家庭
- 少数
- 金融
- 金融机构
- 找到最适合您的地方
- 高度灵活
- 遵循
- 以下
- 如下
- 针对
- 基金会
- Free
- 止
- 充分
- 功能
- 实用
- 功能
- 进一步
- 差距
- 产生
- 生成的
- 生成式人工智能
- 得到
- 越来越
- 混帐
- Go
- GOES
- 更大的
- 指导
- 处理
- 马具
- 有
- 有
- he
- 高
- 高度
- 他的
- 举行
- 创新中心
- 但是
- HTML
- HTTP
- HTTPS
- 人
- i
- ID
- if
- 说明
- 影响力故事
- 履行
- 实施
- 启示
- 重要
- 改善
- in
- 深入
- 合并
- 指数
- 表示
- 信息
- 基础设施
- 初始
- 输入
- 机构
- 说明
- 整合
- 集成
- 集成
- 成
- 推出
- 所调用
- 参与
- IT
- JSON
- 知道
- 知识
- 缺乏
- 语言
- 大
- 发射
- 领导
- 离开
- 减
- 让
- Line
- 友情链接
- 清单
- 不再
- 制成
- 主要
- 主要
- 使
- 制作
- 管理
- 管理
- 经理
- 经理
- 方式
- 手册
- 可能..
- 意思
- 满足
- 元数据
- 可能
- 分钟
- 模型
- 模型
- 修改
- 更多
- 最先进的
- 多
- 导航
- 需求
- 全新
- 下页
- 没有
- 不包含
- 现在
- 数字
- 众多
- of
- 优惠精选
- 经常
- on
- 仅由
- or
- 其他名称
- 除此以外
- 输出
- 概述
- 产量
- 学校以外
- 最划算
- 监督
- 简介
- 己
- 参数
- 有待
- 演出
- 施行
- 期间
- 管道
- 枢
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 可能
- 帖子
- 潜力
- 功率
- 首选
- 准备
- 先决条件
- 压力
- 以前
- 先前
- 继续
- 过程
- 过程
- 生产
- 产生
- 本人简介
- 代码编程
- 进展
- 项目
- 项目
- 提示
- 正确
- 建议
- 提供
- 提供
- 提供
- 公然
- 目的
- 推
- 推动
- 质量
- 询问
- 快速
- 很快
- 范围
- 接收
- 记录
- 减少
- 减少
- 减少
- 参考
- 被拒绝..
- 释放
- 更换
- 知识库
- 要求
- 必须
- 岗位要求
- 需要
- 资源
- 响应
- 限制
- 成果
- 回报
- 回报
- 检讨
- 评论
- 上升
- 角色
- 运行
- s
- 同
- 样品
- 保存
- 保存
- 可扩展性
- 鳞片
- 扫描
- 秒
- 部分
- 安全
- 保安
- 选择
- 前辈
- 发送
- 无服务器
- 服务
- 特色服务
- 集
- 设置
- 应该
- 显示
- 类似
- 简易
- 新加坡
- So
- 软件
- 软件开发
- 软件工程
- 方案,
- 解决方案
- 一些
- 来源
- 指定
- 速度
- 花
- 堆
- 开始
- 开始
- 启动
- 初创企业
- 步
- 步骤
- 流
- 精简
- 串
- 结构体
- 这样
- 套房
- 合适的
- 概要
- SUPPORT
- 表
- 采取
- 服用
- 队
- 文案
- 专业技术
- 模板
- test
- 测试
- 比
- 这
- 世界
- 其
- 他们
- 那里。
- 博曼
- 他们
- Free Introduction
- 那些
- 三
- 通过
- 收紧
- 次
- 耗时的
- 时间表
- 标题
- 至
- 一起
- 工具
- 工具
- 变革
- 用户评论透明
- 引发
- 尝试
- 二
- 普遍
- 理解
- 单元
- 更新
- 更新
- 网址
- us
- 使用
- 用例
- 用过的
- 用户
- 使用
- 运用
- v1
- 折扣值
- 各个
- 确认
- 版本
- 通过
- 体积
- vs
- 漏洞
- 是
- we
- 卷筒纸
- Web服务
- 井
- 为
- ,尤其是
- 这
- 宽
- 大范围
- 将
- 中
- 也完全不需要
- 工作
- 工作流程
- 加工
- 合作
- 世界
- X
- 雅姆
- 完全
- 您一站式解决方案
- 和风网