

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 无服务器 AI 的 CI/CD 和自动化
<a name="cicd-and-automation"></a>

在传统的软件开发中，持续集成和部署（由于服务的短暂性、事件驱动性质以及人工智能模型和提示的不稳定行为）CI/CD) enables teams to test and release changes rapidly and safely. In serverless AI systems, CI/CD变得更加重要。

从基础设施（例如 AWS Lambda，Amazon API Gateway 和 Amazon Bedrock 代理）到逻辑（例如提示、RAG 流程和代理工具配置），所有内容都必须经过版本控制和测试。然后，应在不同环境中一致地部署这些组件。

如果不实施 CI/CD 实践，组织将面临以下风险：
+ 由于手动 AWS Identity and Access Management (IAM) 或提示更改，人为错误增加。
+ 模型和基础架构会发生在不同的development/test/production环境中。
+ 测试瓶颈会减缓创新。
+ 未经验证的更新会带来停机或行为变化的风险。

## 无服务器 AI 中的 CI/CD 功能
<a name="section-cicd-capabilities"></a>

CI/CD 在无服务器 AI 中提供了以下功能及其相关优势：
+ **安全提示和代理版本控制**-提示和代理配置更改通过审阅、测试和批准流程。
+ **基础设施可重复性** — 基础设施即代码 (IaC) 使用 AWS Cloud Development Kit (AWS CDK) 或 AWS CloudFormation 帮助确保各个阶段的环境相同。
+ **集成测试**-部署前运行提示测试、架构验证和安全检查。
+ **自动部署批准** — 使用防护栏进行生产推广，包括手动审查和自动指标。
+ **回滚和审计** — 带标签的版本允许快速回滚和合规性可追溯性。
+ **频繁的低风险更新 — 支持大型语言模型 (LLM) 应用程序的快速迭代周期和即**时调整。

## 无服务器 AI 项目的典型 CI/CD 工作流程
<a name="section-cicd-workflow"></a>

无服务器 AI 项目的综合 CI/CD 管道涉及多个阶段。以下列表概述了典型 CI/CD 工作流程的每个阶段，包括相关的操作和示例工具：
+ **代码和提示提交** — 开发者使用或之类 GitHub 的工具将更新后的 Lambda 函数、 AWS CDK 代码或提示文本推送到 Git。 GitLab
+ B@@ **uild and lint**-使用诸如 for、for、和自定义提示验证器之类[https://eslint.org/](https://eslint.org/)的 JavaScript工具来验证语法Python[https://yamllint.readthedocs.io/en/stable/](https://yamllint.readthedocs.io/en/stable/)、提示格式和架构对齐方式。[https://pypi.org/project/black/](https://pypi.org/project/black/)
+ **单元测试和提示回归** — 使用[https://docs.pytest.org/en/stable/](https://docs.pytest.org/en/stable/)、和自定义夹具运行本地逻辑和单元测试以及黄金提示响应测试。[https://www.promptfoo.dev/docs/intro/](https://www.promptfoo.dev/docs/intro/)
+ **IaC 验证** — 使用`cdk synth`和进行综合 AWS CDK 和 CloudFormationtemplates 验证。`cfn–lint`
+ **集成测试** — 部署到暂存并使用 AWS CodeBuild 和模拟代理调用完整的工作流程（例如，Amazon S3 上传到 Amazon Bedrock 代理）。
+ **手动或自动批准** — 使用 AWS CodePipeline 或 GitHub 操作门查看模型成本影响和批准清单（例如，即时更改）。
+ **部署到生产环境** — 使用 AWS CodeDeploy、和 AWS SAM 命令行界面 (CLI) 推广堆栈、更新 Amazon Bedrock 代理配置并发布提示。 AWS CDK
+ **部署后烟雾测试** — 使用 Amazon Synthet CloudWatch ics 验证生产代理输出、日志捕获和回滚准备情况，并测试 Lambda。
+ **监控和观察** — 使用 Amazon Bedrock 令牌日志（通过 CloudWatch）和，自动创建控制面板 CloudWatch、成本提醒和代币使用情况监控器。 AWS X-Ray

## 用于提示和 Amazon Bedrock 代理的 CI/CD
<a name="section-cicd-prompts-agents"></a>

在 CI/CD 流程中，Prompt 和 Amazon Bedrock 代理配置需要特殊处理：
+ 在源代码管理中将提示视为版本控制资源（例如，`/prompts/v1/agent-support-en.yaml`）。
+ 在自动黄金测试用例中包含提示。
+ 使用 IaC 模板部署 Amazon Bedrock 代理配置（包括工具、说明和知识库 URIs）。
+ 仅在以下情况下部署 Amazon Bedrock 代理更新：
  + 提示回归测试通过。
  + 工具权限与 IAM 模板相匹配。
  + 置信度阈值或验证 Lambda 结果符合可接受的标准。

这种方法可以防止静默的即时降级，并确保生产中可重复的生成式 AI 行为。

## AgentCore 与 CI/CD 管道集成
<a name="integrating-agentcore-with-cicd-pipelines"></a>

Amazon Bedrock 通过引入托管运行时和内存结构来 AgentCore 扩展传统 CI/CD 自动化，用于代理部署、测试和演进。当前的无服务器管道可以自动打包和部署代理代码（例如，通过 AWS CodePipeline AWS CodeBuild、或 AWS CDK）。但是，可以直接 AgentCore 集成到此流程中，以便在部署生命周期中管理代理状态、内存和工具连接器。

 AgentCore 与 CI/CD 管道的关键集成点如下：
+ **运行时注册和版本控制** — 每个部署的代理都可以在运行时注册， AgentCore 运行时负责扩展、路由和生命周期编排。这种方法取代了在 CI/CD 工作流程中维护自定义注册表或服务发现逻辑的需求。
+ **内存快照和提升** — 在自动测试期间， AgentCore 可以保留代理内存快照，包括学习的上下文或状态，并通过管道将其与代码工件一起提升。此功能可实现开发、暂存和生产环境之间的上下文连续性。
+ **工具配置管理** — 使用 AgentCore Gateway 工具，团队可以在同一个管道中以声明方式定义与其他 AWS 服务 （例如 Amazon DynamoDB、Amazon S3、Amazon Bedro FMs ck 或 EventBridge亚马逊）的集成点。此配置管理功能有助于提供一致且可审计的访问配置。
+ **用于验证的可观察性挂钩 — AgentCore 公开用于**代理执行的内置遥测功能，使 CI/CD 管道能够在部署之前自动验证性能、推理质量和合规性指标。

 CodePipeline 部署可能包括以下步骤：

1. 使用生成新的代理代码 CodeBuild。

1. 将代理部署到 AgentCore 运行时以供执行。

1. 运行自动集成测试，使用 AgentCore 内存来持续运行并比较各次运行的状态。

1. 将成功的版本推广到生产环境，同时更新 AgentCore 注册表以进行发现和编排。

## AWS 服务 用于 CI/CD 工具
<a name="section-cicd-aws-services"></a>

以下 AWS 服务 支持无服务器 AI 的 CI/CD 实现：
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)为代码、提示和基础架构提供 end-to-end管道功能。
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)运行测试、linting 和验证。
+ [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html)以及 HashiCorp [https://www.terraform.io/docs](https://www.terraform.io/docs)（第三方工具）定义基础架构、代理、权限和工作流程。[CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 存储版本控制的提示文件和代理模板。
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) API 和 CLI 会动态注册提示和代理定义。
+ CloudWatch S@@ [ynthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 执行部署后探测和置信度验证。
+ [Lambda @Edge 和](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html) A [ma](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) zon EventBridge 会 CI/CD 从受监控的事件（例如漂移和部署失败）中触发。

## 摘要 CI/CD 和自动化
<a name="section-cicd-summary"></a>

CI/CD 不仅是一种最佳实践，也是扩展安全可靠的 AI 系统的必要条件。自动化具有敏捷的灵敏度、工具自主性和基础架构的复杂性，可带来以下几个重要好处：
+ 缩短创新周期，降低风险
+ 可管理和可审计的更新
+ 跨团队和地区的稳定环境
+ 逻辑和语言的集成测试

通过 AgentCore 集成到 CI/CD 管道中，代理部署将从代码交付演变为持续的功能交付。在现代无服务器 AI 系统中，推理、内存和状态成为一流的可部署资产。

通过将 DevOps 原理应用于人工智能原生架构，企业可以负责任地、快速、大规模地将人工智能投入生产。