

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

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

 使用必需模板和可选模板部署此解决方案，使用默认参数在 AWS 云中构建以下环境。

![AWS 虚拟等候室架构图](http://docs.aws.amazon.com/zh_cn/solutions/latest/virtual-waiting-room-on-aws/images/virtual-waiting-room-diagram.png)


 这些 AWS CloudFormation 模板部署了以下基础架构：

1.  A [mazon CloudFront](https://aws.amazon.com/cloudfront/) 发行版，用于为客户提供公共 API 调用。

1.  [Amazon API Gateway](https://aws.amazon.com/api-gateway/) 公共 API 资源，用于处理来自虚拟等候室的队列请求、跟踪队列位置以及支持验证允许访问目标网站的令牌。

1.  [亚马逊简单队列服务](https://aws.amazon.com/sqs/) (Amazon SQS) 队列，用于调节流向处理队列消息的[AWS Lambda](https://aws.amazon.com/lambda/)函数的流量。SQS 队列不是为每个请求调用 Lambda 函数，而是对传入的突发请求进行批处理。

1.  API Gateway 私有 API 资源用于支持管理功能。

1.  Lambda 函数用于验证和处理公共和私有 API 请求，并返回相应的响应。

1.  [亚马逊虚拟私有云](https://aws.amazon.com/vpc/) (VPC)，用于托管直接与 Ela [sticache (Redis](https://aws.amazon.com/elasticache/redis/) OSS) 集群交互的 Lambda 函数。VPC 终端节点允许 VPC 中的 Lambda 函数与解决方案中的服务进行通信。此外，NAT 网关允许 VPC 中的 Lambda 函数连接 CloudFront 终端节点并根据需要使缓存失效。

1.  A [mazon CloudWatch](https://aws.amazon.com/cloudwatch/) 规则，用于调用 Lambda 函数，该函数与自定义 A [ma](https://aws.amazon.com/eventbridge/) zon EventBridge 总线配合使用，定期广播状态更新。

1.  用于存储令牌、队列位置和提供计数器数据的 [Amazon](https://aws.amazon.com/dynamodb/) DynamoDB 表。

1. AWS S@@ [ecrets Manager](https://aws.amazon.com/secrets-manager/) 用于存储令牌操作的密钥和其他敏感数据。

1. （可选）授权方组件，由 [AWS Identity and Access Management](https://aws.amazon.com/iam/)(IAM) 角色和用于 API Gateway 的 Lambda 授权方函数组成。

1. （可选）[亚马逊简单通知服务](https://aws.amazon.com/sns/) (Amazon SNS) 和 Lambda 函数支持两种入口策略。 CloudWatch

1. （可选）带有 API Gateway 和 Lambda 函数的 OpenID 适配器组件，允许 OpenID 提供商对访问您网站的用户进行身份验证。 CloudFront 使用[亚马逊简单存储服务](https://aws.amazon.com/s3/) (Amazon S3) 存储桶进行分发，用于此组件的等候室页面。

1. （可选）使用 Amazon S3 原始存储桶进行 CloudFront 分发，用于等候室 Web 应用程序示例。