使用 Serverless.yml 通过环境变量传递 StateMachine ARN

Ben*_*son 5 aws-lambda serverless-framework aws-step-functions serverless-framework-step-functions

在测试时我收到以下消息:

 Serverless Warning --------------------------------------
 A valid service attribute to satisfy the declaration     
'self:resources.Outputs.StateMachine.Value' could not be found.
Run Code Online (Sandbox Code Playgroud)

serverless.yml 的摘录

  name: aws
  runtime: nodejs12.x
  stage: ${opt:stage, 'dev'}
  region: us-east-1 
  lambdaHashingVersion: 20201221
  versionFunctions: false
  environment:
    statemachine_arn: ${self:resources.Outputs.StateMachine.Value}
Run Code Online (Sandbox Code Playgroud)

国家职能

stepFunctions:
  stateMachines:
    updateMetric:
       name: updateMetric
       definition:
         Comment: "A state machine to update data"
         StartAt: getMetric
          ........
          ........
           
              
Run Code Online (Sandbox Code Playgroud)

输出

resources:
  - ${file(./resources/dynamodb-table.yml)}
  - Outputs:
      StateMachine:
        Value:
          Ref: UpdateMetric
Run Code Online (Sandbox Code Playgroud)

我只是试图传递状态机的 ARN,以便我可以从 lamda 函数启动状态机。

看来我在输出部分的参考不起作用,或者我没有在这里正确调用它:

 environment:
    statemachine_arn: ${self:resources.Outputs.StateMachine.Value}
Run Code Online (Sandbox Code Playgroud)

小智 0

尝试将 updateMetric 的第一个字母大写。