我已使用VPC链接在AWS API网关上使用单一方法设置API到HTTP服务。
我还使用Lambda为该API方法设置了TOKEN自定义授权程序。
自定义授权程序基于AWS Node.js自定义授权程序蓝图,我基本上允许所有方法通过并返回'上下文'部分以及IAM。
{
"principalId": "user|a1b2c3d4",
"policyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "execute-api:Invoke",
"Effect": "Allow",
"Resource": [
"arn:aws:execute-api:[region]:[account_id]:[restApiId]/[stage]/*/*"
]
}
]
},
"context": {
"key": "new-token",
"number": 1,
"bool": true
}
}
这是Lambda测试时Lambda测试控制台和API网关自定义授权控制台的结果。
最后,我将Authorization标头映射到' context.authorizer.key'在“集成请求”部分中。
现在,当我执行请求时,我希望Authorization标头会填充来自' context'的值。授权人的回复部分,但它从未填充过。
我做错了什么?
答案 0 :(得分:0)
事实证明我的设置一直都是正确的。
我正在使用AWS API Gateway测试工具进行测试(使用其中一个屏幕截图中的TEST按钮),但该工具实际上并不允许您端到端地测试它。我最终部署了我的舞台,然后使用Postman进行测试。然后它开始工作了。怪异。