繁体   English   中英

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

[英]How do I map AWS API Gateway query string to C# AWS Lambda function?

我有一个使用 GET 请求从 API 网关调用的 C# 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 函数实现此目的?

谢谢,

克里斯

尝试把它放在你的RequestModel

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

然后访问查询字符串值作为request.QueryStringParameters["foo"]等。

如果您在 API Gateway 中为您的资源和方法选中了Use Lambda Proxy integration框(我怀疑您这样做了,因为您已经使用statusCodeheadersbody字段构建了您的响应对象),则会记录相应的请求对象结构在用于代理集成的 Lambda 函数的输入格式中,深埋在 AWS 的文档中。 还有其他可用的字段,如正文、标题、HTTP 动词等。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM