当我尝试调用 graphql API 时,我在 AWS Appsync 控制台中收到以下响应。
Request failed with status code 400
查询:
query MyQuery {
getUserData(inputArguments: $inputArguments) {
__typename
}
}
变量:
{
"inputArguments": {
}
}
我无法调试它,因为 Lambda 没有被调用。
这很有可能是权限不足造成的。 Appsync是否有权调用Lambda函数?
Somawhat 类似问题在这里讨论 https://github.com/aws/aws-cdk/issues/19239
从作为解决方案的链接问题中摘录代码。它授予 appsync.amazonaws.com 调用“authorizerLambda”lambda 的权限:
authorizerLambda.addPermission("appsync", {
principal: new ServicePrincipal('appsync.amazonaws.com'),
action: 'lambda:InvokeFunction',
})