所以这个问题一开始可能看起来很愚蠢,但我想在等式的服务器/lambda 端做一些不同的事情,这就是我管道的结尾。我想从 c# 调用这个 lambda 函数,对文本做一些事情,然后最后调用 polly 函数并返回音频。但是,当我运行管道代码的末尾(如下)时,我得到:
Response:
{
"errorMessage": "<botocore.response.StreamingBody object at 0x7f569f14abe0> is not JSON serializable",
"errorType": "TypeError",
"stackTrace": [
[
"/var/lang/lib/python3.6/json/__init__.py",
238,
"dumps",
"**kw).encode(obj)"
],
[
"/var/lang/lib/python3.6/json/encoder.py",
199,
"encode",
"chunks = self.iterencode(o, _one_shot=True)"
],
[
"/var/lang/lib/python3.6/json/encoder.py",
257,
"iterencode",
"return _iterencode(o, 0)"
],
[
"/var/runtime/awslambda/bootstrap.py",
110,
"decimal_serializer",
"raise TypeError(repr(o) + \" is not JSON serializable\")"
]
]
}
为什么我不能直接将 polly 返回给 lambda 函数的内容返回给用户?
拉姆达代码:
def lambda_handler(event, context):
client = boto3.client('polly')
response = client.synthesize_speech(
OutputFormat='mp3',
Text="Hello world, let's dance!",
TextType='text',
VoiceId='Salli'
)
return response