red*_*888 5 node.js aws-lambda
这在本地运行并返回 ping 输出:
var exec = require('child_process').exec;
function execute(command, callback){
    exec(command, function(error, stdout, stderr){ callback(stdout); });
}
execute("ping -c 3 localhost", function(name){
  console.log(name);
});
在 lambda 中运行它完成,但我从未看到输出:
exports.handler = (event, context, callback) => {
    var exec = require('child_process').exec;
    function execute(command, callback){
        exec(command, function(error, stdout, stderr){ callback(stdout); });
    }
    execute("ping -c 3 localhost", function(name){
      console.log(name);
    });
};
我如何让它显示输出?
遗憾的是,目前无法从 AWS Lambda 内部执行 ICMP ping - 主要问题是 Lambda 在内部运行的容器环境缺乏允许应用程序使用原始套接字所需的 CAP_NET_RAW 功能。
没有办法解决这个问题,即使尝试在运行 Lambda 的 Amazon Linux 容器内使用命令行 ping 实用程序也不起作用。
来源: https: //github.com/jethrocarr/lambda-ping。他们还提出了一个您可以尝试的解决方案。
| 归档时间: | 
 | 
| 查看次数: | 8180 次 | 
| 最近记录: |