例如,如果我们想用
得到-用户?name =鲍勃
or
获取/用户/鲍勃
如何将这两个例子作为参数传递给Lambda函数?
我在文档中看到了一些关于设置“映射from”的内容,但我在API Gateway控制台中找不到该设置。
method.request.path。在方法请求页面中定义了一个名为parameter-name的路径参数。
method.request.querystring。parameter-name用于在方法请求页面中定义的名为parameter-name的查询字符串参数。
尽管我定义了一个查询字符串,但我没有看到这两个选项。
如今,AWS上的API Gateway控制台中包含了一个下拉模板。
对于您的API,单击资源名称…然后
展开“Body Mapping Templates”
输入
application / json
为Content-Type(必须显式地输入),并单击勾
一个新窗口将打开,显示“生成模板”和一个下拉菜单(见图)。
选择
请求传递
然后点击保存
要访问任何变量,只需使用以下语法(这是Python)
例如URL:
https://yourURL.execute-api.us-west-2.amazonaws.com/prod/confirmReg?token=12345&uid=5
可以得到如下变量:
from __future__ import print_function
import boto3
import json
print('Loading function')
def lambda_handler(event, context):
print(event['params']['querystring']['token'])
print(event['params']['querystring']['uid'])
因此,不需要显式地命名或映射您想要的每个变量。