本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon API Gateway 与亚马逊集成SQS以处理异步问题 REST APIs
由纳塔利娅·科兰托尼奥·法维罗 (AWS) 和古斯塔沃·马蒂姆 () 创作 AWS
摘要
部署时 RESTAPIs,有时需要公开客户端应用程序可以发布的消息队列。例如,您可能遇到第三方延迟APIs和响应延迟的问题,或者您可能希望避免数据库查询的响应时间,或者避免在存在大量并发请求时扩展服务器APIs。在这些情况下,发布到队列的客户端应用程序只需要知道自己API已收到数据,而不是在收到数据后会发生什么。
此模式通过使用 Amazon API Gateway 向亚马逊
先决条件和限制
架构
该图说明了以下步骤:
使用 Postman、其他或其他技术等工具请求POSTRESTAPI端点。API
APIGateway 在队列中发布一条消息,该消息在请求的正文中接收。
Amazon SQS 收到消息并向 Gate API way 发送答案,并附上成功或失败代码。
工具
Amazon API Gateway 可帮助您以任何规模创建、发布RESTHTTP、维护、监控和 WebSocket APIs保护。
AWS Identity and Access Management (IAM) 通过控制谁经过身份验证并有权使用 AWS 资源,从而帮助您安全地管理对资源的访问权限。
Amazon Simple Queue Service (AmazonSQS) 提供安全、耐用且可用的托管队列,可帮助您集成和分离分布式软件系统和组件。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
创建队列。 | 要创建接收来自的消息的SQS队列,请执行以下RESTAPI操作:
| 应用程序开发人员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建一个 IAM 角色。 | 此IAM角色赋予API网关资源对 Amazon 的完全访问权限SQS。
| 应用程序开发者、AWS管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建一个 RESTAPI. | 这是向RESTAPI其发送HTTP请求的。
| 应用程序开发人员 |
将 API Gateway 连接到亚马逊SQS。 | 此步骤允许消息从HTTP请求正文内部流向 Amazon SQS。
| 应用程序开发人员 |
任务 | 描述 | 所需技能 |
---|---|---|
测试 RESTAPI. | 运行测试以检查是否缺少配置:
| 应用程序开发人员 |
更改API集成,将请求正确转发给 Amazon SQS。 | 完成配置以修复集成错误:
| 应用程序开发人员 |
在 Amazon 中测试并验证消息SQS。 | 运行测试以确认测试成功完成: | 应用程序开发人员 |
使用特殊字符测试API网关。 | 运行包含消息中不可接受的特殊字符(例如 &)的测试:
这是因为默认情况下,邮件正文中不支持特殊字符。在下一步中,您将配置 API Gateway 以支持特殊字符。有关内容类型转换的更多信息,请参阅 APIGateway 文档。 | 应用程序开发人员 |
更改API配置以支持特殊字符。 | 调整配置以接受消息中的特殊字符: 新消息应包含特殊字符。 | 应用程序开发人员 |
任务 | 描述 | 所需技能 |
---|---|---|
部署API。 |
要部署,请执行以下RESTAPI操作:
| 应用程序开发人员 |
使用外部工具进行测试。 | 使用外部工具运行测试以确认消息已成功接收:
| 应用程序开发人员 |
任务 | 描述 | 所需技能 |
---|---|---|
删除 API。 | 在API网关控制台 | 应用程序开发人员 |
删除该IAM角色。 | 在IAM控制台 | 应用程序开发人员 |
删除队SQS列。 | 在 Amazon SQS 控制台 | 应用程序开发人员 |
相关资源
SQS-SendMessage(API网关文档)
API网关中的内容类型转换(网API关文档)
$util 变量(API网关文档)
如何将 API Gateway REST API 与 Amazon 集成SQS并解决常见错误?
(re AWS : post 文章)