【发布时间】:2016-11-03 03:10:31
【问题描述】:
我正在尝试使用 ruby 调用一个简单的 lambda 函数(lambda 函数将 hello world 打印到控制台)。但是,当我运行代码并查看 swf 仪表板时。我看到以下错误:
原因:Activity 无法发送数据超过 32768 个字符的响应。请限制响应的大小。您可以查看 Activity Worker 日志以查看原始响应。
有人可以帮我解决这个问题吗?
代码如下:
require 'aws/decider'
require 'aws-sdk'
class U_Act
extend AWS::Flow::Activities
activity :b_u do
{
version: "1.0"
}
end
def b_u(c_id)
lambda=Aws::Lambda::Client.new(
region: “xxxxxx”
access_key_id: “XxXXXXXXXXX”,
secret_access_key: “XXXXXXXXXX”
)
resp = lambda.invoke(
function_name: “s_u_1” # required
)
print "#{resp}"
end
谢谢
【问题讨论】:
-
尝试将
print "#{resp}"更改为'test'(带单引号),看看是否仍然出错。 -
请注意:您不必运行运行 Lambda 函数的活动任务:SWF 可以直接启动 Lambda 函数,使用
ScheduleLambdaFunction和ScheduleLambdaFunctionDecisionAttributes。 -
我建议的解决方法是使用收到的响应调用 @Signal 方法,并将其填充到您调用的工作流中。
标签: ruby amazon-web-services amazon-swf aws-lambda