Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

LambdaFunction - Value of property Variables must be an object with String (or simple type) properties

I am using serverless to deploy my Lambda based application. It was deploying just fine, and then it stopped for some reason. I paired down the entire package to the serverless.yml below and one function in the handler - but I keep getting this error:

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

An error occurred: TestLambdaFunction - Value of property Variables must be an object with String (or simple type) properties.

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

Here is the serverless.yml

# serverless.yml
service: some-api
provider:
  name: aws
  runtime: nodejs6.10
  stage: prod
  region: us-east-1
  iamRoleStatements:
    $ref: ./user-policy.json
  environment:
    config:
      region: us-east-1
plugins:
  - serverless-local-dev-server
  - serverless-dynamodb-local
  - serverless-step-functions
package:
  exclude:
    - .gitignore
    - package.json
    - README.md
    - .git
    - ./**.test.js
functions:
  test:
    handler: handler.test
    events:
      - http: GET test
resources:
  Outputs:
    NewOutput:
      Description: Description for the output
      Value: Some output value

Test Lambda Function in Package

#handler.test
module.exports.test = (event, context, callback) => {
  callback(null, {
    statusCode: 200,
    body: JSON.stringify({
      message: 'sadfasd',
      input: event
    })
  })
}
like image 427
Sean Avatar asked Feb 18 '18 03:02

Sean


1 Answers

Turns out, this issue does not have any relationship to the Lambda function. Here is the issue that caused the error.

This does NOT work:

  environment:
    config:
      region: us-east-1

This DOES work:

  environment:
    region: us-east-1

Simply put, I don't think you can have more than one level in your yaml environment variables.

Even if you try sls print as a sanity check, this issue will not pop up. Only in sls deploy.

You have been warned, and hopefully saved!

like image 95
Sean Avatar answered Sep 22 '22 08:09

Sean