

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

# 使用 Amazon Bedrock 实现 AWS 基础设施运营自动化
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock"></a>

*Ishwar Chauthaiwale 和 Anand Bukkapatnam Tirumala，Amazon Web Services*

## Summary
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock-summary"></a>

在云原生解决方案中，自动执行常见基础设施操作在维护高效、安全和经济实惠的环境方面起着至关重要的作用。手动处理操作非常耗时，而且容易出现人为错误。此外，具有不同 AWS 专业知识水平的团队成员需要在执行这些任务的同时确保遵守安全协议。此模式演示了如何使用 Amazon Bedrock 通过自然语言处理 (NLP) 自动执行常见的 AWS 基础设施操作。

这种模式可以帮助组织开发可重复使用、模块化和安全的代码，用于在多个环境中部署基于生成式人工智能的基础设施。通过专注于基础设施即代码 (IaC) 和自动化，它提供了关键 DevOps 优势，包括版本控制、一致的部署、减少错误、更快的配置和改进的协作。

该模式实现了一个安全的架构，使团队能够管理与密钥相关的操作， AWS 服务 包括：
+ Amazon Simple Storage Service（Amazon S3）存储桶版本控制管理
+ Amazon Relational Database Service（Amazon RDS）快照创建
+ Amazon Elastic Compute Cloud（Amazon EC2）实例管理

该架构使用亚马逊虚拟私有云（Amazon VPC）终端节点和私有网络进行安全通信，其 AWS Lambda 功能在私有子网中充当任务执行者。Amazon S3 提供数据管理并实施全面的 AWS Identity and Access Management (IAM) 角色和权限，以确保适当的访问控制。此解决方案不包括聊天记录功能，也不会存储聊天记录。

## 先决条件和限制
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock-prereqs"></a>
+ 活跃 AWS 账户的.
+ 应当采取适当的访问控制措施，以帮助保护和控制访问权限。访问控制的示例包括使用基础模型访问权限 AWS Systems Manager、用于部署的 IAM 角色和基于服务的角色、禁用对 Amazon S3 存储桶的公开访问以及设置死信队列。
+  AWS Key Management Service (AWS KMS) [客户管理的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。
+ AWS Command Line Interface (AWS CLI) 版本 2 或更高版本，[已在部署环境中安装](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)和[配置](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。
+ [安装](https://registry.terraform.io/providers/-/aws/latest/docs/guides/version-4-upgrade)并配置了 Terraform P AWS rovider 版本 4 或更高版本。
+ 已[安装](https://developer.hashicorp.com/terraform/install)并配置 1.5.7 或更高版本的 Terraform。
+ 查看并[在 Amazon Bedrock 中为代理的操作组定义 OpenAPI 架构](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html)，以帮助防范未经授权的访问并保持数据完整性。
+ [在你 AWS 账户 中@@ [启用了所需的 Amazon Titan Text Embeddings v2 以及 Claude 3.5 Sonnet 或 Claude 3 Haiku 基础模型的访问权限](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access-modify.html)。](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html)为避免部署失败，请确认您的目标部署 AWS 区域 [支持所需的模型](https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html)。
+ 遵循 [AWS Well Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec-design.html) 最佳实践的虚拟私有云（VPC）。
+ 已完成对 [Amazon 负责任的人工智能政策](https://aws.amazon.com/ai/responsible-ai/policy/)的审阅。

**产品版本**
+ Amazon Titan 文本嵌入 v2
+ Anthropic Claude 3.5 Sonnet 或 Claude 3 Haiku
+ Terraform P AWS rovider 版本 4 或更高版本
+ Terraform 版本 1.5.7 或更高版本

## 架构
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock-architecture"></a>

下图显示了此模式的工作流和架构组件。

![使用 Amazon Bedrock 自动执行常见 AWS 基础设施操作的工作流。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/924e503f-bfc5-4452-abdf-d72a58d4d36f/images/bd56ad29-b435-4543-8ee8-dc4e1d38df18.png)


解决方案架构由多个层组成，它们协同工作以处理自然语言请求并执行相应的 AWS 操作：

1. 用户通过 Amazon Bedrock 聊天控制台提出操作请求。

1. 聊天机器人使用 Amazon Bedrock 知识库来处理请求。它实现了用于自然语言处理的 Amazon Titan 文本嵌入 v2 模型。

1. 如果用户提示中包含操作请求，则 Amazon Bedrock 操作组使用 Anthropic Claude 3 Haiku 或 Claude 3.5 Sonnet 模型（取决于您的选择）作为执行逻辑，并通过 OpenAPI 架构定义操作。

1. 操作组使用访问 AWS PrivateLink 用于安全服务通信的 Amazon VPC [终端节点](https://docs.aws.amazon.com/whitepapers/latest/aws-privatelink/what-are-vpc-endpoints.html)。

1. 该 AWS Lambda 功能可通过亚马逊 Bedrock 服务的亚马逊 VPC 终端节点访问。

1. Lambda 函数是主要的执行引擎。根据请求，Lambda 函数调用 API 以对 AWS 服务执行操作。Lambda 函数还处理操作的路由和执行。

1. 从 Lambda 函数中 AWS 服务 获取 API 请求并执行相应的操作。

1. Lambda 函数计算 Amazon Bedrock 可以理解的输出有效载荷。

1. 此有效载荷通过使用 PrivateLink 安全服务通信发送到 Amazon Bedrock。Amazon Bedrock 使用的大语言模型（LLM）可以理解此有效载荷，并将其转换为人类可理解的格式。

1. 然后在 Amazon Bedrock 聊天控制台上向用户显示输出。

该解决方案支持以下主要操作：
+ Amazon S3 – 启用存储桶版本控制以进行版本控制。
+ Amazon RDS – 创建用于备份的数据库快照。
+ Amazon EC2 – 列出实例并控制实例的启动和停止。

## 工具
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock-tools"></a>

**AWS 服务**
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) 是一项完全托管的服务，它通过统一的 API 提供来自领先的人工智能初创公司和亚马逊的高性能基础模型 (FMs) 供您使用。
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 是一个开源工具，可帮助您 AWS 服务 通过命令行 shell 中的命令进行交互。
+ [Amazon Elastic Compute Cloud（Amazon EC2）](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)在 AWS Cloud中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器，并快速纵向扩展或缩减这些服务器。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 通过控制谁经过身份验证并有权使用 AWS 资源，从而帮助您安全地管理对资源的访问权限。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 是一项计算服务，可帮助您运行代码，无需预调配或管理服务器。它只在需要时运行您的代码，并自动进行扩展，因此您只需为使用的计算时间付费。
+ [Amazon OpenSearch Server](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-overview.html) less 是亚马逊 OpenSearch 服务的按需无服务器配置。
+ [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)帮助您创建从您的虚拟私有云 (VPCs) 到 VPC 外部服务的单向私有连接。
+ [Amazon Relational Database Service（Amazon RDS）](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)可帮助您在 AWS Cloud中设置、操作和扩展关系数据库。
+ [Amazon Simple Storage Service（Amazon S3）](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)是一项基于云的对象存储服务，可帮助您存储、保护和检索任意数量的数据。
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 可帮助您管理在 AWS Cloud中运行的应用程序和基础设施。它简化了应用程序和资源管理，缩短了检测和解决操作问题的时间，并帮助您大规模安全地管理 AWS 资源。
+ [Amazon Virtual Private Cloud（亚马逊 VPC）](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)可帮助您将 AWS 资源启动到您定义的虚拟网络中。该虚拟网络类似于您在数据中心中运行的传统网络，并具有使用 AWS的可扩展基础设施的优势。

**其他工具**
+ [Git](https://git-scm.com/docs) 是开源分布式版本控制系统。
+ [Terraform](https://www.terraform.io/) 是一款基础设施即代码 (IaC) 工具 HashiCorp ，可帮助您创建和管理云和本地资源。

**代码存储库**

此模式的代码可在 GitHub [aws-sam infra-ops-orchestrator](https://github.com/aws-samples/infra-ops-orchestrator) ples/ 存储库中找到。

## 最佳实践
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock-best-practices"></a>
+ 定期监控 Lambda 执行日志。有关更多信息，请参阅 [Lambda 函数监控和故障排除](https://docs.aws.amazon.com/lambda/latest/dg/lambda-monitoring.html)。有关最佳实践的更多信息，请参阅[使用 AWS Lambda 函数的最佳实践](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)。
+ 定期审核安全配置，以确保符合贵组织的要求。有关更多信息，请参阅[安全最佳实践](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec-bp.html)。
+ 遵循最低权限原则，并授予执行任务所需的最低权限。有关详情，请参阅 IAM 文档中的[授予最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv)和[安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 操作说明
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock-epics"></a>

### 部署解决方案
<a name="deploy-the-solution"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 克隆存储库。 | 要在本地计算机上克隆存储库，请运行以下命令：<pre>git clone "git@github.com:aws-samples/infra-ops-orchestrator.git"<br />cd infra-ops-orchestrator</pre> | AWS DevOps， DevOps 工程师 | 
| 编辑环境变量。 | 编辑克隆存储库的根目录中的 `terraform.tfvars` 文件。查看 `[XXXXX]` 所指示的占位符，并根据您的环境对其进行更新。 | AWS DevOps， DevOps 工程师 | 
| 创建基础设施。 | 要创建基础设施，请运行以下命令：<pre>terraform init</pre><pre>terraform plan</pre><br />仔细审查执行计划。如果计划的更改可以接受，则请运行以下命令：<pre>terraform apply --auto-approve</pre> | AWS DevOps， DevOps 工程师 | 

### 访问该解决方案
<a name="access-the-solution"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 访问该解决方案。 | 成功部署后，请按照以下步骤使用基于聊天的界面：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/automate-aws-infrastructure-operations-by-using-amazon-bedrock.html) | AWS DevOps， DevOps 工程师 | 

### 清理 资源
<a name="clean-up-resources"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 删除创建的资源。 | 要删除此模式创建的所有基础设施，请运行以下命令：<pre>terraform plan -destroy </pre><br />仔细审查销毁计划。如果计划的删除可以接受，则请运行以下命令：<pre>terraform destroy</pre><br />注意：此命令将永久删除由此模式创建的所有资源。在移除任何资源之前，该命令会提示进行确认。 | AWS DevOps， DevOps 工程师 | 

## 问题排查
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock-troubleshooting"></a>


| 问题 | 解决方案 | 
| --- | --- | 
| 代理行为  | 有关此问题的信息，请参阅 Amazon Bedrock 文档中的[测试代理行为并进行问题排查](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-networking.html)。 | 
| Lambda 网络问题 | 有关这些问题的信息，请参阅 Lambda 文档中的 [Lambda 中的联网问题疑难解答](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-networking.html)。 | 
| IAM 权限 | 有关这些问题的信息，请参阅 IAM 文档中的[排查 IAM 问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot.html)。 | 

## 相关资源
<a name="automate-aws-infrastructure-operations-by-using-amazon-bedrock-resources"></a>
+ [为 Amazon RDS 的单可用区数据库实例创建数据库快照](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)
+ [在 Amazon Bedrock 中为代理的操作组定义 OpenAPI 架构](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html)
+ [在存储桶上启用版本控制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html)
+ [亚马逊 Bedrock Agents 的工作原理](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-how.html)
+ [利用 Amazon Bedrock 知识库检索数据并生成人工智能响应](https://docs.aws.amazon.com/whitepapers/latest/aws-privatelink/aws-privatelink.html)
+ [通过安全访问服务 AWS PrivateLink](https://docs.aws.amazon.com/whitepapers/latest/aws-privatelink/aws-privatelink.html)
+ [停止并启动 Amazon EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)
+ [使用操作组来定义代理要执行的操作](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-action-create.html)