2016-12-22 75 views
2

我有一个使用GET请求从API网关调用的C#lambda函数。如何将AWS API网关查询字符串映射到C#AWS Lambda函数?

[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网关在MyFunctionRequestModel参数的查询字符串参数映射?

我已经用参数调用了该函数,但它们似乎并没有通过。有没有等待用C#lambda函数实现这一点?

感谢,

克里斯

回答

2

尝试把这个在您的RequestModel

public class RequestModel 
{ 
    [JsonProperty("queryStringParameters")] 
    public Dictionary<string, string> QueryStringParameters { get; set; } 
} 

如果检查Use Lambda Proxy integration框,然后访问查询字符串值request.QueryStringParameters["foo"]

在你的资源和方法的API网关(我怀疑你做了,因为你已经构建了你的响应se对象statusCode,headersbody字段),相应的请求对象结构记录在Input Format of a Lambda Function for Proxy Integration中,埋在AWS的文档中。还有其他可用字段,如正文,标头,HTTP动词等。

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

相关问题