【问题标题】:Specify a $default API Gateway stage via CloudFormation template?通过 CloudFormation 模板指定 $default API Gateway 阶段?
【发布时间】:2021-02-17 01:27:27
【问题描述】:

我正在使用AWS SAM

从文档中,我看到 “阶段名称只能包含字母数字字符、连字符和下划线,或者是 $default。”

但是当我尝试时:

Resources:
  ExpressApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: '$default'

堆栈创建失败并显示消息:

舞台名称只允许 a-zA-Z0-9_

我只是希望能够使用路径中没有 StageName 的 API 基本 URL。我的 API 只有一个阶段。

有没有办法在不将自定义域连接到 API 的情况下做到这一点?

【问题讨论】:

  • 您是在创建 Rest Api 还是 Http Api ?如果是 Rest api,stage name 就是 default ,如果是 Http Api 则不需要,默认创建$default

标签: amazon-cloudformation aws-api-gateway aws-serverless


【解决方案1】:

对于HTTP API

StageName 是可选的,因为 HTTP API 默认创建 $default 阶段,无需任何前缀即可访问并自动部署。

如果未指定名称,AWS SAM 将使用 API 网关的 $default 阶段

对于REST API

舞台名称是必需的。 Rest API 没有自动部署。 SAM 模板在幕后创建该阶段并将代码部署到该阶段,它只允许 a-zA-Z0-9_

【讨论】:

  • 嗨。这是AWS::Serverless::Api,它是 REST API。您可以从其余 api 的 URL 中删除舞台名称吗?我认为这是 OP 的问题?
猜你喜欢
  • 2018-10-29
  • 1970-01-01
  • 2019-11-14
  • 2017-03-10
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
相关资源
最近更新 更多