Я пытаюсь заставить устройство Alexa произносить строку текста, которую я возвращаю из своей функции Lambda, написанной на C #.
Сейчас я написал базовый метод, который возвращает строку.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
namespace AlexaTeachMeNewWord
{
public class Function
{
public string FunctionHandler(object input, ILambdaContext context)
{
return "Hello this is a test";
}
}
}
При использовании инструментария AWS для Visual Studio 2019, если я протестирую функцию с примером вызова Alexa, строка текста будет явно возвращена.
Однако, как только я опубликовал функцию в AWS Lambda, я получаю следующую ошибку, сообщающую мне Error converting the Lambda event JSON payload to a string
{
"errorType": "JsonSerializerException",
"errorMessage": "Error converting the Lambda event JSON payload to a string. JSON strings must be quoted, for example \"Hello World\" in order to be converted to a string: Unexpected character encountered while parsing value: {. Path '', line 1, position 1.",
"stackTrace": [
"at Amazon.Lambda.Serialization.Json.JsonSerializer.Deserialize[T](Stream requestStream)",
"at lambda_method(Closure , Stream , Stream , LambdaContextInternal )"
],
"cause": {
"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 Amazon.Lambda.Serialization.Json.JsonSerializer.Deserialize[T](Stream requestStream)"
]
}
}
Это сбивает с толку, поскольку я не пытаюсь вернуть JSONполезная нагрузка.