How to eliminate TypeError: Cannot read property ‘startsWith’ of undefined error during sls deployment

How to eliminate TypeError: Cannot read property ‘startsWith’ of undefined error during sls deployment

目前正在学习无服务器和状态机。当我尝试进行部署时出现错误:TypeError: Cannot read property ‘startsWith’ of undefined.

您可以在下面找到我正在尝试部署的 serverless.yml 定义。我无法发现我犯的错误。

我想要的状态机真的很基础很简单。我想从决定开始,这将直接纠正 lambda,取决于输入(所有本手册,现在是半手册)。 lambda 完成后(无论是哪一个)都会结束。

   service: state-machine
    
    plugins:
      - serverless-python-requirements
      - serverless-iam-roles-per-function
      - serverless-step-functions
      - serverless-pseudo-parameters
    
    custom:
      pythonRequirements:
        dockerizePip: non-linux
        slim: true
        zip: true
    
    provider:
      name: aws
      runtime: python3.8
      region: eu-central-1
      stage: ${opt:stage, 'testing'}
      timeout: 30
    
      iamRoleStatements:
        - Effect: Allow
          Action:
- lambda:InvokeFunction
        - lambda:InvokeAsync
      Resource: "*"

package:
  individually: true
  exclude:
    - node_modules/**
    - .git/**
    - .venv/**

functions:
  process-purchase:
    module: state-machine
    memorySize: 128
    stages:
      - testing
      - dev
    handler: ProcessPurchase.process_purchase

  process-refund:
    module: state-machine
    memorySize: 128
    stages:
      - testing
      - dev
    handler: ProcessRefund.process_refund

stepFunctions:
  validate: true
  stateMachines:
    TransactionChoiceMachine:
      name: ChoiceMachineTest-${self:provider.stage}
      dependsOn: CustomIamRole
      definition:
        Comment: "Purchase refund choice"
        StartAt: ProcessTransaction
        States:
          ProcessTransaction:
            Type: Choice
            Choices:
              - Variable: "$.TransactionType"
                StringEquals: "PURCHASE"
                Next: PurchaseState
              - Variable: "$.TransactionType"
                StringEquals: "REFUND"
                Next: RefundState
          PurchaseState:
            Type: Task
            Resource:
              Fn::GetAtt: [process-purchase, Arn]
            End: true
          RefundState:
            Type: Task
            Resourse:
              Fn::GetAtt: [process-refund, Arn]
            End: true

这是我在SLS_DEBUG=true:

之后得到的日志
 Type Error ---------------------------------------------
 
  TypeError: Cannot read property 'startsWith' of undefined
      at /home/maciej/node_modules/serverless-step-functions/lib/deploy/stepFunctions/compileIamRole.js:374:59
      at arrayMap (/home/maciej/node_modules/lodash/lodash.js:639:23)
      at map (/home/maciej/node_modules/lodash/lodash.js:9554:14)
      at Function.flatMap (/home/maciej/node_modules/lodash/lodash.js:9257:26)
      at ServerlessStepFunctions.getIamPermissions (/home/maciej/node_modules/serverless-step-functions/lib/deploy/stepFunctions/compileIamRole.js:327:12)
      at /home/maciej/node_modules/serverless-step-functions/lib/deploy/stepFunctions/compileIamRole.js:423:56
      at Array.forEach (<anonymous>)
      at ServerlessStepFunctions.compileIamRole (/home/maciej/node_modules/serverless-step-functions/lib/deploy/stepFunctions/compileIamRole.js:412:32)
  From previous event:
      at PluginManager.invoke (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:498:22)
      at PluginManager.spawn (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:518:17)
      at /usr/lib/node_modules/serverless/lib/plugins/deploy/deploy.js:122:50
  From previous event:
      at Object.before:deploy:deploy [as hook] (/usr/lib/node_modules/serverless/lib/plugins/deploy/deploy.js:102:22)
      at /usr/lib/node_modules/serverless/lib/classes/PluginManager.js:498:55
  From previous event:
      at PluginManager.invoke (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:498:22)
      at /usr/lib/node_modules/serverless/lib/classes/PluginManager.js:533:24
  From previous event:
      at PluginManager.run (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:533:8)
      at /usr/lib/node_modules/serverless/lib/Serverless.js:168:33
  From previous event:
      at Serverless.run (/usr/lib/node_modules/serverless/lib/Serverless.js:155:74)
      at /usr/lib/node_modules/serverless/scripts/serverless.js:50:26
      at processImmediate (internal/timers.js:461:21)
  From previous event:
      at Object.<anonymous> (/usr/lib/node_modules/serverless/scripts/serverless.js:50:4)
      at Module._compile (internal/modules/cjs/loader.js:999:30)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
      at Module.load (internal/modules/cjs/loader.js:863:32)
      at Function.Module._load (internal/modules/cjs/loader.js:708:14)
      at Module.require (internal/modules/cjs/loader.js:887:19)
      at require (internal/modules/cjs/helpers.js:74:18)
      at Object.<anonymous> (/usr/lib/node_modules/serverless/bin/serverless.js:47:1)
      at Module._compile (internal/modules/cjs/loader.js:999:30)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
      at Module.load (internal/modules/cjs/loader.js:863:32)
      at Function.Module._load (internal/modules/cjs/loader.js:708:14)
      at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
      at internal/main/run_main_module.js:17:47

我的 serverless.yml 中的第 77 行有错字...应该是 Resource