3

我在 Lambda 函数上有哪个输入是

input_str = "<html><body><h1>Title</h1><Hello World></body></html>"
input_base64 = base64.b64encode(bytes(input_str, 'utf-8'))
payload = {"html_base64" : input_base64} 

input_base64是字节类型变量

我正在从其他 Lambda 函数调用此 Lambda 函数,但我无法传递此有效负载

invoke_response = lambda_client.invoke(FunctionName="vivek_05",
                                       InvocationType='RequestResponse',
                                       Payload=payload
                                       )

得到以下异常:

  "errorMessage": "Parameter validation failed:\nInvalid type for parameter Payload, value: {'html_base64': b'PGh0bWw+PGJvZHk+PGgxPlRpdGxlPC9oMT48SGVsbG8gV29ybGQ+PC9ib2R5PjwvaHRtbD4='}, type: <class 'dict'>, valid types: <class 'bytes'>, <class 'bytearray'>, file-like object",

你能帮助我吗?

4

2 回答 2

3

您可以使用此示例encodedecode字节。这可能会帮助你。

编码方式:

Payload=json.dumps({
            'imageName': image_name,
            'imageBytes': base64.b85encode(image_bytes).decode('utf-8'),
    })

您可以通过以下方式解码:

let imageBytes = base64.b85decode(event['imageBytes']);
let imageName = event['imageName'];
于 2018-10-08T04:51:56.163 回答
2

由于数据是二进制或字节,因此您需要在发送之前将其转换为字符串。

input_base64str = str(input_base64,'utf-8')

应该修复它。

当您转换回来时,将其更改为字节并将其传递给 base64 解码器。

input_base64 = 字节(input_base64str,'utf-8')

希望能帮助到你。

于 2018-10-07T17:17:24.983 回答