【问题标题】:AWS Lambda function appending characters in returnAWS Lambda 函数附加字符作为返回
【发布时间】:2018-09-25 22:06:44
【问题描述】:

我有 2 个 Lambda 函数 [A 和 B]。函数 A 进行计算并返回 2 个字符串。请注意,我也尝试过返回一个字符串。单独调用函数时,返回的是正确的预期字符串。

如果我在函数 B 中调用函数 A,返回的是正确的字符串,但每边都添加了字符。

函数A1(返回两个字符串):

def handler(event, context):

    strings = {
           "first_string": "This is the first string",
           "second_string": "This is the second string"
    }

    return strings

函数A2(返回一个字符串):

def handler(event, context):

    string = "This is a string"

    return string

在另一个 Lambda 函数中调用 A1:

return_strings = functionA1(event, context)
print(return_strings[0])
print(return_strings[1])

>>> 341 #expected This is the first string
>>> 8 #expected This is the second string

在另一个 Lambda 函数中调用 A2:

return functionA2(event, context)

>>> b'\"This is a string\"' #expected This is a string

知道返回中可能会编码什么 - 它与从另一个 Lambda 函数调用有关吗?单独调用 A1/A2 会产生预期回报。

谢谢!

【问题讨论】:

  • 您正在使用functionA1(event, context) 从另一个 Lambda 函数调用一个 Lambda 函数?你不应该使用Invoke() 命令吗?
  • @JohnRotenstein 我正在使用 Invoke() 命令 - 以上仅用于演示而非精确代码
  • “不精确的代码”不适合精确的解决方案;见stackoverflow.com/help/mcve。问题是您似乎忽略了一个事实,即来自 Lambda 函数调用的所有内容都应该是需要解码的 JSON。
  • payload = {} #blank payload
  • payload['string'] = "This is a string"

标签: python amazon-web-services printing return aws-lambda


【解决方案1】:

发现问题了!读取 JSON 响应之前需要解码:

load = json.loads(response['Payload'].read().decode("utf-8"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2021-08-24
    • 2022-10-14
    • 2020-07-30
    • 1970-01-01
    • 2016-11-17
    • 2017-04-10
    相关资源
    最近更新 更多