Aws lambda 从AWS Lambda调用AWS API网关

Aws lambda 从AWS Lambda调用AWS API网关,aws-lambda,aws-api-gateway,aws-sdk-nodejs,Aws Lambda,Aws Api Gateway,Aws Sdk Nodejs,情况是: 我有一个RESTAPI网关,它在被触发时调用lambda,lambda处理请求并返回repsonse 此api端点是公共的 我有另一个lambda,它将调用这个API网关/端点并从中获取响应 现在查询: 我直接调用api的调用url,就像其他api一样。那么这是正确的方法吗 当我将调用url放在浏览器地址栏中时,它给出了缺少的身份验证令牌 如何在调用lambda时实际调用url,我指的是如何传递令牌;在Node.js中 谢谢嗯,问题很广泛。我正在尽可能多地回答 首先,您正在遵循REST

情况是:

  • 我有一个RESTAPI网关,它在被触发时调用lambda,lambda处理请求并返回repsonse
  • 此api端点是公共的
  • 我有另一个lambda,它将调用这个API网关/端点并从中获取响应
  • 现在查询:

  • 我直接调用api的调用url,就像其他api一样。那么这是正确的方法吗
  • 当我将调用url放在浏览器地址栏中时,它给出了缺少的身份验证令牌
  • 如何在调用lambda时实际调用url,我指的是如何传递令牌;在Node.js中

  • 谢谢嗯,问题很广泛。我正在尽可能多地回答

    首先,您正在遵循RESTAPI->Lambda的设计,它被称为“集成类型”是“Lambda函数”,并使用“使用Lambda代理集成”

    请查看文档和示例

    仔细阅读这份文件,我相信你会理解这个模型。在高层,这个模型API网关正在传递请求和响应,您(Lambda)将处理所有事情

    问题1: 我直接调用api的调用url,就像其他api一样。那么这是正确的方法吗

    [答:]这个模型没有问题。是的,您可以像调用任何RESTAPI一样调用此API(Lambda代理)

    问题2: 当我将调用url放在浏览器地址栏中时,它给出了缺少的身份验证令牌

    [答:]请检查API的设置。如下面的屏幕截图所示,我的api使用Cognito作为授权者。这意味着消费者在调用API时需要提供“令牌”(例如oAuth2)。您可以使用或。这取决于你。 如果您不需要任何授权者,可以将其设置为无,这样您的API就不需要身份验证令牌

    简而言之,您现在收到的消息意味着您的API有一个“授权者”,并且您没有随请求一起发送令牌

    问题3: 如何在调用lambda时实际调用url,我指的是如何传递令牌;在Node.js中

    这很常见。你可以像“Node.js中的oAuth2”一样在谷歌上搜索它,它会给你大量的例子

    我希望有帮助。否则,请留下您的评论和问题


    谢谢,

    评论2。关于问题1的答案,当前阶段是测试,我可以看到这个阶段的调用url。当添加prod阶段时,调用url是否会更改,如何让程序根据
    process.env.env
    Comment 3自动决定调用哪个url。关于问题2的答案,api网关中的授权人选项卡为空,并且有一个
    创建授权人
    按钮。但是,在
    api密钥源中,选择了标头而不是授权人