如何知道从Ruby SDK调用AWS Lambda函数时context.fail



从ruby SDK调用Amazon Web Service Lambda函数时,是否有任何方法可以确定该函数是否遇到context.fail?

即。如果我在ruby sdk:中调用这样的AWS Lambda函数

    resp = LAMBDA.invoke({
                  function_name: "cropSomeStuff", 
                  invocation_type: "RequestResponse", 
                  log_type: "Tail", # accepts None, Tail
                  payload: payload.to_json
              })

并且该函数遇到CCD_ 1

resp.successful?仍然返回true。我可以使用Base64.decode64(resp.log_result)查看日志,但是,我看不到一种简单的方法来以编程方式告知函数调用在ruby级别失败。

响应对象应该包括一个响应代码(#status_code)和一个错误字符串(#function_error)。您可以使用以下任一项来检测错误:

使用#function_error:

unless resp.function_error.empty?
  # An error occured
end

使用#status_code:

unless resp.status_code.between?(200, 299)
  # An error occured
end

(请注意,文档仅将成功指定为"在200范围内"。)

文档中没有#successful?方法,所以不确定它是从哪里来的。

似乎解析resp.payload是最好的操作方案,如果出现错误,则该响应字典中的唯一关键字将是context.fail(err)0。只要函数被调用,200就返回,最好通过查看传递给context.fail的返回结果来处理这些情况。

最新更新