考题解析 | Amazon API Gateway 跨域资源共享(CORS)


  题目

一个团队正在构建一个托管在公共 Amazon S3 存储桶中的 HTML 表单。该表单使用 JavaScript 将数据发布到 Amazon API Gateway 终端节点。API 终端节点已与 AWS Lambda 函数相集成。该团队已在 API Gateway 控制台中测试了每种方法,并收到了有效响应。

团队必须完成哪些步骤组合,才能使表单成功发布到 API 终端节点并收到有效响应? (请选择两项)

A. 配置 S3 存储桶以允许跨域资源共享 (CORS)。
B. 将表单托管在 Amazon EC2 上,而不是在 Amazon S3 上。
C. 请求增加 API Gateway 的配额。
D. 在 API Gateway 中启用跨域资源共享 (CORS)。
E) 配置 S3 存储桶进行 Web 托管。

  参考答案

D、E

  参考解析

要通过网站终端节点提供 HTML 表单,需要选项 E。

A. 不正确。因为必须将 CORS 标头配置为由 API 终端节点的动态响应返回。为 S3 存储桶配置 CORS无济于事。

B. 不正确。因为相对于从 S3 存储桶提供静态网页,从 Amazon EC2 上运行的 Web 服务器没有什么优势。

C. 不正确。因为 API Gateway 对每个 AWS 区域的默认配额为每秒 10000 个请求。并且如有必要,可以申请增加此配额。

D. 正确。因为构建访问托管在不同域或源上的 API 的 Web 应用程序通常需要跨域资源共享 (CORS)。CORS 是一项浏览器安全功能,可限制从浏览器中运行的脚本发起的 HTTP 请求。通过启用 CORS,可以允许来自托管在不同域中的 Web 应用程序对 API 的请求。例如,如果 API 托管在 https://[api_id].execute-api.[region].amazonaws.com/ 上,并且想从托管在[bucketname].s3.website-[region] 上的 Web 应用程序调用该 API,那么该 API 必须支持 CORS。

E. 正确。存储在 S3 存储桶中的网页文件,必须通过开启 S3 存储桶的静态网站托管特性,才可以创建一个可以正常工作的站点。单独的网页包含静态内容,它们也可以包含客户端脚本。