AWS Lambda无服务器框架错误"无法找到模块"

Cha*_*ith 8 amazon-web-services node.js aws-sdk aws-lambda serverless-framework

我正在尝试使用无服务器框架来创建使用开放天气NPM模块的Lambda函数.但是,我得到以下异常,但我的node_modules包含特定的库.

我成功运行了样本,(https://github.com/serverless/examples/tree/master/aws-node-rest-api-with-dynamodb),现在黑客添加节点模块来集成开放天气API .

Endpoint response body before transformations: {"errorMessage":"Cannot find module 'Openweather-Node'","errorType":"Error","stackTrace":["Module.require (module.js:353:17)","require (internal/module.js:12:17)","Object.<anonymous> (/var/task/todos/weather.js:4:17)","Module._compile (module.js:409:26)","Object.Module._extensions..js
Run Code Online (Sandbox Code Playgroud)

我的代码

'use strict';

  const AWS = require('aws-sdk'); // eslint-disable-line import/no-extraneous-dependencies
  var weather = require('Openweather-Node');

  const dynamoDb = new AWS.DynamoDB.DocumentClient();

  module.exports.weather = (event, context, callback) => {
    const params = {
      TableName: process.env.DYNAMODB_TABLE,
      Key: {
        id: event.pathParameters.id,
      },
    };

    weather.setAPPID("mykey");
    //set the culture
    weather.setCulture("fr");
    //set the forecast type
    weather.setForecastType("daily");

    const response = {
      statusCode: 200,
      body: "{test response}",
    };
    callback(null, response);          
  };
Run Code Online (Sandbox Code Playgroud)

小智 15

npm install做之前在工作目录中了serverless deploy吗?该aws-sdk节点模块是提供给所有的lambda函数,但对所有其他节点的依赖性,您必须安装它们,所以它们将与您拉姆达打包当你部署.

您可能会在无服务器存储库上找到此问题(https://github.com/serverless/serverless/issues/948).


小智 5

package.json我将所有内容从 移动devDependencies到时,我修复了此错误dependencies

干杯