使用 SAM 创建 API 网关代理资源

2023-11-24

我有一个看似简单的要求,即在 SAM(亚马逊的无服务器应用程序模型)中创建代理资源。事实上非常简单,以至于亚马逊的文档似乎将其保留为exercise致读者!

我想创建一个 AWS API Gateway 包罗万象的终端节点来将所有内容代理到另一个 HTTP 服务。

在 AWS 控制台中,我尝试构建的配置如下所示:

enter image description here

我见过这个优秀的post作者:Christian Johansen 和他的相关 Stack Overflow 问题here了解如何在 CloudFormation 中执行相同的操作。我想我可以在 SAM 中使用该代码,但是,SAM 有其隐式和显式 API,因此如果“正确的方法”是引用隐式资源,我想避免创建显式资源。

有谁知道如何做到这一点?


经过大量的尝试后,我相信我在一个例子中找到了答案here。与 SAM 开箱即用设置的 Hello World 示例相比,差异是:

diff --git a/sam-app/template.yaml b/sam-app/template.yaml
index 02cd901..f349dcc 100644
--- a/sam-app/template.yaml
+++ b/sam-app/template.yaml
@@ -17,11 +17,11 @@ Resources:
         Variables:
           PARAM1: VALUE
       Events:
-        HelloWorld:
+        ProxyApiGreedy:
           Type: Api
           Properties:
-            Path: /hello
-            Method: get
+            Path: /{proxy+}
+            Method: ANY
 Outputs:
   HelloWorldApi:
     Description: API Gateway endpoint URL for Prod stage for Hello World function

换句话说,像这样:

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

使用 SAM 创建 API 网关代理资源 的相关文章

随机推荐

  • Android 4.0 (API 14+) 中 Activity 之间的默认转换是什么

    我构建了一个包含相当多活动的应用程序 我希望在它们之间实现 进入时从右滑动 退出时从左滑动 转换 我不止一次地读到幻灯片过渡应该是 Android 默认设置 但在我正在开发的设备上 过渡默认是淡入 淡出 Galaxy Tab 2 7 在 I
  • 对 OpenSSL 非阻塞 I/O 感到困惑

    一般来说 OpenSSL 库 C API 似乎提供了两种方法来做所有事情 您可以使用根据您的喜好配置的普通系统套接字 或者您可以使用 OpenSSLBIO有点像流的对象 然而 我经常对一些重复的功能感到困惑 例如 如何使 SSL 连接非阻塞
  • WCF .NET Core - WsHttpBinding 配置project.json

    如何使用 NET core配置wsHttpBinding 我应该在Project json文件中配置吗 在 NET Core之前的配置如下
  • Fortran 中的特定双精度函数有用吗?

    我注意到使用 gfortrantan函数返回与其参数相同类型的实值 例如一个人可以通过real kind 4 real kind 8 or real kind 16 并得到结果real kind 4 real kind 8 or real
  • 在 C 语言中编译时评估的预处理器函数

    我想编写在以下位置评估的预处理器函数 数组 编译时间 例如 如果我定义 define MYARR 5 4 3 2 1 0 然后 代码 int x R 0 应表示为 int x 5 给编译器 当然索引中只能使用文字 如果代码大小 内存很关键并
  • 如何控制 Ember.js 在何处附加渲染的应用程序模板?

    我正在尝试将我的 Ember 应用程序切换为使用 Ember Router 但在附加应用程序模板的位置上遇到问题 当我调用 App initialize 时 它会在文档末尾呈现模板 有没有办法指定渲染的应用程序模板附加到的位置 我的应用程序
  • 关闭WinAPI HANDLE的正确方法(避免重复关闭)

    我有一些句柄 我需要关闭它 代码中的某些地方可能会关闭句柄 那么 这是关闭句柄的正确方法吗 HANDLE h if h INVALID HANDLE VALUE CloseHandle h h INVALID HANDLE VALUE 关于
  • 如何在 AVD 4.2 中启用多用户支持

    有没有办法在 Android 4 2 ADT 版本 21 的新 模拟器 AVD 中启用多用户支持 在真实设备上 设置 中应该有 用户 菜单项 但在我的 AVD 上缺少 我知道此功能仅针对某些平板电脑设备启用 但在新的设备定义部分中创建 AV
  • 从 UEFI 应用程序内部运行 UEFI shell 命令

    我是 UEFI 应用程序开发新手 我的要求是 我需要从 UEFI 应用程序运行 UEFI shell 命令 app efi 源代码 需要指导我如何做到这一点 Example cpUEFI shell 中的命令用于将文件从一个路径复制到 其他
  • UpdatePanel 内的 FileUpload.PostedFile 始终为 null

    我在 UpdatePanel 中有一个 FileUpload 控件 我已成功向脚本管理器注册上传按钮以进行完整的回发 我遇到的唯一问题是 FileUpload HasFile 始终返回 null 注意 当我将 FileUpload 控件移到
  • 在 Mongoose / MongoDB 中创建多字段索引

    我试图找到有关如何在 Mongoosejs 中创建多字段索引的文档 但无济于事 特别是我有两个需要索引和唯一的字段 将两个字段一起索引的猫鼬模式示例是什么 你打电话给index方法对你的Schema对象这样做如图所示here 对于你的情况
  • Java 中的 IntPtr (C#) 相当于什么?

    Java JNA 中的 IntPtr C 相当于什么 com sun jna ptr IntByReference
  • Javascript regexObj.exec() 说 TypeError:pattern.exec 不是函数

    我想使用正则表达式从 img 标签中提取图像名称javascript 我的问题是console log 抛出异常 TypeError pattern exec is not a function JS label btn danger on
  • 固定维数 (N=9)、对称、正半定稠密线性系统的快速求解

    您会推荐哪种算法来快速求解固定维数 N 9 的密集线性系统 矩阵是对称的 半正定的 高斯消去法 LU分解 乔列斯基分解 etc 类型为 32 位和 64 位浮点 这样的系统将被解决数百万次 因此算法在维度 n 9 方面应该相当快 附 示例r
  • Scala 方法类型和作为参数的方法

    在下面的代码示例中 我不明白为什么函数 fun 可以作为参数传递给方法addAction 方法fun属于类型Unit 而该方法addAction需要类型的函数 gt Unit If fun属于类型 gt Unit 那么为什么编译器会抱怨fu
  • AngularJS:段落元素的换行符

    在 Angular 中 我需要从包含换行符的文本块生成一系列段落元素 我可以想出几种方法来做到这一点 然而我想知道是否存在 官方 Angular 方式 或者在 AngularJS 上下文中最优雅的方法是什么 一个例子 From Lorem
  • 如何通过 cypress.io 使用 vue.js v-select 查找元素并选择?

    抱歉 我需要有关 cypress io 查找元素 v select 和 select 选项的帮助
  • 根据视差图进行 OpenCv 深度估计

    我正在尝试使用 OpenCV 估计立体图像对的深度 我有视差图 深度估计可以通过以下方式获得 Baseline focal depth disparity SensorSize 我使用块匹配技术在两个校正图像中找到相同的点 OpenCV 允
  • Xamarin iOS 模拟器运行旧代码

    当我从 Visual Studio 调试 Xamarin iOS 项目时 它会在模拟器上构建 安装并启动应用程序 不会出现任何问题 但在启动时 我看到了来自某个方法的大量调试跟踪 而该方法甚至不再存在于我的 C 代码中 我还可以在删除该方法
  • 使用 SAM 创建 API 网关代理资源

    我有一个看似简单的要求 即在 SAM 亚马逊的无服务器应用程序模型 中创建代理资源 事实上非常简单 以至于亚马逊的文档似乎将其保留为exercise致读者 我想创建一个 AWS API Gateway 包罗万象的终端节点来将所有内容代理到另