代码之家  ›  专栏  ›  技术社区  ›  Chris Farmer Marcelo Cantos

为什么我不能从aws Lambda函数中看到这个aws sdk函数?

  •  2
  • Chris Farmer Marcelo Cantos  · 技术社区  · 7 年前

    我的目标是能够使用AWS CloudWatchLogs.startQuery 我的AWS Lambda处理程序函数中的函数。当我通过nodejs在本地运行该方法时,它就存在了,但当我在处理程序中运行时,它是未定义的。我想我在这两个地方做了同样的事情,但是我得到了不同的结果。作为比较,我可以看到 filterLogEvents AWS javascript SDK

    我的nodejs代码:

    var AWS = require('aws-sdk');
    AWS.config.loadFromPath('./aws_credentials.json');
    AWS.config.update({
        region: 'us-east-1',
        apiVersion: '2014-03-28'
    });
    
    var cloudwatchlogs = new AWS.CloudWatchLogs();
    var filterlogevents_type = typeof cloudwatchlogs.filterLogEvents;
    var startquery_type = typeof cloudwatchlogs.startQuery;
    
    console.log(startquery_type);      // function 
    console.log(filterlogevents_type); // function
    

    var AWS = require('aws-sdk');
    AWS.config.update({
        region: 'us-east-1',
        apiVersion: '2014-03-28'
    });
    exports.handler = async (event) => {
        var cloudwatchlogs = new AWS.CloudWatchLogs();
        var filterlogevents_type = typeof cloudwatchlogs.filterLogEvents;
        var startquery_type = typeof cloudwatchlogs.startQuery;
    
        const response = {
            body: JSON.stringify({
                startQuery: startquery_type,           // undefined
                filterLogEvents: filterlogevents_type  // function
            }),
        };
        return response;
    };
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Daniel Vassallo    7 年前

    version 2.290.0 运行时中AWS SDK的 August 2018 only released in November 2018 并出现在 version 2.364.0 SDK的一部分。解决方法是自己打包SDK的最新版本,而不是依赖附带的库。