我有一个C#方法,我已经成功地发布为AWS Lambda函数。它看起来像这样:
public class MyClass
{
public async Task<APIGatewayProxyResponse> Test(APIGatewayProxyRequest request, ILambdaContext context)
{
return new APIGatewayProxyResponse
{
Body = "Body: " + request.Body
+ Environment.NewLine
+ "Querystring: " + (request.QueryStringParameters == null ? "null" : string.Join(",", request.QueryStringParameters.Keys)),
StatusCode = 200
};
}
}
我已通过web界面执行以下操作来配置API网关:
我希望能够像这样调用Lambda函数(无需在请求中传递任何指定的头):https://xxx.execute-api.us-east-2.amazonaws.com/prod/myclass?paramA=valueA
我不确定如何将查询字符串参数传递到lambda函数。无论我尝试什么,请求。QueryStringParameters始终为空。
从这里开始正确的程序是什么?
请使用“$input.params('YourQueryStringKey')”。
您可以在API网关集成响应中创建主体映射模板并尝试“$input.params('YourQueryStringKey')”,也可以直接在Lambda函数中尝试。
好的,我已经解决了问题。
APIGatewayProxyRequest是从传递给Lambda函数的JSON反序列化的对象。如果接受JObject作为第一个参数,则可以看到传递给Lambda函数的原始JSON:
public async Task<APIGatewayProxyResponse> Test(JObject request, ILambdaContext context)
{
return new APIGatewayProxyResponse
{
Body = request.ToString(),
StatusCode = 200
};
}
因此,为了填充APIGatewayProxyRequest,主体映射模板中指定的JSON需要匹配APIGatewayProxyRequest的属性。这里有一个模式示例(尽管它没有显示您需要的实际模板):https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html#api-lambda输入格式的网关简单代理
但是,使用APIGatewayProxyRequest实际上并不是必需的。只接受JObject作为Lambda函数的第一个参数更容易,然后您就可以访问所需的任何JSON。然后,您可以使用Vaibs回答中描述的技术。
您需要为请求配置url查询字符串参数。
>
转到API网关
单击适当的方法,即GET
方法
转到方法执行
在方法执行中,选择URL查询字符串参数。
添加查询字符串参数,如参数A,参数B
现在转到集成请求选项卡
选择主体映射模板,内容类型为application/json
生成模板,如下所示
{
"paramA": "$input.params('paramA')",
"paramB": "$input.params('paramB')"
}
在lamda函数中成对接受此键值。
希望这将是有帮助的。
我是aws lambda和api网关的新手,我正在尝试向lambda函数传递一个json字符串。 但是,lambda不是用字符串调用的。 这是lambda。它获取一个对象作为输入,并返回类的字符串表示形式和对象的值。 api网关的映射模板是 api网关测试中的日志显示: 我希望json字符串被传递给lambda(作为字符串对象),但是TestMapping lambda返回的不是这个 如您所见,L
问题内容: 是否存在通过查询字符串传递数组的标准方法? 需要明确的是,我有一个带有多个值的查询字符串,其中一个是数组值。我希望将该查询字符串值视为一个数组-我不希望该数组爆炸,以使其与其他查询字符串变量没有区别。 编辑: 根据@Alex的答案,没有标准的方法可以执行此操作,因此我的后续工作是什么才是 识别 我正在读取的参数同时是 PHP 和 Javascript 数组的简单方法? 用相同的名称命名
问题内容: 背景: 我创建了一个非常简单的前端,用户可以在其中输入字符串。输入并单击“检查”按钮后,我想将此字符串作为JSON传递给python字符串,它将在其中进行SQL查找。根据SQL外观,python脚本应传递一个布尔值,该值应更改?到✔或✘。 题: 一旦按下“检查”按钮作为JSON到Python脚本,然后如何将字符串从Python传递到HTML,将?更改为✔或✘,如何传递字符串? 研究:
我们已经使用ms bot框架创建了一个bot,并希望向bot传递一些用户不会输入的数据。就像我在想,我们是否可以将查询字符串传递到下面的web频道。 https://webchat.botframework.com/embed/myformbot?s=XXXXXX 从bot api代码中,我可以以某种方式读取这个querystring参数。。。理想情况下,我知道我们不能控制上面的webchat链接
问题内容: 我在应用程序中有4个这样的字符串,我想传递给我的js文件 而我的javascript代码是 我只能得到$ a4字符串,而我不能得到其他字符串 我如何在php中传递这4个字符串并在javascript中设置这4个变量 谢谢; 问题答案: 将它们编码为JSON。 在PHP方面: 在JavaScript方面: 如果你想,,,并且是数字,而不是包含数字的字符串数组,只是JSON在发送之前解码在