如何更改 SAM 模板中 API 阶段的名称?

2024-05-15

我正在使用 SAM 部署 Lambda 函数,并使其可通过 API Gateway 通过 HTTP 进行调用,大致使用以下模板片段:

MyFunction:
  Type: AWS::Serverless::Function
  Properties:
    …
    Events:
      MyApi:
        Type: Api
        Properties:
          Path: /
          Method: any

这是可行的,但它创建了一个名为“Prod”的 API 阶段,它必须用作所有 URL 的前缀。我不希望我的网址是“https://something/Prod/foo https://something/Prod/foo“,我希望他们成为”https://something/v1/foo https://something/v1/foo“,即我选择的东西。

如何更改舞台名称?

我尝试将 API 声明为单独的资源,并使用StageName属性来设置舞台名称,但是,这需要我也设置DefinitionBody,这似乎是一个很深的兔子洞。

MyFunction:
  Type: AWS::Serverless::Function
  Properties:
    …
    Events:
      MyApi:
        Type: Api
        Properties:
          Path: /
          Method: any
          RestApiId: !Ref MyApi

MyApi:
  Type: AWS::Serverless::Api
  Properties:
    StageName: v1
    DefinitionBody:
      ???

我知道???上面的例子中应该是 Swagger,但我宁愿不必在那里写任何东西,模板已经变得足够冗长了。因为如果我可以接受艺名“Prod”,我就不必写这部分,所以在我看来,必须有一种方法可以避免在那里写任何东西,而只需设置艺名。

如何更改阶段的名称,而无需编写大量模板代码和/或 Swagger?


SAM 版本 1.7.0 不再需要指定 DefinitionBody 或 DefinitionUri,因此您现在应该能够准确执行第二个示例中提到的操作,而无需包含 DefinitionBody:

MyFunction:
  Type: AWS::Serverless::Function
  Properties:
    …
    Events:
      MyApi:
        Type: Api
        Properties:
          Path: /
          Method: any
          RestApiId: !Ref MyApi

MyApi:
  Type: AWS::Serverless::Api
  Properties:
    StageName: v1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改 SAM 模板中 API 阶段的名称? 的相关文章

随机推荐

  • Angular 2+ 源代码中的 ɵ(类似 Theta)符号

    在深入研究 Angular 4 3 源代码后 我经常遇到 符号 例如 在异步管道源 https github com angular angular blob 4 3 2 packages common src pipes async pi
  • NSOperation 中委托的使用

    我正在尝试利用CLLocationManager in an NSOperation 作为其中的一部分 我需要能够startUpdatingLocation然后等到收到 CLLocation 后才完成操作 目前我已经完成了以下操作 但是委托
  • php 检查文件是否存在于外部域中(从子域访问)

    我有一个网站http www reelfilmlocations co uk http www reelfilmlocations co uk 上述网站有一个管理区域 其中上传图像并在 uploads images 目录的子文件夹中创建不同
  • 在 UITextView 上添加具有自定义间距和文本的图像

    I want to add Image on text view and want proper spacing as shown in screenshot 我尝试在文本视图上添加图像 但在根据要求放置文本时遇到问题 请向我提供有关同样的
  • 连接多个用户的 R 闪亮会话

    最小可重现示例 library shiny ui lt fluidPage actionButton button1 Run 1 actionButton button2 Run 2 server lt function session i
  • jquery 文本旋转

    我在 div 中有一个简单的文本 如下所示 div div This is an example text div div 我希望 div 内的文本旋转 20 30 度 我已经找到了this https stackoverflow com
  • 如何从 HttpClient 获取最后一个 url?

    好的 我最近切换到 NET Framework 4 5 并开始使用 HttpClient 而不是 HttpWebRequest Response 我真的很喜欢异步 等待风格 但我不知道如何在 POST GET 请求后获取重定向的 url 通
  • 宏未产生所需的结果

    我是 C 新手 之前来自 Python 我对这部分代码感到困惑 include
  • 将公钥从其他地方导入到 CngKey?

    我正在寻找一种跨平台的方式来共享 ECDSA 签名的公钥 从性能角度来看 我对 CngKey 和标准 NET 加密库感到非常高兴 但后来我无法弄清楚 33 或 65 字节公钥 使用 secp256r1 P256 如何变成 104 字节由 M
  • 使用 lambda 对多列进行分组

    如何使用 lambda 对多列进行分组 我看到了如何使用 linq toEntity 执行此操作的示例 但我正在寻找 lambda 形式 var query source GroupBy x gt new x Column1 x Colum
  • 在 C# 中从另一个子窗体调用一个子窗体

    我有3种表格 FormS FormS和FormS 其中FormAT是mdiParent表格 表格B和C是子表格 我在 FormA 加载事件中编写以下代码 private void frmMain Load object sender Eve
  • 用于创建动画渐变按钮背景的 CSS

    我正在寻找一个CSS规则可以创建一个CSS动画按钮的彩色渐变背景 https i stack imgur com NHqf8 gif 我只是想玩它并这样做 https codepen io prashant nadsoftdev pen b
  • JsonCpp - 当有 json::Value 对象时,我如何知道它的键名称?

    假设我有这个 Json 文件 id 0 使用 jsoncpp 我可以有一个Json Value通过这样做来对象 Json Value node root 0u id 好的 在代码的其他地方 我明白了node对象 我想从中获取一些信息 我可以
  • void *userData 到底是什么?

    在C函数声明中 我看到了这个参数定义 void userData 那么 那到底是什么 我的猜测 虚空说它可以是任意的东西 甚至什么都不是 几乎和objective c的id类似 它只允许传入您喜欢的任何数据结构 userData 前面的星号
  • 左填充 printf 带空格

    使用 printf 时如何在字符串左侧填充空格 例如 我想打印 Hello 前面有 40 个空格 另外 我要打印的字符串由多行组成 我需要单独打印每一行吗 编辑 为了明确起见 我希望在每行之前打印 40 个空格 如果您希望在 40 个字符宽
  • 使用 Matplotlib 绘制二维数组

    所以我有一个二维数组 名为 Data 如下所示 Shape 0 Shape 1 Shape N Scale 0 Value00 Value01 Value0N Scale 1 Value10 Value11 Value1N Scale N
  • jQuery 计算所有文本字段中值的总和

    我有一个订单表单 其中包含大约 30 个包含数值的文本字段 我想计算所有这些模糊值的总和 我知道如何选择所有文本字段 但不知道如何循环它们并添加它们的所有值 document ready function price blur functi
  • 由于 lpcap,CPAN 安装 Net::Pcap 和 Packet 模块失败

    最近 我尝试通过 cpan 安装 perl 模块 Net Packet 和 Net Pcap 但它抱怨找不到 pcap 库 所以我正在搜索 cpan 在安装模块时是否接受外部 lib include 目录 但到目前为止还没有运气 looki
  • 有关 CMake 错误的问题:没有为目标提供源

    我正在尝试使用 cmake 和 eclipse 将 FreeRtos 添加到我的项目中 但出现错误 我运行的是 debian 10 我的 cmake 版本是 3 13 4 cmake 的文件可以在以下位置找到这个 git 仓库 https
  • 如何更改 SAM 模板中 API 阶段的名称?

    我正在使用 SAM 部署 Lambda 函数 并使其可通过 API Gateway 通过 HTTP 进行调用 大致使用以下模板片段 MyFunction Type AWS Serverless Function Properties Eve