【问题标题】:How do I pass GET parameters to my AWS Lambda function when using an HTTP endpoint?使用 HTTP 终端节点时,如何将 GET 参数传递给我的 AWS Lambda 函数?
【发布时间】:2016-04-11 08:18:25
【问题描述】:

我按照此处的示例设置了示例 AWS Lambda 函数:http://docs.aws.amazon.com/lambda/latest/dg/get-started-step4-optional.html

然后,我通过 AWS API Gateway 创建了一个 HTTP GET 端点。我可以访问端点,但我不知道如何将 int myCount 作为参数传递。

我尝试将?myCount=3 作为 GET 参数,但没有奏效。

有什么帮助吗?

【问题讨论】:

  • 你能发布一些你的代码吗?您是否使用“curl -d etc.”发送的相同数据测试了您的 API?
  • 如果您正确传递数据,您应该能够访问传递给您的 lambda 处理程序的 lambda 'event' 对象中的数据。您可以尝试在处理程序中记录事件对象的内容。

标签: amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

这是另一种方法:

  1. 打开 API Gateway,选择您的端点并点击 Resources

  2. 在设置中选择方法请求

  3. URL查询字符串参数下,可以添加查询字符串。

例如,在我的 Python lambda 函数中,我可以使用以下内容检索查询参数:

def endpoint(event, context):
    my_parameter = event["queryStringParameters"]

【讨论】:

    【解决方案2】:

    为了将 HTTP 参数发送到 lambda 函数,它们需要通过映射模板在请求正文中发送。

    请参阅此blog post,了解如何执行此操作的简单示例。

    【讨论】:

      【解决方案3】:

      您需要在 API Gateway 中设置mapping template。如果您提前知道参数的名称,您的模板可能如下所示:

      {
        "myCount": "$input.params('myCount')",
        "myUserId": "$input.params('myUserId')"
      }
      

      每个$input.params('...') 将被评估,当事件传递给 Lambda 时,查询字符串中的值将被放置在其位置。

      这几乎是passing query params for aws lambda function的副本

      【讨论】:

        猜你喜欢
        • 2016-03-27
        • 2016-04-10
        • 2017-12-25
        • 2017-12-30
        • 1970-01-01
        • 1970-01-01
        • 2012-09-17
        • 2021-12-13
        • 1970-01-01
        相关资源
        最近更新 更多