Just started today with server less and aws lambda. I'm trying to write a lambda to upload some objects to S3 buckets. I'm using a plugin "serverless-webpack" to use webpack and to be able to test my functions locally.
However I'm getting the following error when requesting 'aws-sdk' module in my code.
Error: Cannot find module "./region_config_data.json"
at webpackMissingModule (/Users/paco/workspace/repo_git/dario-aws/functions/uploadFileToS3/.webpack/handler.js:18917:85)
at Object.<anonymous> (/Users/paco/workspace/repo_git/dario-aws/functions/uploadFileToS3/.webpack/handler.js:18917:187)
at __webpack_require__ (/Users/paco/workspace/repo_git/dario-aws/functions/uploadFileToS3/.webpack/handler.js:20:30)
at Object.<anonymous> (/Users/paco/workspace/repo_git/dario-aws/functions/uploadFileToS3/.webpack/handler.js:18342:21)
Below the code of my handler.js:
if (!global._babelPolyfill) {
require('babel-polyfill')
}
var AWS=require('aws-sdk')
export const upload = (event, context, cb) => {
const p = new Promise((resolve, reject) => {
resolve('success')
})
p
.then(r => cb(null, {
message: 'Go Serverless Webpack (Babel) v1.0! Your function executed successfully!',
event,
}))
.catch(e => cb(e))
}
package.json:
{
"name": "serverless-s3-manager",
"version": "1.0.0",
"description": "Serverless webpack example using Babel",
"main": "handler.js",
"scripts": {
"eslint": "./node_modules/.bin/eslint *.js",
"eslint:fix": "./node_modules/.bin/eslint *.js --fix",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Nicola Peduzzi <thenikso@gmail.com> (http://nikso.net)",
"license": "MIT",
"devDependencies": {
"babel-core": "^6.13.2",
"babel-loader": "^6.2.4",
"babel-plugin-transform-runtime": "^6.12.0",
"babel-preset-es2015": "^6.13.2",
"babel-preset-stage-0": "^6.5.0",
"babel-polyfill": "6.13.0",
"serverless-webpack": "^1.0.0-rc.3",
"webpack": "^1.13.1",
"eslint": "^3.19.0",
"eslint-plugin-import": "^2.2.0"
},
"dependencies": {
"aws-sdk": "^2.45.0",
"babel-runtime": "6.11.6"
}
}
web pack.config.js :
module.exports = {
entry: './handler.js',
target: 'node',
module: {
loaders: [{
test: /\.js$/,
loaders: ['babel'],
include: __dirname,
exclude: /node_modules/,
}]
}
}
In serverless.yml I'm specifying the was-region:
name: aws
runtime: nodejs6.10
apiKeys:
- myFirstKey
# you can overwrite defaults here
stage: dev
region: eu-west-1
In my .aws/credentials I have specified access and secret keys. I can correctly access AWS using aws cli.
Any help? Should I create a file called "./region_config_data.json", in that case, which data do I put inside? I cannot find any info about it.
Thanks!
via fgonzalez
No comments:
Post a Comment