首页 文章

AWS无服务器应用程序模型(SAM) - 如何更改StageName?

提问于
浏览
1

我正在使用AWS SAM(无服务器应用程序模型)创建一个带有API endpoints 的lambda .

在我的SAM template.yaml中,我有一个带有/ user endpoints 的getUser lambda .

template.yaml

Resources:
  GetUser:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./src
      Handler: handler.getUser
      Timeout: 300
      Runtime: nodejs6.10
      Events:
        GetUser:
          Type: Api
          Properties:
            Path: /user
            Method: get

当我使用AWS CLI部署它时,它成功创建了lambda和 endpoints ,但API网关阶段容易混淆地命名为“Stage” . 我想将舞台名称更改为其他内容,例如“Prod” . 如何更改阶段名称?

这是舞台名称在部署后在cloudformation模板中定义的位置 . 我想要“StageName”:“Stage”就像“StageName”:“Prod” .

"ServerlessRestApiDeployment": {
  "Type": "AWS::ApiGateway::Deployment",
  "Properties": {
    "RestApiId": {
      "Ref": "ServerlessRestApi"
    },
    "StageName": "Stage"
  }

1 回答

  • 2

    我无法删除 Stage StageName,但是当我使用SAM进行部署时,我使用以下方法在GatewayAPI部署中设置了动态StageName:

    Properties: StageName: !Ref "STAGE_VARIABLE"

    我为每个环境都有一个不同的堆栈,因此有一个带有 prod 阶段的 prod API和带有 dev 阶段的 dev API . 我发现这比同一个GatewayAPI的多阶段部署更容易

相关问题