2017-04-13 47 views
1

我想从Java中的另一个Lambda函数调用Lambda函数。我正在按照此问题提供的代码"How to call an aws java lambda function from another AWS Java Lambda function when both are in same account, same region"设置用于调用Lambda函数的有效载荷

请参阅本声明代码:

invokeRequest.setPayload(ipInput);

我在猜测ipInput变量是一个字符串。

我需要知道的是我应该如何设置一个负载,那不是String?就我而言,Lambda函数接受一个List<Double>输入。从我读到的,似乎我需要将其转换为JSON字符串。我对此感到怀疑。 JSON表示Double[]List<Double>之间有区别吗?此外,AWS SDK(或Collections API)中是否有任何帮助器方法可以干净地完成?

+0

无法将lambda函数更改为接受字符串,并将类型转换为Double作为执行的一部分?只是一个想法! – Poppy

回答

2

有关此主题的AWS Devloper博客上有post

你可以实现一个代理。

否则,你可以检查AWS SDK直接github或者去官方java-doc 似乎有你的有效载荷两个选择要么你传递一个ByteBufferString。看起来你不能直接通过DoubleDouble[]。您必须将这些包装在JSON字符串中。我收到了包含数字的JSON消息,效果很好。尝试类似于:

String myDoubles = "{\"doubles\": [1487851012.924, 1487851012.925]}" 
invokeRequest.setPayload(myDoubles); 
+1

'myDoubles'示例对我不起作用,但代理示例没有。 –