我在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",
你能帮我吗?
答案 0 :(得分:2)
使用此示例,您可以encode
和decode
个字节。这可能会对您有所帮助。
编码方式:
Payload=json.dumps({
'imageName': image_name,
'imageBytes': base64.b85encode(image_bytes).decode('utf-8'),
})
您可以通过以下方式进行解码:
let imageBytes = base64.b85decode(event['imageBytes']);
let imageName = event['imageName'];
答案 1 :(得分:1)
由于数据是二进制或字节,因此您需要先将其转换为字符串,然后再发送。
input_base64str = str(input_base64,'utf-8')
应该修复它。
转换回来时,将其更改为字节,然后将其传递给base64解码器。
input_base64 =字节(input_base64str,'utf-8')
希望有帮助。