SQS 消息已被 lambda 成功处理。以下是处理并执行回调的代码:
exports.handler = function(event, context, callback) {
handleSQSMessages(context,event, function () {
const response = {
statusCode: 200,
body: JSON.stringify({
message: 'SQS event processed.',
input: event,
}),
};
console.log ("OK DONE");
callback(null, response);
function handleSQSMessages(context, messages, callback) {
messages = messages.Records;
if (messages && messages.length > 0) {
messages.forEach(function(message) {
console.log(message);
//...
Run Code Online (Sandbox Code Playgroud)
我看到 cloudwatch 打印出“OK DONE”消息。然而,SQS 将消息置于“飞行中”(并且它永远保持在飞行中)。我的理解是,一旦发送成功回复,该消息将被自动删除。我的能见度计时器 = 10 分钟
我需要将表单提交到外部URL,所以我有这个:
form_for(@task, :url => "https://www.external.com/Submit") do |f|)
<%= f.hidden_field :assignmentId, :value => @assignment %>
<%= link_to image_tag(@imagelocation) %>
....
Run Code Online (Sandbox Code Playgroud)
我正在使用form_for,因为我需要访问我的控制器变量.
外部服务器查找参数assignmentId.提交表单时,param实际上可用
params[:task][:assignmentId]
Run Code Online (Sandbox Code Playgroud)
无法在外部服务器上通过验证.
我该如何解决这个问题?如何从控制器访问变量并将"裸"参数传递给外部服务器?
[edit]这是提交参数的样子
UTF8 =%E2%9C%93&_method =把与任务%5BassignmentId%5D = 2LVQ39Z0B6UWI8NXYWJTYRKGQXIMXN和任务%5Boutput%5D =地毯及提交=帖子
我希望它没有引用任务.