Openwhisk:请求实体太大

时间:2018-05-06 18:40:57

标签: openwhisk

我有一个基于docker的Apache Openwhisk(https://github.com/apache/incubator-openwhisk-devtools)的本地设置,当我尝试从包含带有

的打包nodejs应用程序的zip创建一个动作时
wsk -i action create test --kind nodejs:6 test.zip -v

我收到以下回复:

  

413请求实体太大

test.zip只有5 MB大。是什么导致这个问题?有没有办法让openwhisk处理更大的请求?

UPD:test.zip的内容是从nodejs项目生成的,该项目只有1个.js,它具有简单的kafka主题消费者功能。

function main(params) {
  var kafka = require('kafka-node');
  var HighLevelConsumer = kafka.HighLevelConsumer;
  var Client = kafka.Client;

  if (!(params && params.host)) {
    return {error: 'host is required'};
  }
  if (!(params && params.port)) {
    return {error: 'port is required'};
  }
  if (!(params && params.topic)) {
    return {error: 'topic is required'};
  }
  var host = params.host;
  var port = params.port;
  var topic = params.topic;
  var client = new Client(`${host}:${port}`);
  var topics = [{
    topic: topic
  }];

  var options = {
    autoCommit: true,
    fetchMaxWaitMs: 1000,
    fetchMaxBytes: 1024 * 1024,
    encoding: 'utf8'
  };
  var consumer = new HighLevelConsumer(client, topics, options);

  consumer.on('message', function(message) {
    console.log(message.value);
  });

  consumer.on('error', function(err) {
    console.log('error', err);
  });

  process.on('SIGINT', function() {
    consumer.close(true, function() {
      process.exit();
    });
  });
}

exports.main = main;

package.json如下:

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "test.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node test.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "kafka-node": "^2.6.1"
  }
}

如果我只是使用 npm start 运行它,它就能正常工作。

1 个答案:

答案 0 :(得分:1)

看起来用于公开OpenWhisk平台的API接口的NGINX代理默认为最大请求体大小的小值。

我已设法在本地重新生成问题,任何超过512KB的内容都会返回该错误。

我打开了一张票,看看是否可以增加默认限额:https://github.com/apache/incubator-openwhisk-devtools/issues/124