使用 HTTP 终端节点时如何将 GET 参数传递到我的 AWS Lambda 函数?

How do I pass GET parameters to my AWS Lambda function when using an HTTP endpoint?

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

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

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

有什么帮助吗?

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

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

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

这几乎是

的重复

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

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

这是另一种方法:

  1. 打开 API 网关,select 您的端点并单击 资源

  2. Select 设置中的方法请求

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

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

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