2016-12-22 1 views
2

GET 요청을 사용하여 API 게이트웨이에서 호출되는 C# 람다 함수가 있습니다.AWS API 게이트웨이 쿼리 문자열을 C# AWS 람다 함수에 매핑하려면 어떻게해야합니까?

[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; } = ""; 
} 

어떻게 MyFunction에서 RequestModel 매개 변수 API 게이트웨이로 전송되는 쿼리 문자열 매개 변수를지도 하는가?

매개 변수가있는 함수를 호출했지만 함수가 전달되지 않은 것 같습니다. C# 람다 함수로 이것을 수행하기위한 대기가 있습니까?

감사합니다,

크리스

답변

2

당신의 RequestModel이 퍼팅보십시오 : 당신이 Use Lambda Proxy integration 상자를 선택하면

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

그런 다음 등 request.QueryStringParameters["foo"]

를 쿼리 문자열 값에 액세스 귀하의 자원과 방법에 대한 API 게이트웨이 (귀하가 귀하의 응답을 구조화 했으므로 의심 스럽습니다.) 그리고 statusCode, headersbody 필드가있는 경우) 해당 요청 객체 구조는 Input Format of a Lambda Function for Proxy Integration에 문서화되어 있으며 AWS의 설명서에 자세히 설명되어 있습니다. 본문, 헤더, HTTP 동사와 같은 다른 필드도 사용할 수 있습니다.

사용자 정의 페이로드 맵핑을 작성하여 요청의 다른 부분을 사용자 정의 JSON 오브젝트에 맵핑 할 수도 있지만 이해해야합니다. 내장 된 람다 프록시를 사용하는 것보다 더 많은 구성.

관련 문제