I am gettting "cannot read property 'States' of null when running sls deploy

service: serverless-c24-api

plugins:

  • serverless-step-functions

  • serverless-pseudo-parameters

provider:

name: aws

runtime: nodejs12.x

stage: dev

region: us-east-1

profile: default

timeout: 10

memory: 128

iamRoleStatement:

- Effect: "Allow"

  Action:

    # - dynamodb:DescribeTable

    # - dynamodb:Query

    # - dynamodb:Scan

    # - dynamodb:GetItem

    # - dynamodb:PutItem

    # - dynamodb:UpdateItem

    # - dynamodb:DeleteItem

    - "s3:ListBucket"

    - "s3:GetObject"

    - "s3:PutObject"

    - "states:ListStateMachines"

    - "states:StartExecution"

  Resource: 

    - "arn:aws:s3:::auto-c24-api-bucket/*"

    - "arn:aws:states:*:*:*"

functions:

writeToThequeue: # pre-condition lambda

handler: handler.writeToThequeue

events:

  - s3:

      bucket: auto-c24-api-bucket

      event: s3:ObjectCreated:*

      existing: true

retrieveFromQueue:

handler: app.retrieveFromQueue 

reservedConcurrency: 10

environment:

  statemachine_arn: ${self:resources.Outputs.MyStateMachine.Value}

events:

  - sqs: arn:aws:sqs:us-east-1:204378596018:auto-c24-api-bucket

bellProcessor:

handler: bell.processor

attProcessor:

handler: att.processor

rogersProcessor:

handler: rogers.processor

tisProcessor:

handler: tis.processor

resources:

Outputs:

MyStateMachine:

Description: The ARN of the state machine

Value:

  Ref: MyStateMachine

Resources:

S3OperationBucket:

 Type: AWS::S3::Bucket

 Properties:

   BucketName: auto-c24-api-bucket

MyQueue:

 Type: AWS::SQS::Queue

 Properties:

   QueueName: auto-c24-api-bucket

MyAccountTable:

 Type: AWS::DynamoDB::Table

 Properties:

  TableName: ${self:provider.stage}-account

  AttributeDefinitions:

    - AttributeName: sim

      AttributeType: S

  KeySchema:

    - AttributeName: sim

      KeyType: HASH

  ProvisionedThroughput:

    ReadCapacityUnits: 1

    WriteCapacityUnits: 1

stepFunctions:

stateMachines:

activateDeactivateSim:

  name: myStateMachine

  definition:

  Comment: "How to activate and deactivate sim for different provider"

  StartAt: Choosesim

  States:

    Choosesim:

      Type: Choice

      Choices: 

        -  Variable: "$.mySimPattern"

           StringEquals: 8930269

           Next: ProcessBell

        -  Variable: "$.mySimPattern"

           StringEquals: 8930272

           Next: ProcessRogers

        -  Variable: "$.mySimPattern"

           StringEquals: 8901410

           Next: ProcessATT

      Default: DefaultState

    ProcessBell: 

      Type: Task

      Resource: arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:${self:service}-${opt:stage}-bellProcessor

      TimeOutSeconds: 60

      Next: SNSNotification

    ProcessRogers:

      Type: Task

      Resource: arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:${self:service}-${opt:stage}-rogersProcessor

      TimeOutSeconds: 60

      Next: SNSNotification

    ProcessATT:

      Type: Task

      Resource: arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:${self:service}-${opt:stage}-attProcessor

      TimeOutSeconds: 60

      Next: SNSNotification

    DefaultState:

      Type: Fail

    SNSNotification:

      Type: Succeed
1 Like