使用 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 以了解如何执行此操作的简单示例。
这是另一种方法:
打开 API 网关,select 您的端点并单击 资源
Select 设置中的方法请求
在URL查询字符串参数下,您可以添加查询字符串。
例如,在我的 Python lambda 函数中,我可以使用以下内容检索查询参数:
def endpoint(event, context):
my_parameter = event["queryStringParameters"]
我按照此处的示例设置了示例 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 以了解如何执行此操作的简单示例。
这是另一种方法:
打开 API 网关,select 您的端点并单击 资源
Select 设置中的方法请求
在URL查询字符串参数下,您可以添加查询字符串。
例如,在我的 Python lambda 函数中,我可以使用以下内容检索查询参数:
def endpoint(event, context):
my_parameter = event["queryStringParameters"]