验证AWS API网关的请求路径参数?

2023-11-27

假设我有一个带有路径的 api/ and /{pets} and /{pets}/pet。现在我正在尝试验证路径{pets}参数,以便只有长度为 6 的字母数字字符的路径才会被验证并处理到后端 lambda,所有其他路径都将被拒绝。我尝试了以下 swagger 模式,指定参数的格式和类型。我什至尝试在架构中使用模式,但它似乎不起作用。我想知道如何才能仅限制某些 ID 的路径参数。

{
  ......
  "/{pets}/pet": {
      "get": {
          "consumes": [
              "application/json"
          ],
          "produces": [
              "application/json"
          ],
          "parameters": [{
              "name": "pets",
              "in": "path",
              "required": true,
              "schema": {
                  "type": "string",
                  "pattern": "[A-Za-z0-9]{6}"
              }
          }],
          "responses": {
              "200": {
                  "description": "200 response",
                  "schema": {
                      "$ref": "#/definitions/Empty"
                  }
              }
          },
          "x-amazon-apigateway-request-validator": "Validate query string parameters and headers",
          "x-amazon-apigateway-integration": {
              "responses": {
                  "default": {
                      "statusCode": "200"
                  }
              },
              "requestTemplates": {
                  "application/json": "##  See ...."
              },
              "uri": "........",
              "passthroughBehavior": "when_no_templates",
              "httpMethod": "POST",
              "contentHandling": "CONVERT_TO_TEXT",
              "type": "aws"
          }
      }
  }
  .....
}

我想要实现的目标:

https://api.example.com/aacc77/pet -- Accept
https://api.example.com/aacc77s/pet -- Reject
https://api.example.com/aacc7/pet -- Reject
https://api.example.com/aacc_7/pet -- Reject

基本上,我想使用这个正则表达式模式作为路径[A-Za-z0-9]{6}.

"pets": {
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Pets Schema",
  "type": "string",
  "pattern": "[A-Za-z0-9]{6}"
}

我看到有一个相关的问题here,我想知道是否有解决方案可用。


None

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

验证AWS API网关的请求路径参数? 的相关文章

  • API Gateway POST 方法在测试期间工作,但不适用于邮递员

    我会尽力清楚地解释我的问题 我有一个 API 它使用 Node js 编写的 lambda 函数在 DynamoDB 中编写一些内容 当我在 AWS 控制台中调用它时 API 按预期工作 我发送这样的正文 user id 4dz545zd
  • 从 EC2 W2008 实例创建 AMI - 为什么从来没有获得密码?

    我正在尝试做什么 我正在尝试克隆 EC2视窗2008通过管理控制台实例 该实例基于 Windows Server2008 i386 Base v104 ami 92ba43fb 但上面安装了许多应用程序 我想为新实例保留这些应用程序 发生了
  • 在 Elastic Beanstalk SSH 上运行 Django 命令 -> 缺少环境变量

    所以这对我来说是一个长期存在的问题 我很想解决它 我也认为这会帮助很多其他人 我希望在 Elastic Beanstalk EC2 实例上进行 ssh 操作后运行 Django 命令 例如 python manage py dumpdata
  • 输出和导出之间的区别

    在 CloudFormation 中 我们能够从模板输出一些值 以便其他进程 堆栈等可以检索它们 这通常是某个名称 可能是 URL 或在堆栈创建 部署 过程中生成的名称等 我们还能够从模板 导出 返回值作为 输出 与 导出 之间有什么区别
  • AWS SQS Batch SendMessageBatchRequest 非常慢

    我的应用程序使用 SendMessageBatchRequest 将每个请求发布 10 条消息到 AWS SQS 每条消息的大小小于250字节 该应用程序预计每天发布约一百万条记录 但要实现这一目标 消息发布的速度非常慢 AmazonSQS
  • 将密钥对添加到现有 EC2 实例

    我被给予AWS控制台访问正在运行 2 个实例的帐户 但我无法关闭 在生产中 但是 我想获得对这些实例的 SSH 访问权限 是否可以创建一个新的密钥对并将其应用到实例 以便我可以通过 SSH 访问 获取现有的pem当前无法选择创建实例所用的密
  • 使用S3上传但不允许公共访问

    我的想法是创建一个 S3 存储桶以允许用户上传二进制对象 下一步是确认上传 然后 API 将启动文件处理 为了使其更安全 客户端将首先请求上传位置 然后 API 会在 S3 上为此上传分配并预先创建一个一次性使用目录 并在该目录上设置访问策
  • AWS CodePipeline 构建缺少 Git 历史记录

    Context 我设置了一个 CodePipeline 它使用 CodeCommit 和 CodeBuild 作为其源和构建阶段 我的构建包括一个插件 com zoltu git versioning 使用 Git 提交历史记录来动态创建构
  • X-Amz-Expires 是向 AWS 发出的请求所需的标头/参数吗?

    Is X Amz Expires必需的标头 参数 官方文档不一致 用在一些例子 http docs aws amazon com AmazonS3 latest API sigv4 query string auth html 虽然不在ot
  • 如何修改 Amazon RDS 实例的 my.ini 参数

    在启动 MySQL 5 5 RDS 实例时 Amazon 使用默认参数组来配置 my ini 参数 但控制台不允许我修改它们 我怎样才能实现这个目标 例如默认将存储引擎设置为MyISAM或设置字符集 此处记录了这一点 http aws am
  • AWS Elastic Beanstalk 一次也不会部署我的 Rails 应用程序

    我目前正在使用 Ruby 2 6 running on 64bit Amazon Linux 2 3 0 2 图像 并通过查看EC2实例内部的 var logs eb engine log eb logs 命令不会 t 告诉我这个 反复出现
  • 如何在PHP中将图像从内存上传到AWS S3?

    所以我目前有一个使用 AWS S3 上传图像的上传系统 这是代码 Upload image to S3 s3 Aws S3 S3Client factory array key gt mykey secret gt myskey try s
  • 如何从 AWS SAM 本地 docker 实例连接到主机 MySQL?

    我正在尝试使用调用我的 Lambda 函数sam local invoke但发现无法连接到我的主机MySQL 我尝试添加 docker network host但也无法连接 Traceback most recent call last F
  • 如何自动启动我的 ec2 实例、运行命令然后将其关闭?

    我想每周对 redshift postgres 数据库中的数据运行一次机器学习模型 我使用以下命令将 R 脚本设置为休息 apiplumbr然后我将其设置为一项任务来管理pm2 我有它 所以任务会在ec2实例启动然后继续运行 要让 R 脚本
  • AWS lambda 是否保证将函数更新到新版本时不会出现停机?

    默认情况下 AWS 使用LATEST更新了最新 lambda 版本的别名 我假设执行以下步骤 Now LATEST别名点版本 5 用户部署新版本的 lambda 在部署新版本时 LATEST别名仍然指向版本 5 部署完成后 Lambda 只
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • 在 Elastic Beanstalk 中禁用自动安全组命名

    创建新环境时 Beanstalk 往往会使用随机且非常大的字符串 例如 awseb e nhmvcuvtjh stack AWSEBSecurityGroup 1R8CUK434DLPG 来污染我们的安全组命名约定 这些字符串之后无法更改
  • EC2专用实例是否共享RAM带宽?

    如果我创建一个专用实例并且它在多芯片服务器上启动 它是否共享其自己的 CPU 的 RAM 带宽 如果邻居运行一些消耗内存带宽的任务会发生什么 它会影响我的实例吗 这在共享实例上怎么样 RAM有哪几种寻址方式 仅在其自己的 numa 节点上还
  • 如何测试 jest Node JS 中 AWS 内置方法中使用的 .promise() 方法

    我想对其进行完整的单元测试 下面给出了我的函数的代码 function js async function sesSendEmail message var ses new aws SES apiVersion 2020 12 01 var
  • 如何在AWS中从快照创建Windows实例

    我的公司想要在 Amazon Web Service 中拍摄窗口的每日快照 我们可以毫无问题地拍摄快照 但是当我尝试从快照创建实例时 它总是创建一个 Linux ami 所以当服务器启动时 它总是无法通过健康检查 是否可以从快照创建 Win

随机推荐

  • 在java中使用正则表达式替换括号中的逗号

    我想仅在括号内替换逗号 例如 Progamming languages Java C Perl TO Progamming languages Java or C or Perl 但它不应该替换以下字符串中的逗号 Progamming la
  • pandas:如何消除值以特定字符结尾的行?

    我有一个 pandas DataFrame 如下 mail DataFrame mail email protected email protected email protected email protected nfjebfj ema
  • 如何在 Windows 上安装 rmagick gem?

    如何为 Windows XP 安装 rmagick gem 我已经使用头文件安装了 ImageMagick 并且安装了 DevKit 附带的 RailsInstaller org 我不知道到哪里去修复这些错误 C RailsInstalle
  • 一次迭代两个数组的每个循环

    我有两个大小相同的 Javascript 数组 var demo new Array var demo3 new Array 我需要在 JQuery 代码中的每个循环中访问两个数组的值 冲浪了一段时间后 我遇到了 zip 操作 我尝试使用代
  • 根据用户更改主题/CSS

    我正在开发一款产品 我们最终将为其贴上白标标签 现在 我正在尝试找出以编程方式满足这些要求的最佳方法 以便用户可以通过其个人资料 设置表单更新网站的基本设计 即标题颜色等 要求 用户可以更新徽标 已完成 用户可以更新基本设计元素 基于 CS
  • 如何用JS以不可变的方式连接数组

    我想知道如何联系不可变的数组 让我们想象一下我从数组开始list 4 1 然后我从动作响应中接收数组 如下所示items 5 2 6 如何连接结果为的数组 4 1 5 2 6 并且该操作是不可改变的 Bonus 如何覆盖具有相同 id 的项
  • C++ std::string 是容器吗?

    对于你们中的一些人来说 这可能是一个简单的问题 但我想知道是否std string是一个容器 我所说的容器是指容器 例如std vector std list and std deque Since std basic string lt
  • 使用 Asyncio 进行非阻塞 Websocket 接收

    我正在开发一个 Python 3 程序 它试图做两件事 1 从外部 websocket 非阻塞 读取数据 类型 1 并且 2 在常规UDP套接字上接收数据 类型2 非阻塞 有很长一段时间 websocket 和 UDP 套接字上都没有数据
  • 以编程方式更新 Android 操作系统

    我正在从事一个移动设备管理项目 我们项目的要求之一是以编程方式更新 Android 设备操作系统 流程如下 服务器发送有关操作系统更新的推送通知 Android 客户端下载更新 现在我想以编程方式更新 Android 设备操作系统 我怎样才
  • 如何根据特定索引范围对 ArrayList 进行排序

    我的需要是根据特定的索引范围对字符串的 ArrayList 进行排序 例如 我的列表中有以下项目 abc xyz pqr asd 现在我想从索引 1 到最后一个索引对该列表进行排序 一种方式我认为我可以从具有所需索引范围的主列表创建一个子列
  • Delphi:检查文件是否正在使用

    我想写入 删除文件 但有时如果该文件正在被另一个程序使用 我会崩溃 如何检查文件是否被其他进程打开或者我可以打开它进行写入 问题是 在您检查是否可以获得独占访问权限和打开文件之间 其他东西获得了对该文件的独占访问权限 无论如何您都会收到异常
  • 如何分散客户使用 IE6 的注意力

    我们如何才能分散客户使用 IE6 的注意力 我们知道IE6并不是一个很好的符合标准的浏览器 有很多问题 如何满足客户不使用IE6 谢谢 我目前正在为我的公司建立一个新网站 我一直在考虑http code google com p ie6 u
  • Node.js:获取响应时间

    如何知道 URL 的响应时间 我在用着http get 发出 HTTP GET 请求 没有内置函数或值来获取响应时间 但您自己可以轻松获得该值 var http require http var start new Date http ge
  • Haskell 函数名中 ' 的含义?

    什么是报价 用于 我已经阅读了有关柯里化函数的内容 并阅读了定义 add 函数的两种方法 柯里化和非柯里化 咖喱版本 myadd Int gt Int gt Int myadd x y x y 但即使没有引号 它也同样有效 那么这有什么意义
  • appengine-mapreduce 达到内存限制

    我正在研究 appengine mapreduce 函数 并修改了演示以适应我的目的 基本上我有超过一百万行 格式如下 userid time1 time2 我的目的是找到每个用户 ID 的 time1 和 time2 之间的差异 但是 当
  • grep 最后一场比赛及其以下几行

    我已经学会了如何grep比赛前后的线路以及grep上一场比赛 但我还没找到如何做grep最后一场比赛及其下方的线条 该场景是服务器日志 我想列出命令的动态输出 该命令可能在一个服务器日志中使用多次 所以我想匹配将是命令并且以某种方式grep
  • HTML 范围滑块和 jQuery?

    我的网站中有以下代码 并使用 HTML5 集成了范围滑块 我希望滑块用值更新文本输入 反之亦然 我会使用 jQuery 来做到这一点吗 如果可以的话你能给我示例代码吗 Thanks
  • SELECT COUNT(*) 昂贵吗?

    您认为在每次页面加载时对一个非常大的表 例如 50K 行 中的条目进行计数是一个好主意吗 SELECT COUNT FROM table 现在我有大约 2000 行 看起来相当快 我没有看到页面加载有任何延迟 但表应该达到 50K 条目 我
  • 使用 wix 生成可执行文件

    我正在学习 Wix 我想生成 setup exe 文件而不是 setup msi 那可能吗 安装 EXE 通常称为引导程序 or chainer WiX 3 5 将附带一个名为burn exe 不幸的是 这仍在大力开发中 如果您只是想要一个
  • 验证AWS API网关的请求路径参数?

    假设我有一个带有路径的 api and pets and pets pet 现在我正在尝试验证路径 pets 参数 以便只有长度为 6 的字母数字字符的路径才会被验证并处理到后端 lambda 所有其他路径都将被拒绝 我尝试了以下 swag