在Aws控制台创建API Gateway服务,我们这里创建HTTP的Api Gateway。
集成选择lamda函数
lambda_apigateway的代码比较简单,只是返回一个’Hello from Lambda!’
export const handler = async(event) => { // TODO implement const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; };
配置一个路由/abc1
用RESTClient测试一下。
我们可以给Api Gateway附加授权,就是在Api Gateway调用lambda函数之前,加一个权限的验证。这个权限验证可以是JWT,也可以是另外一个lambda函数。
我们使用lambda函数来做授权
授权lambda函数的例子
export const handler = async(event) => { let response = { "isAuthorized": false, "context": { "stringKey": "value", "numberKey": 1, "booleanKey": true, "arrayKey": ["value1", "value2"], "mapKey": {"value1": "value2"} } }; if (event.headers.authorization === "secretToken") { response = { "isAuthorized": true, "context": { "stringKey": "value", "numberKey": 1, "booleanKey": true, "arrayKey": ["value1", "value2"], "mapKey": {"value1": "value2"} } }; } return response; };
创建成功
我们再次测试一下,发现调用失败了。
在Header中加入authorization:secretToken, 调用成功!