| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 使用跨原始资源共用 CORS 的 Amazon API Gateway (HTTP API) -> 正文阅读 |
|
[网络协议]使用跨原始资源共用 CORS 的 Amazon API Gateway (HTTP API) |
使用跨原始资源共用 CORS 的 Amazon API Gateway (HTTP API)跨原始资源共用 (CORS) 需要从不在相同网域托管的网页叫用 Web API。以下展示如何建立一个使用跨原始资源共用 CORS 的 Amazon API Gateway 使用 HTTP API。 步骤 1. 进入 AWS Lambda 控制台 登录 AWS 控制台画面后选择进入 AWS Lambda 控制台,单击左边功能导览列中的函式,会进入函式画面,注意所在区域,本范例以东京区域为例,如下图所示,单击建立函式按钮。 AWS Lambda 函式控制台画面 步骤 2. 建立 Lambda 函式 在建立函式画面中,设定如下:
配置完毕后单击右下方的建立函式即可,如下图所示。 建立 Lambda 函式配置 步骤 3. 新增触发条件 进入 Lambda 函式的编辑画面后,首先先单击 +新增触发 按钮,用来指定 API Gateway 触发这个 Lambda 函式,配置选项如下:
将 API Gateway 新增至 Lambda 函数,以建立可叫用函数的 HTTP 端点,而 API Gateway支援两种类型的 RESTful API︰HTTP API 和 REST API。HTTP API 是轻量级、低延迟的 RESTful API,较新推出并内建于 API Gateway version 2 API;REST API 是可以高度客制化的 RESTful API。 勾选跨原始资源共用 (CORS) 选项可在所有回应中新增 Access-Control-Allow-Origin 标头,以启用任何网域的跨原始资源共用 (CORS)。此外,Lambda 会增加 Amazon API Gateway 的必要权限,以便用这个触发条件叫用您的 Lambda 函式。这点可以透过检视 IAM 来观察增加的权限。 配置完毕后单击 新增 按钮,如下图所示。
步骤 4. 修改程式码 修改 Lambda 程式码以便于后续观察 API Gateway 是如何传递 HTTP 的请求,所以以下代码将传入参数 event 显示出来,修改完程式码后记得单击 Deploy 按钮,这才会把这代码布署到云端,如下图所示。
修改 Lambda 程式码 步骤 5. 透过 API Gateway 触发 Lambda 函式 单击上图的 API Gateway 或是 组态 页签后选择 触发 功能画面,会看到步骤 3 所建立的 API Gateway端点,单击 API 终端节点 就可以透过 API Gateway 触发 Lambda 函式,如下图所示。
下图显示呼叫 API Gateway 的结果,因为使用者的请求为 GET ,可以在 [“requestContext”][“http”]这个键值中找到使用者的请求内容。
步骤 6. 建立本地端的网页调用 API Gateway 因为 RESTful API 通常都是透过程式调用,以下我们撰写一个本地端的 HTML 网页透过 API Gateway 以 get 与 post 方法来传资料给后端的 Lambda 函式,观察在 API Gateway 后方的Lambda 函式,会接收到怎样的请求格式。
使用浏览器打开,画面如下图。
步骤 7. 修改 Lambda 函式 因为 Lambda 函式会接收到前端网页所传递过来的 http 请求,所以我们将原来的程式码改成可以接收 GET/POST 请求的代码。
修改完记得单击 Deploy 按钮,结果如下所示。
步骤 8. 检验 CORS 请求 使用 Chrome 浏览器,打开步骤 6 的本地网页,并打开开发者工具,接著单击 使用 get 方法 表单中的 提交 按钮,观察下方开发者工具中的 Headers 页签,可以发现传送过去的中文会被转换成 UTF-8 的 16 进制编码,而 Remote Address 这个标头说明请求是由本地端发出,结果如下图所示。
使用 Chrome 浏览器,打开步骤 6 的本地网页,并打开开发者工具,接著单击 使用 POST 方法 表单中的 提交 按钮,观察下方开发者工具中的 Payload 页签,可以发现传送过去的表单信息,而上方的网页内容是回传整个 event 参数,可以发现因为我们是用表单方式传送数据给 API Gateway,所以 [“content-type”] 的内容是 “application/x-www-form-urlencoded”,而非 AWS Lambda 搭配 Amazon API Gateway (HTTP API) 这篇文章所用的 “application/json”,这导致后面的 [“body”] 字段会使用 base64 进行编码,结果如下图所示。
参考资料
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:20:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |