1

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

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

1 回答 1

2

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

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

通过这种方式,即使您在同一个帐户上重新使用它并且如果您在部署期间通过了一个阶段,您的状态机对于每个服务将始终是唯一的,例如,如果未指定阶段serverless deploy --stage mystage,它将是唯一的或默认的。dev

于 2020-02-15T12:20:47.040 回答