Aws lambda aws API网关-{“消息”:“缺少身份验证令牌”}
我的lambda在本地工作并返回JSON。Aws lambda aws API网关-{“消息”:“缺少身份验证令牌”},aws-lambda,aws-api-gateway,Aws Lambda,Aws Api Gateway,我的lambda在本地工作并返回JSON。 我的API网关在本地工作,即调用lambda并返回JSON 但是,当我将API发布到我的开发阶段,然后尝试使用调用url时,我得到 拉姆达: require 'json' def lambda_handler(event:, context:) if event['queryStringParameters'].nil? input = 1 else if event['queryStringParameters']['in'
我的API网关在本地工作,即调用lambda并返回JSON 但是,当我将API发布到我的开发阶段,然后尝试使用调用url时,我得到 拉姆达:
require 'json'
def lambda_handler(event:, context:)
if event['queryStringParameters'].nil?
input = 1
else
if event['queryStringParameters']['in']
input = event['queryStringParameters']['in'].to_i
else
input = 1
end
end
triple = (input * 3).to_s
{ statusCode: 200, body: JSON.generate("Hello from Lambda! Result is " + input.to_s + " *3 = " + triple) }
end
API网关:
我试图创建“授权人”,但出现以下错误: 您正在向端点的根url发出请求,该url是amazon提供的链接,但是由于您需要指定所请求的资源,因此无法正常工作。当你打开舞台并寻找里面的URL时,你会看到这个。 添加资源的路径,例如
您不应该需要授权人,除非您想要一个用于您的用例的授权人。了解有关API网关访问控制的更多信息: 我认为您的问题可能是您没有使用SigV4对请求进行签名: 然而,在写这个答案之前,我做了一个快速的搜索,看看是否有更简单的我可能会错过,并有。您似乎正在向端点的根url发出请求,但没有指定所请求的资源。搜索您收到的错误时的顶部堆栈溢出结果解释了问题:
当您的api网关需要api密钥时,您必须在请求头中传递它。 x-api-key:yourkey
您可以在参考资料中检查API的方法后执行。如果您没有使用任何类型的授权,“缺少身份验证令牌”表示URL不正确或缺少
curl -v -X $HTTP_METHOD https://$API_ID.execute-api.$AWS_REGION.amazonaws.com/$STAGE_NAME/$RESOURCE_NAME
也许我需要创建一个“授权人”吗?另请看:你能看看这个吗
curl -v -X $HTTP_METHOD https://$API_ID.execute-api.$AWS_REGION.amazonaws.com/$STAGE_NAME/$RESOURCE_NAME