从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
的返回结果来处理这些情况。