目 录CONTENT

文章目录

利用Amazon Lex多开发者CI/CD流水线推动组织增长

Administrator
2026-03-10 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://aws.amazon.com/blogs/machine-learning/drive-organizational-growth-with-amazon-lex-multi-developer-ci-cd-pipeline/

原文作者:Grazia Russo Lassner and Kevin Erwin


随着您的对话式AI计划的发展,开发Amazon Lex助手变得越来越复杂。多个开发者在同一个共享Lex实例上工作会导致配置冲突、更改被覆盖和迭代周期变慢。扩展Amazon Lex开发需要隔离的环境、版本控制和自动部署流水线。通过采用结构良好的持续集成和持续交付(CI/CD)实践,组织可以减少开发瓶颈,加速创新,并通过Amazon Lex驱动的智能对话体验,实现更顺畅的交付。

在本文中,我们将介绍一个支持Amazon Lex的多开发者CI/CD流水线,它能够实现隔离的开发环境、自动化测试和简化的部署。我们将向您展示如何设置解决方案,并分享使用此方法的团队的真实结果。

通过可扩展的CI/CD实践实现开发转型

传统的Amazon Lex开发方法通常依赖于单实例设置和手动工作流程。虽然这些方法适用于小型、单开发者的项目,但在多个开发者需要并行工作时,它们可能会引入摩擦,导致迭代周期变慢和更高的运维开销。现代的多开发者CI/CD流水线通过启用自动化验证、简化的部署和智能版本控制来改变这种动态。该流水线最大限度地减少了配置冲突,提高了资源利用率,并使团队能够更快、更可靠地交付新功能。借助持续集成和交付,Amazon Lex开发者可以减少在管理流程上的精力投入,将更多精力投入到为客户创建引人入胜的高质量对话式AI体验上。让我们探讨一下这个解决方案是如何工作的。

解决方案架构

多开发者CI/CD流水线将Amazon Lex从一个受限的、单用户开发工具转变为企业级的对话式AI平台。这种方法解决了阻碍对话式AI开发的基本协作难题。下图说明了多开发者CI/CD流水线的架构:

Multi-developer CI/CD pipeline architecture

使用基础设施即代码(IaC)结合AWS Cloud Development Kit(AWS CDK),每个开发者运行cdk deploy在其共享的Amazon Web Services(AWS)账户中配置各自专用的Lex助手和AWS Lambda实例。这种方法消除了传统Amazon Lex开发中常见的覆盖问题,并支持具有完整版本控制功能的真正并行工作流。

开发者使用lexcli(一个定制的AWS命令行界面(AWS CLI)工具)将AWS账户中的Lex助手配置导出到本地工作站进行编辑。然后,开发者使用lex_emulator在本地进行测试和调试,这是一个提供助手配置和AWS Lambda函数集成测试的定制工具,具有实时验证功能,可以在问题到达云环境之前捕获它们。这种本地能力通过提供即时反馈,并减少迭代期间对耗时云部署的需求,从而改变了开发体验。

当开发者将更改推送到版本控制时,此流水线通过GitLab CI/CD为每个合并请求自动部署临时测试环境。流水线在Docker容器中运行,提供了一致的构建环境,确保了可靠的Lambda函数打包和可重现的部署。自动化测试针对这些临时堆栈运行,并且只有在所有测试成功的情况下才启用合并。临时环境在合并后自动销毁,确保了成本效益,同时保持了质量门禁。测试失败会阻止合并并通知开发者,防止损坏的代码到达共享环境。

通过测试的更改将通过共享环境(开发、QA和生产)进行提升,各个阶段之间设有手动批准门。这种结构化的方法在加速交付过程的同时,保持了高标准的质量,使团队能够自信地部署新功能和改进。

下图按阶段组织了开发者工作流:本地开发、版本控制和自动化部署。在更改流入CI/CD流水线到共享环境之前,开发者在隔离的环境中工作。

Developer workflow organized by phases in multi-developer CI/CD pipeline.

业务影响

通过实现并行开发工作流,此解决方案为对话式AI团队带来了显著的时间和效率提升。内部评估显示,团队可以并行化大部分开发工作,从而带来可衡量的生产力提升。结果根据团队规模、项目范围和实施方法而异,但一些团队显著缩短了开发周期。这种加速使得团队能够在数周而非数月内交付功能,从而改善了上市时间。节省的时间使团队能够在现有开发周期内处理更大的工作负载,为创新和质量改进释放了能力。

真实成功案例

这个用于Amazon Lex的多开发者CI/CD流水线已成功支持企业团队提高其开发效率。一个组织利用它将其平台迁移到Amazon Lex,使多个开发者能够在没有冲突的情况下并发协作。在复杂的开发工作中,隔离的环境和自动合并功能有助于保持一致的进度。

一家大型企业将其作为更广泛AI战略的一部分采用了此流水线。通过在CI/CD过程中使用验证和协作功能,其团队加强了跨环境的协调和责任感。这些例子说明了结构化的工作流如何有助于提高效率、简化迁移和减少返工。

总体而言,这些经验表明多开发者CI/CD流水线如何帮助不同规模的组织在保持一致的质量和开发速度的同时,加强其对话式AI计划。

亲眼看看解决方案

为了更好地理解多开发者CI/CD流水线在实践中如何工作,请观看此演示视频,其中将引导您了解关键工作流。它展示了开发者如何在同一个Amazon Lex助手上并行工作、自动解决冲突并通过流水线部署更改。

开始使用该解决方案

Amazon Lex的多开发者CI/CD流水线可通过我们的GitHub存储库作为开源解决方案提供。您部署的资源将适用标准的AWS服务费用。

先决条件和环境设置

要跟随本指南,您需要:

核心组件和架构

该框架由几个协同工作的关键组件构成,以实现协作开发:使用AWS CDK的基础设施即代码、名为lexcli的Amazon Lex CLI工具以及GitLab CI/CD流水线配置。

该解决方案使用AWS CDK将基础设施组件定义为代码,包括:

使用以下命令部署每个开发者的环境:

cdk deploy -c environment=your-username --outputs-file ./cdk-outputs.json

这会创建一个完整、隔离的环境,它镜像共享配置,但允许独立修改。

lexcli工具将Amazon Lex助手配置从控制台导出到版本控制的JSON文件中。当调用lexcli export <environment>时,它将:

  1. 使用Amazon Lex API连接到您已部署的助手
  2. 将完整的助手配置下载为.zip文件
  3. 解压并标准化标识符,使配置与环境无关
  4. 格式化JSON文件以便在合并请求期间进行审查
  5. 提供交互式提示,以选择性地仅导出更改的意图和槽位

此工具将复制助手配置的繁琐且容易出错的过程,转变为自动化的、可靠的工作流程,从而在各个环境中保持配置的完整性。

.gitlab-ci.yml文件编排了整个开发工作流:

  • 临时环境创建 – 为每个合并请求自动创建和销毁一个临时的动态环境
  • 自动化测试 – 运行全面的测试,包括意图验证、槽位验证和性能基准测试。
  • 质量门禁 – 强制执行代码 linting 和自动化测试,要求至少 40% 的覆盖率;要求手动批准所有环境部署。
  • 环境提升 – 通过开发、暂存、生产这几个阶段控制部署进程,每个阶段都有手动批准。

该流水线确保只有经过验证、测试的更改才能通过部署阶段,从而在实现快速迭代的同时保持质量。

分步实施指南

要为Amazon Lex创建多开发者CI/CD流水线,请完成以下各节中的步骤。实施分为五个阶段:

  1. 存储库和GitLab设置
  2. AWS身份验证设置
  3. 本地开发环境
  4. 开发工作流
  5. CI/CD流水线执行

存储库和GitLab设置

要设置您的存储库并配置GitLab变量,请执行以下步骤:

  1. 克隆示例存储库并创建您自己的项目:
# 克隆示例存储库 git clone https://gitlab.aws.dev/lex/sample-lex-multi-developer-cicd.git # 导航到项目目录 cd sample-lex-multi-developer-cicd # 移除原始的远程仓库并添加您自己的 git remote remove origin git remote add origin # 推送到您的新存储库 git push -u origin main
  1. 要配置GitLab CI/CD变量,请导航到您的GitLab项目并选择设置。然后选择CI/CD变量。添加以下变量:
    • 对于AWS_REGION,输入us-east-1
    • 对于AWS_DEFAULT_REGION,输入us-east-1
    • 添加您的应用程序所需的其他特定于环境的密钥
  2. 设置分支保护规则以保护您的主分支。适当的工作流执行可以防止直接提交到生产代码。

AWS身份验证设置

流水线需要在您的环境中部署AWS CDK更改时具有适当的权限。这可以通过各种方法实现,例如在流水线内假设特定IAM角色、使用附加了IAM角色的托管Runner,或者启用其他批准的访问形式。确切的设置取决于您组织的安全性与访问管理实践。这些权限的详细配置超出了本文的范围,但正确授权您的Runner和角色以执行CDK部署至关重要。

本地开发环境

要设置您的本地开发环境,请完成以下步骤:

  1. 安装依赖项
pip install -r requirements.txt
  1. 部署您的个人助手环境:
cdk deploy -c environment=your-username --outputs-file ./cdk-outputs.json

这会创建您的隔离助手实例,用于独立修改。

开发工作流

要创建开发工作流,请完成以下步骤:

  1. 创建一个特性分支:
git checkout -b feature/your-feature-name
  1. 要进行助手修改,请遵循以下步骤:
    1. 在Amazon Lex控制台中访问您的个人助手
    2. 根据需要修改意图、槽位或助手配置
    3. 直接在控制台中测试您的更改
  2. 将更改导出到代码:
python lexcli.py export your-username

该工具将交互式地提示您选择要导出的更改,以便您只提交了您打算进行的修改。

  1. 审查并提交更改:
git add . git commit -m "feat: add new intent for booking flow" git push origin feature/your-feature-name

CI/CD流水线执行

要执行CI/CD流水线,请完成以下步骤:

  1. 创建合并请求 – 流水线会自动为您的分支创建一个临时环境
  2. 自动化测试 – 流水线针对您的更改运行全面的测试
  3. 代码审查 – 团队成员可以审查代码更改和测试结果
  4. 合并到main – 更改获批后,它们将被合并并自动部署到开发环境
  5. 环境提升 – 手动批准门控制提升到QA和生产环境

下一步是什么?

在实施了此多开发者流水线之后,请考虑以下后续步骤:

  • 扩展您的测试 – 为意图验证添加更全面的测试套件。
  • 增强监控 – 集成Amazon CloudWatch仪表板以监控助手性能。
  • 探索混合AI – 将Amazon Lex与Amazon Bedrock结合,以实现生成式AI功能。

有关Amazon Lex的更多信息,请参阅Amazon Lex开发者指南

结论

在本文中,我们展示了为Amazon Lex实施多开发者CI/CD流水线如何解决对话式AI开发中关键的运营挑战。通过启用隔离的开发环境、本地测试功能和自动化验证工作流,团队可以在不牺牲质量的情况下并行工作,从而帮助加速复杂对话式AI解决方案的上市时间。

您可以使用我们GitHub存储库中提供的AWS CDK原型和Amazon Lex CLI工具立即开始实施此方法。对于希望进一步增强其对话式AI能力的组织,可以考虑探索Amazon Lex与Amazon Bedrock的集成,以使用结构化对话管理和大语言模型(LLM)的混合解决方案。

我们很想听听您实施此解决方案的经验。请在评论中分享您的反馈,或联系AWS专业服务以获取实施指导。


作者简介

Grazia Russo Lassner

Grazia Russo Lassner

Grazia Russo Lassner是AWS专业服务的资深交付顾问。她专注于为各行业客户设计和开发使用AWS技术的对话式AI解决方案。Grazia热衷于利用生成式AI、智能体系统和多智能体编排来构建智能客户体验,使企业与客户互动的方式现代化。

Ken Erwin

Ken Erwin

Ken Erwin是AWS专业服务的资深交付顾问。他专注于前沿规模AI基础设施的架构和操作化,重点设计和管理全球最大的HPC集群。Ken热衷于利用吉瓦级计算能力和不可变基础设施来构建训练全球最强大AI模型所需的高性能环境。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区