我正在尝试使用APIGateway调用AWS Lambda并返回HTML代码。当我没有传递任何参数时它工作正常,但我想传递一些QueryString参数并在Lambda中使用它们。我在C#中拥有我的Lambda,我看到从API传递的参数
response from API
"headers": {},
"QueryStringParameters": {
"Environment": "xzc"
},
"PathParameters": {}
}
在Lambda中,APIGatewayProxyRequest将为null
API Lambda
public string FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context)
如何在C#
中读取AWS Lambda中的查询字符串参数答案 0 :(得分:1)
解释多于1个输入参数,有时这对开发人员来说也是一个问题:
步骤01 :这应该是你的C-Sharp方法
public string FunctionHandler(string strEnvironmentA, string strEnvironmentB, ILambdaContext context);
步骤02 :在API> GET方法执行>方法请求为
添加查询字符串参数步骤03 :在API> GET方法执行>集成请求>正文映射模板添加此应用程序/ json模板
"$input.params('strEnvironmentA')"
"$input.params('strEnvironmentB')"
答案 1 :(得分:1)
看起来您只需要在API网关资源配置的集成请求中选中使用Lambda代理集成。
也
您应该包括:
using Amazon.Lambda.APIGatewayEvents;
和您的处理程序函数标头应如下所示:
public APIGatewayProxyResponse FunctionHandler( APIGatewayProxyRequest input, ILambdaContext context)
然后您可以使用以下命令访问查询字符串参数:
input.QueryStringParameters
答案 2 :(得分:0)
做这样的事情:
public string FunctionHandler(string input, ILambdaContext context);
然后你可以在请求体中传递输入而不是查询字符串参数。
答案 3 :(得分:-1)
if (request.QueryStringParameters != null)
{
queryStringParameters = request.QueryStringParameters;
foreach (var item in queryStringParameters)
{
Console.WriteLine($"QueryStringParameter - " + item.Key + ":" + item.Value);
}
}