0

我在visual studio 2017中使用c#創建了一個aws lambda函數,我遇到了參數問題。我試圖得到'querystring參數' 但每次我在我的FunctionHandler中的一個參數,我得到這個錯誤。AWS Lambda中的JsonReaderException C#函數

{ 
    "errorType": "JsonReaderException", 
    "errorMessage": "Unexpected character encountered while parsing value: {. Path '', line 1, position 1.", 
    "stackTrace": [ 
    "at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)", 
    "at Newtonsoft.Json.JsonTextReader.ReadAsString()", 
    "at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter)", 
    "at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)", 
    "at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)", 
    "at Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader)", 
    "at lambda_method(Closure , Stream , Stream , ContextInfo)" 
    ] 
} 

這是我的示例代碼FunctionHandler:

public string FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context) 
     { 
      var sample = GetParameters(request.QueryStringParameters, "sample"); 
      return sample; 
     } 

這有什麼錯呢?答案將非常感激。謝謝 !

UPDATE

Error Message

+0

什麼是你輸入的輸入拉姆達? – Kannaiyan

+0

我通過API網關傳遞查詢參數。 – anonymous

+0

您能否請您提供如何傳遞參數,我的意思是JSON值的格式 – msoliman

回答

1

的異常意味着你不通過你的參數作爲有效JSON格式。請確保以字符串引用的格式傳遞參數。

public string myFunctionHandler(string param, ILambdaContext context){ 
.... 
} 

傳遞參數(在字符串中引用格式)應該看起來像:

"{ \"param\": \"value\" }" 

如果你有一個對象:

public string myFunctionHandler(JObject param, ILambdaContext context) { 
... 
} 

在這種情況下,你可以通過它像這:

{ "param": "value" } 
+0

如果我想將它作爲查詢參數傳遞,但不通過AWS API網關?喜歡,http://api.com/v1?param=sample ... – anonymous

+0

@anonymous這樣的查詢參數映射可以配置爲提到http://docs.aws.amazon.com/apigateway/latest/developerguide/how-到方法 - 設置 - 執行 - console.html –