【问题标题】:Execute a Node CLI command within a AWS Lamda function在 AWS Lambda 函数中执行节点 CLI 命令
【发布时间】:2018-02-16 09:46:33
【问题描述】:

要在我的 EC2 实例中执行 Node 命令,我只需在 CLI 中使用以下命令

gsjson 1KIg84G9CXErw2bWhkEHWUkOI4CR-biFeLqCtdypaLU8 fruits.json

当我尝试在打包的 AWS Lambda 函数中执行此操作时,它不起作用。这是我的 Node AWS Lambda 代码:

var gsjson = require('google-spreadsheet');
var fs = require('fs');

exports.handler = function(event, context) {
    // Create JSON file from Google Sheet using gsjson
    gsjson 1KIg84G9CXErw2bWhkEHWUkOI4CR-biFeLqCtdypaLU8 fruits.json {
        if (err) {
            context.fail("JSON file creation error: " + err);
        } else {
            context.succeed("JSON file created"); 
        }
    });

    //Read the content from the /tmp directory to check the JSON file exists
    fs.readdir("/tmp", function (err, data) {
        console.log(data);

    });
}

如何像在 EC2 CLI 中但在 AWS Lambda 函数中一样执行 Node 命令?

【问题讨论】:

    标签: javascript node.js amazon-web-services amazon-ec2 aws-lambda


    【解决方案1】:

    您不能像这样将命令行命令粘贴到 NodeJS 代码的中间并期望它能够正常工作。在这种情况下,您将 gsjson 作为库包含在内,您应该将其用作库。在 the official documentation for gsjson 中,它显示了如何通过命令行执行某些操作的多个示例,以及可以完成相同操作的相应 NodeJS API 代码。您需要使用 NodeJS API 代码版本。

    例如,您的代码需要更改为以下内容:

    gsjson({
        spreadsheetId: '1KIg84G9CXErw2bWhkEHWUkOI4CR-biFeLqCtdypaLU8'
    })
    .then(function(result) {
        console.log(result.length);
        console.log(result);
        // do something with the spreadsheet result here
    })
    .catch(function(err) {
        console.log(err.message);
        console.log(err.stack);
        context.fail(err)
    });
    

    【讨论】:

    • 谢谢马克。当我第一次通过不同的路径访问 npm 页面时,我没有看到您在此处记录的任何节点详细信息。所以也许这是一个稍微不同的库,但文档更好,所以可以使用你的链接。 npmjs.com/package/gsjson 现在更有意义了,谢谢
    • 奇怪的是它在 npm 上有两个这样的文档页面。看起来一个可能是另一个的叉子。
    • 让它在 Node API 中工作,尽管与 CLI 不同,但似乎无法将其保存为文件。 gsjson({ spreadsheetId: '1KIg84G9CXErw2bWhkEHWUkOI4CR-biFeLqCtdypaLU8', file: 'fruits.json' })
    • 我相信您必须将result 对象传递给回调,然后将其保存到文件中。它不需要file 参数。
    • 成功!现在想出最后一点并输出到 JSON 文件。非常感谢你的帮助。这是任何需要相同pastebin.com/zGRKekhY的人的代码
    猜你喜欢
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2020-10-18
    • 2019-10-30
    • 1970-01-01
    • 2021-05-26
    相关资源
    最近更新 更多