我有一个API网关设置,它带有一个调用Lambda函数的自定义授权程序。出于测试目的,我从这里复制了以下示例:http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html#api-gateway-proxy-integration-lambda-function-nodejs
我得到了与文档中相同的答案,但当我测试授权器时,我得到了这个StackTrace:
Endpoint request body after transformations: {"type":"TOKEN","authorizationToken":"test","methodArn":"arn:aws:execute-api:ap-southeast-2:893445519708:uyue0zqh15/null/GET/"}
Authorizer result body before parsing: {"statusCode":200,"headers":{"x-custom-header":"my custom header value"},"body":"{\"message\":\"Hello World!\",\"input\":{\"type\":\"TOKEN\",\"authorizationToken\":\"test\",\"methodArn\":\"arn:aws:execute-api:ap-southeast-2:893445519708:uyue0zqh15/null/GET/\"}}"}
Execution failed due to configuration error: Invalid JSON in response: {"statusCode":200,"headers":{"x-custom-header":"my custom header value"},"body":"{\"message\":\"Hello World!\",\"input\":{\"type\":\"TOKEN\",\"authorizationToken\":\"test\",\"methodArn\":\"arn:aws:execute-api:ap-southeast-2:893445519708:uyue0zqh15/null/GET/\"}}"}
AuthorizerConfigurationException
为什么授权者不喜欢JSON响应?
授权程序响应格式与集成代理响应格式不同。我看得出来这很混乱!
自定义授权程序的输出应符合以下格式:
{
"principalId": "yyyyyyyy", // The principal user identification associated with the token sent by the client.
"policyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "execute-api:Invoke",
"Effect": "Allow|Deny",
"Resource": "arn:aws:execute-api:<regionId>:<accountId>:<appId>/<stage>/<httpVerb>/[<resource>/<httpVerb>/[...]]"
}
]
},
"context": {
"key": "value",
"numKey": 1,
"boolKey": true
}
}
PrincipalId
和PolicyDocument
是必需的,Context
是可选的。
policydocument
不是用户定义的,它与在API网关操作和参考资料http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policy-to-invoke-api.html上操作的常规IAM策略的语法相同
Lambda web控制台中也有很好的蓝图供python和node中的授权者使用,这里还有一个Java蓝图:https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints
我正在从AWS API网关调用AWS Lambda函数。返回的JSON需要压缩,因为它有时会变得太大(身体大小太大等)。但是,我在通过API网关获取响应时遇到了一些问题。这是我的Java代码: 我已经检查了Base64输出,它似乎工作正常(粘贴了它)https://www.base64decode.org/). 此外,当我与Postman核对时,我得到一个二进制blob,如果我将响应保存为以.gz
我已经删除了。锁定文件和节点\u模块并再次尝试安装。然而,它不起作用。你能帮我修一下吗?
错误:任务执行失败 ': app:使用合并Java Res For Debug转换资源'。 com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException: APK META-INF/LICENSE File1中复制的重复文件: C:\用户Jithin-P
鉴于以下情况: 检查我的和versions是否正确: 不确定我的< code>brew安装的< code>mvn是否有问题,我将其移除并下载了< code>mvn-...来自Apache的bin.zip然后我设置了我的路径,验证了< code>mvn -version和< code>java -version输出的是相同的版本。但是,我仍然有同样的问题。 我查看了前3个(来自搜索)StackOve
当我尝试构建项目时,Gradle build消息会报告以下消息: 失败:构建失败,但有一个异常。 > Gradle文件
我刚开始使用Kotlin,并尝试使用Dagger2进行设置,我见过一些示例,但它们似乎都不适合我。 我一直收到这个 错误:任务执行失败:应用程序:kaptDebugKotlin。 内部编译器错误。有关更多详细信息,请参阅日志 我有我的身材。gradle(模块:应用程序)