

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

# 架构概述
<a name="architecture-overview"></a>

本节提供了此解决方案所部署组件的参考实施架构图。

## 架构图
<a name="architecture-diagram"></a>

使用默认参数部署此解决方案将在 AWS 云中构建以下环境。

 **在 AWS 架构上发现工作负载** 

![工作负载发现拱形图](http://docs.aws.amazon.com/zh_cn/solutions/latest/workload-discovery-on-aws/images/workload-discovery-arch-diagram.png)


使用 AWS CloudFormation 模板部署的解决方案组件的高级流程如下：

1.  [HTTP Strict-Transport-Security (HSTS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) 为来自[亚马逊 CloudFront](https://aws.amazon.com/cloudfront/)分配的每个响应添加安全标头。

1. [亚马逊简单存储服务](https://aws.amazon.com/s3/) (Amazon S3) 存储桶托管与亚马逊一起分发的 Web UI CloudFront。[Amazon Cognito](https://aws.amazon.com/cognito/) 对用户访问网页用户界面的身份进行身份验证。

1.  [AWS WAF](https://aws.amazon.com/waf/) 保护 AppSync API 免受常见漏洞和机器人攻击，这些漏洞和机器人可能会影响可用性、危及安全性或消耗过多资源。

1.  [AWS AppSync](https://aws.amazon.com/appsync/) 终端节点允许 Web UI 组件请求资源关系数据、查询成本、导入新的 AWS 区域和更新首选项。AWS AppSync 还允许发现组件在解决方案的数据库中存储永久数据。

1. AWS AppSync 使用 Amaz [on Cognito 配置的 JSON 网络令牌](https://datatracker.ietf.org/doc/html/rfc7519) (JWTs) 对每个请求进行身份验证。

1. `Settings`[AWS Lambda](https://aws.amazon.com/lambda/) 函数将导入的区域和其他配置保留到亚马逊 Dynam [oD](https://aws.amazon.com/dynamodb/) B 中。

1. 该解决方案将 [AWS A](https://aws.amazon.com/amplify/) mplify 和 Amazon S3 存储桶部署为存储管理组件，用于存储用户首选项和保存的架构图。

1. 数据组件使用 `Gremlin Resolver` AWS Lambda 函数查询和返回来自[亚马逊 Neptun](https://aws.amazon.com/neptune/) e 数据库的数据。

1. 数据组件使用 `Search Resolver` Lambda 函数查询资源数据并将其保存到[亚马逊 OpenSearch 服务](https://aws.amazon.com/opensearch-service/)域中。

1. `Cost`Lambda 函数使用[亚马逊 Athena](https://aws.amazon.com/athena) [查询 AWS 成本和使用量报告 (AWS](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html) CUR)，以便向网页用户界面提供估计的成本数据。

1. 亚马逊 Athena 在 AWS CUR 上运行查询。

1. AWS CUR 将报告传送到`CostAndUsageReportBucket`亚马逊 S3 存储桶。

1. `Cost`Lambda 函数将亚马逊 Athena 的结果存储在亚马逊 S3 存储桶中。`AthenaResultsBucket`

1.  [AWS](https://aws.amazon.com/codebuild) 在映像部署组件中 CodeBuild构建发现组件容器镜像。

1.  [亚马逊弹性容器注册表](https://aws.amazon.com/ecr/) (Amazon ECR) 包含[映像部署组件提供的 Docker](https://docs.docker.com/engine/reference/commandline/images/) 镜像。

1.  [亚马逊弹性容器服务](https://aws.amazon.com/ecs) (Amazon EC [S) 管理 AWS Fargate](https://aws.amazon.com/fargate/) 任务并提供运行该任务所需的配置。AWS Fargate 每 15 分钟运行一次容器任务，以刷新库存和资源数据。

1.  [AWS Config](https://aws.amazon.com/config) 和 [AWS SDK](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html) 调用可帮助发现组件维护来自导入区域的资源数据清单，然后将其结果存储在数据组件中。

1. AWS Fargate 任务将 AWS Config 和 AWS 开发工具包调用结果保存在亚马逊 Neptune 数据库和带有 API API 调用的 OpenSearch 亚马逊服务域中。 AppSync 