GithubHelp home page GithubHelp logo

serverless / examples Goto Github PK

View Code? Open in Web Editor NEW
11.3K 264.0 4.5K 16.3 MB

Serverless Examples – A collection of boilerplates and examples of serverless architectures built with the Serverless Framework on AWS Lambda, Microsoft Azure, Google Cloud Functions, and more.

Home Page: https://www.serverless.com/examples/

License: Other

JavaScript 30.03% HTML 1.49% Python 11.92% CSS 17.61% Java 3.39% Shell 0.77% Go 13.26% Swift 0.46% TypeScript 9.13% PHP 0.09% Makefile 1.58% Vue 0.43% Ruby 4.04% C# 4.50% Dockerfile 0.28% Rust 0.25% Clojure 0.32% Batchfile 0.08% F# 0.10% Groovy 0.27%
serverless serverless-framework examples

examples's Issues

Stripe Integration Example

Let us know if you interested to work on this. I comment here if one of the core-team is starting to work on it.

Serving Dynamic HTML how to add JS and CSS files

Hello,

I followed your examples on how to set the response to HTML. Now I am wondering how would I add CSS and JS to the HTML output? I was spinning my head around and tried some S3 alternatives but they are all not working on serverless 1.x

Thanks

Python Auth0 Example

Hello, I am looking for an example of doing auth0 with python but I am having a hard time finding the correct procedure.

Deploy API Gateway NodeJS + MongoDB

I have a similar scenario as the example AWS Node REST API + MongoDB.

The main difference of my project is that I wrote the service in multiple files using modules for better testability.

I can package and deploy from my Mac, but I'm implementing some CI/CD using Bitbucket Pipelines for my project. And as I use bcrypt for password generation and user authentication I need to use a docker image for bitbucket-pipelines that mimics the AWS AMI used for AWS Lambda deploys.

The main problem is that when I use the serverless deploy on the Linux machine, the command returns an error in the Bitbucket Pipelines:

Serverless Error ---------------------------------------
 
An error occurred while provisioning your stack: UserAuthLambdaFunction
    - Unzipped size must be smaller than 262144000 bytes.
 
Stack Trace --------------------------------------------

An example of my setup is the following:

Files and folders:

__tests__/ # jest folder for model and services test
bitbucket-pipelines.yml
config/
models/
package.json
serverless.yml
services/
userService.js
yarn.lock

My serverless.yml file is setup as this:

service: <NAME-OF-MY-SERVICE>

provider:
  name: aws
  runtime: nodejs6.10
  profile: ${env:AWS_PROFILE}
  stage: ${env:STAGE_ENVIRONMENT}
  region: us-east-2

functions:
  userSignup:
    handler: userService.signup
    events:
      - http:
          path: users
          method: post
  userAuth:
    handler: userService.auth
    events:
      - http:
          path: users/sign_in
          method: post

package:
  exclude:
    - .git/**
    - .gitignore
    - __tests__/**
    - config/utils.js
    - bitbucket-pipelines.yml
    - yarn.lock

My userService.js handler file is setup as this:

'use strict'

const mongoose = require('./config/mongoose')
require('dotenv').config()
let db = mongoose.connect(process.env.MONGO_URL)

const UserService = require('./services/users')
const userService = new UserService()

module.exports.signup = (event, context, cb) => {
  userService.signup(event, (err, res) => {
    cb(err, res)
    db.disconnect()
  })
}

module.exports.auth = (event, context, cb) => {
  const response = {
    statusCode: 200,
    body: {
      message: 'userService auth endpoint',
      payload: event.body
    }
  }

  cb(null, response)
  db.disconnect()
}

My service currently only does the signup part and return an authorization token as the response body. I need to know how the Mac deploys successfully (but with error from native modules as bcrypt being generated with the different architecture needed), and the Linux (AWS AMI) one can't deploy.

Unable to deploy babel example

Hello!

I'm trying to get the babel example working (https://github.com/serverless/examples/tree/master/aws-node-function-compiled-with-babel) but I've run into an error and can't figure out how to move forward. First, I was running into an error because node_modules/.bin/babel didn't exist (installing babel-cli resolved that) but now I get this error and don't know why. Any ideas?

I'm using node 4.3.2 because that's the version Lambda is using but I've also tried it with 6.9.4 and I get the same error.

$ SLS_DEBUG=* serverless deploy
Serverless: Packaging service...
Serverless: Babel compilation:
tmpBabelDirectory/createResponse.js -> tmpBabelDirectory/createResponse.js
tmpBabelDirectory/handler.js -> tmpBabelDirectory/handler.js

Serverless: Packaging service with compiled files...

  Error --------------------------------------------------

     invalid signature: 0x6064b50

     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  Stack Trace --------------------------------------------

Error: invalid signature: 0x6064b50
    at /Users/cmoel/Desktop/sls-babel/node_modules/serverless-babel-plugin/node_modules/unzip2/lib/parse.js:63:13
    at processImmediate [as _immediateCallback] (timers.js:383:17)

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues

     Please report this error. We think it might be a bug.

  Your Environment Information -----------------------------
     OS:                 darwin
     Node Version:       4.3.2
     Serverless Version: 1.5.0

Can I use serverless to define an initializer of a DynamoDB table?

I'd like to write several initial items as the initial values in a table, could I automate this process using Serverless framework?

My idea is as the following:

  1. define DynamoDB as what normal serverless.yml does;
  2. define handler.js as what normal lambda function definitions do;
  3. define an init_handler.js as call that handler once (and only once) during serverless deploy command

I don't know if and how I may hack serverless to achieve this.

aws-node-single-page-app-via-cloudfront deploy error

I get the following error when I make the "serverless deploy":

  Syntax Error -------------------------------------------
 
     Unexpected token )
 
     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
 
  Stack Trace --------------------------------------------
 
SyntaxError: Unexpected token )
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at /usr/lib/node_modules/serverless/lib/classes/PluginManager.js:59:22
    at Array.forEach (native)
    at PluginManager.loadPlugins (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:58:13)
    at PluginManager.loadServicePlugins (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:86:10)
    at PluginManager.loadAllPlugins (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:54:10)
    at /usr/lib/node_modules/serverless/lib/Serverless.js:64:28
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
 
     Please report this error. We think it might be a bug.
 
  Your Environment Information -----------------------------
     OS:                 linux
     Node Version:       4.6.1
     Serverless Version: 1.3.0

All endpoints return {"message": "Internal server error"} on aws-node-rest-api-with-dynamodb

@christophgysin ran into another issue. Sorry to keep bugging.

You can see that the example is successfully deployed, however, I immediately perform a curl to get all todos and it returns the error.

waltermvp@Walters-MacBook-Pro:~/Development/Open/examples/aws-node-rest-api-with-dynamodb (master)$ SLS_DEBUG="*" sls deploy --verbose
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
CloudFormation - CREATE_IN_PROGRESS - AWS::CloudFormation::Stack - serverless-short-test2-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - serverless-short-test2-dev
Serverless: Stack create finished...
Serverless: Packaging service...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading function .zip files to S3...
Serverless: Uploading service .zip file to S3 (431.03 KB)...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - serverless-short-test2-dev
CloudFormation - UPDATE_IN_PROGRESS - AWS::CloudFormation::Stack - serverless-short-test2-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::RestApi - ApiGatewayRestApi
CloudFormation - CREATE_IN_PROGRESS - AWS::IAM::Role - IamRoleLambdaExecution
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - CreateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - ListLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - UpdateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - TodosDynamoDbTable
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::RestApi - ApiGatewayRestApi
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - GetLogGroup
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::RestApi - ApiGatewayRestApi
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - CreateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::IAM::Role - IamRoleLambdaExecution
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - UpdateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - TodosDynamoDbTable
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - CreateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - ListLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - UpdateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - GetLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - GetLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - ListLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - DeleteLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - DeleteLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - DeleteLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Resource - ApiGatewayResourceTodos
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Resource - ApiGatewayResourceTodos
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Resource - ApiGatewayResourceTodos
CloudFormation - CREATE_COMPLETE - AWS::IAM::Role - IamRoleLambdaExecution
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosOptions
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Resource - ApiGatewayResourceTodosIdVar
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosOptions
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - DeleteLambdaFunction
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethodTodosOptions
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - UpdateLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - ListLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - GetLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - CreateLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Resource - ApiGatewayResourceTodosIdVar
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - DeleteLambdaFunction
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Resource - ApiGatewayResourceTodosIdVar
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Function - DeleteLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - UpdateLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - ListLambdaFunction
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Function - UpdateLambdaFunction
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Function - ListLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - CreateLambdaFunction
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Function - CreateLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarOptions
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarDelete
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarOptions
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - DeleteLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarDelete
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosGet
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarDelete
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - ListLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarOptions
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosGet
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarPut
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - DeleteLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarPut
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethodTodosGet
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - UpdateLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarPut
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - ListLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Version - ListLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - UpdateLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - GetLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - ListLambdaPermissionApiGateway
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Version - UpdateLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Function - GetLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - ListLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosPost
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - DeleteLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosPost
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethodTodosPost
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - DeleteLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - UpdateLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - CreateLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Version - DeleteLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::DynamoDB::Table - TodosDynamoDbTable
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - UpdateLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarGet
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - CreateLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarGet
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - CreateLambdaPermissionApiGateway
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethodTodosIdVarGet
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Permission - DeleteLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - CreateLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Version - CreateLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - GetLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - GetLambdaPermissionApiGateway
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Permission - ListLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - GetLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - GetLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Version - GetLambdaVersionvFSmJAY4jqmJqLz3Nj1bDHiSn2Hy2jLHIlL4w9hCbQ
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Permission - UpdateLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Deployment - ApiGatewayDeployment1493232080255
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Permission - CreateLambdaPermissionApiGateway
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Deployment - ApiGatewayDeployment1493232080255
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Deployment - ApiGatewayDeployment1493232080255
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Permission - GetLambdaPermissionApiGateway
CloudFormation - UPDATE_COMPLETE_CLEANUP_IN_PROGRESS - AWS::CloudFormation::Stack - serverless-short-test2-dev
CloudFormation - UPDATE_COMPLETE - AWS::CloudFormation::Stack - serverless-short-test2-dev
Serverless: Stack update finished...
Service Information
service: serverless-short-test2
stage: dev
region: us-east-1
api keys:
  None
endpoints:
  POST - https://yhhzsbppdj.execute-api.us-east-1.amazonaws.com/dev/todos
  GET - https://yhhzsbppdj.execute-api.us-east-1.amazonaws.com/dev/todos
  GET - https://yhhzsbppdj.execute-api.us-east-1.amazonaws.com/dev/todos/{id}
  PUT - https://yhhzsbppdj.execute-api.us-east-1.amazonaws.com/dev/todos/{id}
  DELETE - https://yhhzsbppdj.execute-api.us-east-1.amazonaws.com/dev/todos/{id}
functions:
  create: serverless-short-test2-dev-create
  list: serverless-short-test2-dev-list
  get: serverless-short-test2-dev-get
  update: serverless-short-test2-dev-update
  delete: serverless-short-test2-dev-delete

Stack Outputs
DeleteLambdaFunctionQualifiedArn: arn:aws:lambda:us-east-1:056882338896:function:serverless-short-test2-dev-delete:1
CreateLambdaFunctionQualifiedArn: arn:aws:lambda:us-east-1:056882338896:function:serverless-short-test2-dev-create:1
GetLambdaFunctionQualifiedArn: arn:aws:lambda:us-east-1:056882338896:function:serverless-short-test2-dev-get:1
UpdateLambdaFunctionQualifiedArn: arn:aws:lambda:us-east-1:056882338896:function:serverless-short-test2-dev-update:1
ListLambdaFunctionQualifiedArn: arn:aws:lambda:us-east-1:056882338896:function:serverless-short-test2-dev-list:1
ServiceEndpoint: https://yhhzsbppdj.execute-api.us-east-1.amazonaws.com/dev
ServerlessDeploymentBucketName: serverless-short-test2-d-serverlessdeploymentbuck-1lin9n3dy4vvz

waltermvp@Walters-MacBook-Pro:~/Development/Open/examples/aws-node-rest-api-with-dynamodb (master)$ curl https://yhhzsbppdj.execute-api.us-east-1.amazonaws.com/dev/todos
{"message": "Internal server error"}waltermvp@Walters-MacBook-Pro:~/Development/Open/examples/aws-node-rest-api-with-dynamodb (master)$ 

Add more OpenWhisk examples

OpenWhisk has a list of example projects listed in the awesome list.

We want to convert some of these to examples in the serverless project repository, showing off features of the toolkit.

For example....

  • HTTP API Gateway Integration.
  • Basic trigger feeds.
  • Alarm-based schedulers.

UUIDs *and* timestamps?

{"text":"Learn Serverless","id":"ee6490d0-aa81-11e6-9ede-afdfa051af86","createdAt":1479138570824,"checked":false,"updatedAt":1479138570824}%

I used to think, UUID is a timestamp plus process id (v1)
Are these UUIDs random (v4) ?

aws-node-rest-api-with-dynamodb-and-offline always returns an Error

I'm having issues with the offline plugin. Is this normal? Error: connect ECONNREFUSED 127.0.0.1:8000. Not sure since the local host is 3000

waltermvp@Walters-MacBook-Pro:~/Development/Open/examples/aws-node-rest-api-with-dynamodb-and-offline (master)$ sls offline
Serverless: Starting Offline: dev/us-east-1.

Serverless: Routes for create:
Serverless: POST /todos

Serverless: Routes for list:
Serverless: GET /todos

Serverless: Routes for get:
Serverless: GET /todos/{id}

Serverless: Routes for update:
Serverless: PUT /todos/{id}

Serverless: Routes for delete:
Serverless: DELETE /todos/{id}

Serverless: Offline listening on http://localhost:3000

Serverless: GET /todos (λ: list)
Serverless: The first request might take a few extra seconds
Serverless: 
{ Error: connect ECONNREFUSED 127.0.0.1:8000
    at Object.exports._errnoException (util.js:1022:11)
    at exports._exceptionWithHostPort (util.js:1045:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
  message: 'connect ECONNREFUSED 127.0.0.1:8000',
  code: 'NetworkingError',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 8000,
  region: 'localhost',
  hostname: 'localhost',
  retryable: true,
  time: 2017-05-01T15:17:51.864Z }
Serverless: Failure: Couldn't fetch the todos.
Serverless: Replying 200

aws-node-single-page-app-via-cloudfront errors when deploying

I got the following error when deploying:

Serverless Error ---------------------------------------

 An error occurred while provisioning your stack: WebAppS3BucketPolicy
 - Policy has invalid resource.

There's not much to debug from here.

Edit:

If I try to deploy again, I get this error:

Serverless Error ---------------------------------------

 Stack:arn:aws:cloudformation:us-east-1:162064893105:stack/single-page-app-via-cloudfront7-dev/9b33a8c0-f558-11e6-a02b-50d5ca6e6082
 is in UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS state
 and can not be updated.

Edit 2:

If I wait long enough, the UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS error goes away but I'm still getting the policy error.

aws-node-rest-api-with-dynamodb -- server error

I worked through this particular example. The stack completes and the DynamoDB table is created just fine. When I try to create a ToDo item, the response is "message", "internalServererror". Not sure what a did wrong.

Azure example fails to deploy

Following the instructions with these steps I get an error:

npm i -g azure-cli
azure login
azure account show
azure ad sp create -n NAME -p PASSWORD
azure role assignment create --objectId bad1234dad5678cab -o Contributor

azure account show gives the expected result at this point, and I set up my environment variables.

and then in the examples/azure-node-simple-http-endpoint directory, after editing serverless.yml to include my Azure credentials.

npm install
serverless deploy

But the end result is a failure I can only see in the Azure web console. "Website with given name azfx-node-http already exists"

The serverless debug output only includes this: 'At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.'

Proposal: Add tests

I would suggest adding tests to each one of the examples. Testing is a big subject and lots of people that are interested in a serverless architecture may be wondering how one is being tested. Your recommendation on the subject will be a big deal, imho.

Thank you

aws-node-rest-api-with-dynamodb deploy fails

If I try to deploy the aws-node-rest-api-with-dynamodb example without any change, I get foolowing message:

Trying to populate non string value into a string for
variable ${env:DYNAMODB_TABLE}. Please make sure the
value of the property is a string.

Separate Event for Alexa Smart Home Skill Trigger

AWS offers a separate trigger called 'Alexa Smart Home' for their Smart Home skills, besides the regular 'Alexa Skills Kit' trigger. It would be great if this could be added as a new event besides the alexaSkill option, as I am currently unable to transfer our existing Lambda function to the Serverless Framework

aws-node-rest-api-with-dynamodb example non string error

I am getting the following issue with the aws-node-rest-api-with-dynamodb example. Have I missed something in the configuration. AWS cli seems to configured correctly as other examples deployed OK.

Serverless Error ---------------------------------------

 Trying to populate non string value into a string for
 variable ${env:DYNAMODB_TABLE}. Please make sure the
 value of the property is a string.

Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues

Your Environment Information -----------------------------
OS: darwin
Node Version: 7.4.0
Serverless Version: 1.6.1

aws-node-alexa-skill example response causing error in Service Simulator Tool

https://github.com/serverless/examples/tree/master/aws-node-alexa-skill
I get the following when invoking the skill using the Service Simulator Tool
Error: There was a failure invoking your skill with text input, please try again.

The solution was to send the setEndSession attribute in the response because it is a required field when using the Service Simulator Tool to test the skill. I set shouldEndSession: false in the response and it resolved the issue

reference:
https://forums.developer.amazon.com/questions/57631/error-there-was-a-failure-invoking-your-skill-with-3.html

Data ingestion examples

                                                                               
     ┌──────────┐    ┌──────────┐   ┌───────────┐   ┌──────────┐   ┌──────────┐
     │          │    │  Lambda  │   │           │   │  Lambda  │   │          │
     │   APIG   │───▶│(validate)│──▶│  Kinesis  │──▶│(process &│──▶│ DynamoDB │
     │          │    │          │   │           │   │  save)   │   │          │
     └──────────┘    └──────────┘   └───────────┘   └──────────┘   └──────────┘

Real world use case in analytics systems. Tracking most visited pages.

It's pretty common pattern to expose some endpoint and push incoming messages to Kinesis steam. Second Lambda function takes care of processing and saving to DynamoDB.

DynamoDB table:

  • url: string
  • count: int

Incoming events:

{url: 'http://'}

Contact for uses of serverless

README mentions we should contact someone when we create applications derived from serverless examples. Who should we contact?

Remote MongoDB Example

I would like to provide a NodeJS example for remote mongodb (Atlas , or Mlab etc... )

Can i submit a PR for this ?

Verify JWT Auth0

When verifying the JSON Web Token the secret has to be passed as a Base64 encoded string.

jwt.verify(token, new Buffer(AUTH0_CLIENT_SECRET, 'base64'));

But since december 2016 Auth0 no longer stores client Secret with Base64 encoding (https://auth0.com/forum/t/client-secret-stored-without-base64-encoding).
So the JSON Web Token can be passed as string without being encoded.

jwt.verify(token, AUTH0_CLIENT_SECRET);

aws-node-rest-api-with-dynamodb not delpoying

Despite being able to deploy other examples that require access to S3, i get the following error on when trying to deploy 'aws-node-rest-api-with-dynamodb'

Serverless: Packaging service...
Serverless: Uploading CloudFormation file to S3...
 
  Serverless Error ---------------------------------------
 
     The specified bucket does not exist
 

Error during serverless syncToS3

I got the cloud formation template & s3 bucket deployed using serverless deploy. but when I invoke serverless syncToS3, I'm getting Serverless: fatal error: Unable to locate credentials.

The credentials within the serverless.yaml file worked when creating the stack. But somehow they are not letting me upload s3 artifacts.

How to remove default body template for java?

default request body template for API Gateway

  • application/json
  • application/x-www-form-urlencoded

How can I remove default request body template?
Currently request gets from "body" template.
How Can I get body request on root level?
I want to access direct request object.

how do i pass multiple values to an environment variable?

how do i pass multiple values to an environment variable, this for me does not work:

service: serverless-test

plugins:
  - serverless-offline

provider:
  name: aws
  runtime: nodejs4.3
  timeout: 10
# you can define service wide environment variables here
  environment:
    database: mongo
    MONGO_URI: "mongodb://mongo-6:27000,mongo-7:27000,mongo-8:27000/db-dev?replicaSet=mongo"

SLS remove does not remove dynamoDB Table?

So I can deploy fine if I change the service name. But I think I found what might have been causing the previous issue #131.
If I deploy successfully then try to remove the deployment the removal succeeds. However on a redeploy I get TodosDynamoDbTable - serverless-rest-api-with-dynamodb87-dev already exists.

Also at no point during this whole process do I see tables in the dynamoDB section in the AWS portal. Is this normal?

waltermvp@Walters-MacBook-Pro:~/Development/Open/examples/aws-node-rest-api-with-dynamodb (master)$ sls remove
Serverless: Getting all objects in S3 bucket...
Serverless: Removing objects in S3 bucket...
Serverless: Removing Stack...
Serverless: Checking Stack removal progress...
..
Serverless: Stack removal finished...
waltermvp@Walters-MacBook-Pro:~/Development/Open/examples/aws-node-rest-api-with-dynamodb (master)$ SLS_DEBUG="*" sls deploy --verbose
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
CloudFormation - CREATE_IN_PROGRESS - AWS::CloudFormation::Stack - serverless-rest-api-with-dynamodb87-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - serverless-rest-api-with-dynamodb87-dev
Serverless: Stack create finished...
Serverless: Packaging service...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading function .zip files to S3...
Serverless: Uploading service .zip file to S3 (5.4 KB)...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - serverless-rest-api-with-dynamodb87-dev
CloudFormation - UPDATE_IN_PROGRESS - AWS::CloudFormation::Stack - serverless-rest-api-with-dynamodb87-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::RestApi - ApiGatewayRestApi
CloudFormation - CREATE_IN_PROGRESS - AWS::IAM::Role - IamRoleLambdaExecution
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::RestApi - ApiGatewayRestApi
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - DeleteLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - TodosDynamoDbTable
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - UpdateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::IAM::Role - IamRoleLambdaExecution
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - DeleteLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - ListLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - DeleteLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - GetLogGroup
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::RestApi - ApiGatewayRestApi
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - CreateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - UpdateLogGroup
CloudFormation - CREATE_FAILED - AWS::DynamoDB::Table - TodosDynamoDbTable
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - UpdateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - GetLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - GetLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - CreateLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - CreateLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - ListLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::ApiGateway::Resource - ApiGatewayResourceTodos
CloudFormation - CREATE_FAILED - AWS::IAM::Role - IamRoleLambdaExecution
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - ListLogGroup
CloudFormation - CREATE_FAILED - AWS::ApiGateway::Resource - ApiGatewayResourceTodos
CloudFormation - UPDATE_ROLLBACK_IN_PROGRESS - AWS::CloudFormation::Stack - serverless-rest-api-with-dynamodb87-dev
CloudFormation - UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS - AWS::CloudFormation::Stack - serverless-rest-api-with-dynamodb87-dev
CloudFormation - DELETE_IN_PROGRESS - AWS::Logs::LogGroup - DeleteLogGroup
CloudFormation - DELETE_IN_PROGRESS - AWS::Logs::LogGroup - UpdateLogGroup
CloudFormation - DELETE_IN_PROGRESS - AWS::Logs::LogGroup - ListLogGroup
CloudFormation - DELETE_IN_PROGRESS - AWS::Logs::LogGroup - CreateLogGroup
CloudFormation - DELETE_IN_PROGRESS - AWS::Logs::LogGroup - GetLogGroup
CloudFormation - DELETE_COMPLETE - AWS::ApiGateway::Resource - ApiGatewayResourceTodos
CloudFormation - DELETE_IN_PROGRESS - AWS::IAM::Role - IamRoleLambdaExecution
CloudFormation - DELETE_COMPLETE - AWS::Logs::LogGroup - UpdateLogGroup
CloudFormation - DELETE_COMPLETE - AWS::Logs::LogGroup - ListLogGroup
CloudFormation - DELETE_COMPLETE - AWS::Logs::LogGroup - DeleteLogGroup
CloudFormation - DELETE_COMPLETE - AWS::Logs::LogGroup - GetLogGroup
CloudFormation - DELETE_COMPLETE - AWS::IAM::Role - IamRoleLambdaExecution
CloudFormation - DELETE_COMPLETE - AWS::DynamoDB::Table - TodosDynamoDbTable
CloudFormation - DELETE_IN_PROGRESS - AWS::ApiGateway::RestApi - ApiGatewayRestApi
CloudFormation - DELETE_COMPLETE - AWS::Logs::LogGroup - CreateLogGroup
CloudFormation - DELETE_COMPLETE - AWS::ApiGateway::RestApi - ApiGatewayRestApi
CloudFormation - UPDATE_ROLLBACK_COMPLETE - AWS::CloudFormation::Stack - serverless-rest-api-with-dynamodb87-dev
Serverless: Deployment failed!
 
  Serverless Error ---------------------------------------
 
     An error occurred while provisioning your stack: TodosDynamoDbTable
     - serverless-rest-api-with-dynamodb87-dev already exists.
 
  Stack Trace --------------------------------------------
 
ServerlessError: An error occurred while provisioning your stack: TodosDynamoDbTable - serverless-rest-api-with-dynamodb87-dev already exists.
    at provider.request.then (/usr/local/lib/node_modules/serverless/lib/plugins/aws/lib/monitorStack.js:112:33)
From previous event:
    at AwsDeploy.monitorStack (/usr/local/lib/node_modules/serverless/lib/plugins/aws/lib/monitorStack.js:29:12)
    at provider.request.then (/usr/local/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:90:30)
From previous event:
    at AwsDeploy.update (/usr/local/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:90:8)
From previous event:
    at AwsDeploy.BbPromise.bind.then.then (/usr/local/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:111:12)
From previous event:
    at AwsDeploy.updateStack (/usr/local/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:103:8)
From previous event:
    at Object.deploy:deploy [as fn] (/usr/local/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:55:10)
    at BbPromise.reduce (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:210:55)
    at runCallback (timers.js:651:20)
    at tryOnImmediate (timers.js:624:5)
    at processImmediate [as _immediateCallback] (timers.js:596:5)
From previous event:
    at PluginManager.invoke (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:210:22)
    at PluginManager.run (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:225:17)
    at Serverless.run (/usr/local/lib/node_modules/serverless/lib/Serverless.js:97:31)
    at serverless.init.then (/usr/local/lib/node_modules/serverless/bin/serverless:23:50)
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Forums:        forum.serverless.com
     Chat:          gitter.im/serverless/serverless
 
  Your Environment Information -----------------------------
     OS:                 darwin
     Node Version:       7.3.0
     Serverless Version: 1.11.0

aws-node-rest-api-with-dynamodb 502 Bad Gateway

When I execute any of my resources I get 502 Bad Gateway.

Here is the exact response when ran from the API Gateway console:

Execution log for request test-request
Sat Feb 04 04:37:12 UTC 2017 : Starting execution for request: test-invoke-request
Sat Feb 04 04:37:12 UTC 2017 : HTTP Method: GET, Resource Path: /todos
Sat Feb 04 04:37:12 UTC 2017 : Method request path: {}
Sat Feb 04 04:37:12 UTC 2017 : Method request query string: {}
Sat Feb 04 04:37:12 UTC 2017 : Method request headers: {}
Sat Feb 04 04:37:12 UTC 2017 : Method request body before transformations:
Sat Feb 04 04:37:12 UTC 2017 : Endpoint request URI: https://lambda.us-east-1.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-east-1xxxxxx:function:serverless-rest-api-with-dynamodb-dev-list/invocations
Sat Feb 04 04:37:12 UTC 2017 : Endpoint request headers: {x-amzn-lambda-integration-tag=test-request, Authorization=****************************************************************************************************************************************************************************************************************************************************************************************************************************************, X-Amz-Date=20170204T043712Z, x-amzn-apigateway-api-id=xxxxxxxxxx, X-Amz-Source-Arn=arn:aws:execute-api:us-east-1:xxxxxxxxx/null/GET/todos, Accept=application/json, User-Agent=AmazonAPIGateway_xxxxxxx, X-Amz-Security-
[----omitted----]
Sat Feb 04 04:37:12 UTC 2017 : Endpoint response body before transformations: {"errorMessage":"Couldn't fetch the todos.","errorType":"Error","stackTrace":["Response. (/var/task/todos/list.js:16:16)","Request. (/var/task/node_modules/aws-sdk/lib/request.js:355:18)","Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:105:20)","Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:77:10)","Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:668:14)","Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)","AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)","/var/task/node_modules/aws-sdk/lib/state_machine.js:26:10","Request. (/var/task/node_modules/aws-sdk/lib/request.js:38:9)","Request. (/var/task/node_modules/aws-sdk/lib/request.js:670:12)"]}
Sat Feb 04 04:37:12 UTC 2017 : Endpoint response headers: {x-amzn-Remapped-Content-Length=0, x-amzn-RequestId=989d821e-ea93-11e6-be3d-6768b0c930a1, Connection=keep-alive, Content-Length=829, X-Amz-Function-Error=Handled, Date=Sat, 04 Feb 2017 04:37:11 GMT, Content-Type=application/json}
Sat Feb 04 04:37:12 UTC 2017 : Execution failed due to configuration error: Malformed Lambda proxy response
Sat Feb 04 04:37:12 UTC 2017 : Method completed with status: 502

I have tried switching to lambda instead of lambda-proxy. This results in a 500.

Failing with "Parameter 'url' must be a string, not undefined"

Hi,
I am new to Serverless and Node.js. I am trying to run the "aws-node-fetch-file-and-store-in-s3" example. I have not modified the code. Here is how I am invoking it.

serverless invoke -f save -l -d "{'image_url':'https://assets-cdn.github.com/images/modules/open_graph/github-mark.png','key':'github.png'}"

I am getting the following error message.

{
    "errorMessage": "Parameter 'url' must be a string, not undefined",
    "errorType": "TypeError",
    "stackTrace": [
        "Url.parse (url.js:90:11)",
        "urlParse (url.js:84:5)",
        "Body.Request (/var/task/node_modules/node-fetch/lib/request.js:27:16)",
        "/var/task/node_modules/node-fetch/index.js:51:17",
        "new Fetch (/var/task/node_modules/node-fetch/index.js:49:9)",
        "Fetch (/var/task/node_modules/node-fetch/index.js:37:10)",
        "module.exports.save.fetch.then.then.response.then.buffer.then (/var/task/handler.
js:9:3)"
    ]
}

I guess I am doing a silly error, but I am not able to get rid of it. Please help.

Thanks in advance.

Error using the GitHub Webhook example

Situation

I am setting up the aws-node-github-webhook-listener example for a project at Netlify and running into the error where the generated sha1 create from my secret GitHub token set in my webhook settings never matched the one in header['X-Hub-Signature'].

screenshot 2017-06-23 17 27 22

Complication

There is a function that creates sha1 based on the github event body and secret key.

function signRequestBody(key, body) {
  // key is my secret
  return `sha1=${crypto.createHmac('sha1', key).update(body, 'utf-8').digest('hex')}`;
}

Question

TBH, I don't have ever encountered a problem where I needed to compared encrypted data. Is there that someone has a working example of this in the wild? Is there is something I am overlooking?

My function works fine of course if I remove this secret checking, but my guess is @DavidWells has this working as is 😄. Just need some gentle nudging in the correct direction.

Error Message

Error Message from my logs:

{"errorMessage":"[401] X-Hub-Signature incorrect. Github webhook token doesn't match","errorType":"Error","stackTrace":["module.exports.githubWebhookListener (/var/task/handler.js:52:21)"]}
// serverless.yml

service: netlify-cms-www-webhook

provider:
  name: aws
  runtime: nodejs6.10
  environment:
    GITHUB_WEBHOOK_SECRET: unencrytedSecret
    NETLIFY_WEBHOOK_BUILD: https://api.netlify.com/build_hooks/12345

Live Code is at https://github.com/netlify/netlify-cms-docs-webhook

aws-node-rest-api-with-dynamodb example fails when deployed to non-default region

When deploying aws-node-rest-api-with-dynamodb to a region specified with --region:

$ serverless --region eu-west-1 deploy

It fails at runtime with:

$ curl https://xxxxxxxxx.execute-api.eu-west-1.amazonaws.com/dev/todos
{"message": "Internal server error"}

From the logs:

$ serverless --region eu-west-1 logs -f list
[...]
2017-02-06 13:32:26.513 (+02:00)  ... { [AccessDeniedException: User: arn:aws:sts::xxxxxxxxxx:assumed-role/serverless-rest-api-with-dynamodb-dev-eu-west-1-lambdaRole/serverless-rest-api-with-dynamodb-dev-list is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:eu-west-1:xxxxxxxxxxxxx:table/serverless-rest-api-with-dynamodb-dev]
  message: 'User: arn:aws:sts::xxxxxxxxxxx:assumed-role/serverless-rest-api-with-dynamodb-dev-eu-west-1-lambdaRole/serverless-rest-api-with-dynamodb-dev-list is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:eu-west-1:xxxxxxxxxx:table/serverless-rest-api-with-dynamodb-dev',
  code: 'AccessDeniedException',
  time: Mon Feb 06 2017 11:32:26 GMT+0000 (UTC),
  requestId: 'xxxxxxxxxxxxxxxxxxx',
  statusCode: 400,
  retryable: false,
  retryDelay: 0 }
    [...]

Looking at the role policy shows:

$ aws iam get-role-policy --role-name serverless-rest-api-with-dynamodb-dev-eu-west-1-lambdaRole --policy-name dev-serverless-rest-api-with-dynamodb-lambda
{
    "RoleName": "serverless-rest-api-with-dynamodb-dev-eu-west-1-lambdaRole",
    "PolicyName": "dev-serverless-rest-api-with-dynamodb-lambda",
    "PolicyDocument": {
        "Statement": [
            ....
            {
                "Action": [
                    "dynamodb:Query",
                    "dynamodb:Scan",
                    "dynamodb:GetItem",
                    "dynamodb:PutItem",
                    "dynamodb:UpdateItem",
                    "dynamodb:DeleteItem"
                ],
                "Resource": "arn:aws:dynamodb:us-east-1:*:table/serverless-rest-api-with-dynamodb-dev",
                "Effect": "Allow"
            }
        ]
    }
}

Notice how "Resource" refers to us-east-1 instead of eu-west-1.

Setting provider.region in the serverless.yml works as expected.

aws-node-auth0-custom-authorizers-api example gives me CORS error

Hi,

I was just trying out the above mentioned example and it didn't work for me. I did everything exactly like the README stated. The error occurs when I'm trying to invoke the API calls (so logging into auth0 and obtaining a token works). Whether I call the public endpoint or the private endpoint it gives me the typical "No 'Access-Control-Allow-Origin' header is present on the requested resource". Even though cors is set to '' (as you can see in the serverless.yml). Even when I specifically enter my sites URL (instead of '') it won't work. When I test the API in the API Gateway console the Access-Control-Allow-Origin is present.

Any ideas?

Example for receiving a file through API Gateway and uploading it to S3

Hey,

I'm wondering if there is any good example which could be added to the list of examples, where a file (image, pdf, whatever) could be received through the API Gateway in a POST-request and then uploaded into a S3.

I think it would be great to have it, since it is a rather common use case for Lambdas.

Best regards,
Keksike

Slack Bot example

Let us know if you interested to work on this. I comment here if one of the core-team is starting to work on it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.