我是API dev的新手,并且没有广泛的背景知识。因此,如果我的问题看起来太简单(愚蠢),请记住这一点。我正在使用无服务器和AWS lambda来更好地理解API。定义一个简单的函数并为get请求定义一个http端点非常容易。但是,有一个帖子后事件,我有麻烦。
据我所知,根据documentation,典型的lambda函数始终是模板:
def my_function(event, context):
pass
如果我理解正确,event
参数包含发送到我的函数的实际输入参数。如果我的API将字符串作为输入并且只是将其大写,则输入字符串将成为事件对象的一部分。它是否正确?
是否有任何规则,事件对象需要如何,我如何传递参数等?我真的无法找到这些信息。如果有人可以提供这些信息或我可以找到的链接,我将非常感谢资源。
答案 0 :(得分:2)
尝试在Lambda控制台中配置测试事件。
它将提供各种样本事件结构,可以帮助您
答案 1 :(得分:2)
你是正确的event
是接收输入的变量(又名有效载荷)。在大多数情况下,这应该是json友好dict
,但它也可以是list
,str
,int
,float
或{{1} }。
当您调用Lambda时,例如从另一个Python应用程序using boto3调用Lambda时,您只需传递此有效负载。
如果您需要为Lambda提供HTTP接口,最好的选择可能是使用带有Lambda Proxy Integration的API网关。在这种情况下,您可以POST POST json,API Gateway会自动将其解析为Python NoneType
并在事件中提供给您。请注意,在这种情况下,您从Lambda返回时应该遵循一些basic requirements。