如何将AWS API网关查询字符串映射到C#AWS Lambda函数?

如何将AWS API网关查询字符串映射到C#AWS Lambda函数?,c#,amazon-web-services,aws-lambda,C#,Amazon Web Services,Aws Lambda,我有一个C#lambda函数,它是使用GET请求从API网关调用的 [LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] public ResponseModel MyFunction(RequestModel request) { return new ResponseModel { body = "Hello world!" }; } public class RequestModel

我有一个C#lambda函数,它是使用GET请求从API网关调用的

[LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
public ResponseModel MyFunction(RequestModel request)
{
    return new ResponseModel { body = "Hello world!" };
}

public class RequestModel 
{
    [JsonProperty("a")]
    public string A { get; set; }

    [JsonProperty("b")]
    public string B { get; set; }
}

public class ResponseModel 
{
    public int statusCode { get; set; } = 200;
    public object headers { get; set; } = new object();
    public string body { get; set; } = "";
}
如何将发送到API网关的查询字符串参数映射到
MyFunction
中的
RequestModel
参数

我用参数调用了这个函数,但它们似乎没有通过。用C#lambda函数实现这一点需要等待吗

谢谢


克里斯

试着把这个放到你的
请求模型中

public class RequestModel 
{
   [JsonProperty("queryStringParameters")]
   public Dictionary<string, string> QueryStringParameters { get; set; }
}
公共类请求模型
{
[JsonProperty(“queryStringParameters”)]
公共字典QueryStringParameters{get;set;}
}
然后以
request.QueryStringParameters[“foo”]
等形式访问查询字符串值

如果您在API网关中为您的资源和方法选中了
使用Lambda代理集成
框(我怀疑您是这样做的,因为您已经用
状态码
正文
字段构造了响应对象),相应的请求对象结构将记录在中,深藏在AWS文件中。还有其他可用字段,如正文、标题、HTTP谓词等

我的理解是,您还可以创建一个自定义负载映射,将请求的不同部分映射到一个自定义JSON对象,但是这样做需要比使用内置的Lambda代理更多的配置