部署特定于 AWS 状态机的阶段

Deploy AWS state machine stage specific

我是无服务器框架的新手。我只想为开发环境部署状态机,而不是为其他环境部署状态机。我如何部署它特定于阶段?我已经尝试使用 serverless-plugin-ifelse 进行部署,但它在状态机的情况下不起作用。我的 serverless.yml 看起来像

serverlessIfElse:
    - If: '"${self:custom.currentStage}" == "beta"'
      Exclude:
        - stepFunctions.stateMachines
 stepFunctions:
  stateMachines:
    pruneIndices:
      ${file(./handlers/prune-indexes/prune-indexes.yml)}

如果您可以为您的状态机提供一个名称,请将您要部署到的阶段添加为该状态机名称的一部分。我通常用多个变量命名我的资源以更好地为它们命名,因此例如你可以使用:

${self:service}-myStateMachineName-${opt:stage, 'dev'}

通过这种方式,即使您在同一个帐户上重复使用它,并且如果您在部署过程中通过了一个阶段,例如 serverless deploy --stage mystage,它也将是唯一的或默认的 dev 如果未指定阶段。