如何在 Lambda 中获取原始正文字符串(API 网关 Lambda 代理)

2024-04-17

在 API 网关上启用 CORS 后,以下是我发送到 http 端点的请求:

    $.ajax({
        type: 'put',
        url: 'https://xxxxx.execute-api.us-east-1.amazonaws.com/dev/artist/application/julian_test',
        data: {params: {param1: "543543", param2: "fdasghdfghdf", test: "yes"}},
        success: function(msg){
            console.log(msg);
        },
        error: function(msg){
            console.log(msg);
        }
    });

这是 lambda 函数(我使用的是 Node Serverless 包,代码没有错误):

module.exports.julian_test = (event, context, callback) => {
    console.log(event);
    console.log(event.body);

var response_success = {
    statusCode: 200,
    headers: {
        "Access-Control-Allow-Origin": "*"
    },
    body: JSON.stringify({
        firstUser: {
            username: "Julian",
            email: "awesome"
        },
        secondUser: {
            username: "Victor",
            email: "hello world"
        },
        thirdUser: {
            username: "Peter",
            email: "nice"
        }
    })
};
    callback(null, response_success);
};

console.log(event.body) 注销: params%5Bparam1%5D=543543&params%5Bparam2%5D=fdasghdfghdf&params%5Btest%5D=是

,这不是我想要的格式。我检查了 OPTIONS Integration Request/body 映射模板,这是快照。

我尝试删除“application/json”,但之后我收到以下响应:

XMLHttpRequest 无法加载https://xxxxxx.execute-api.us-east-1.amazonaws.com/dev/artist/application/julian_test https://xxxxxx.execute-api.us-east-1.amazonaws.com/dev/artist/application/julian_test。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“null”。响应的 HTTP 状态代码为 500。

有谁知道如何在后端 lambda 中获取原始字符串请求正文?请帮忙!


该屏幕截图是用于 CORS 的 OPTIONS 方法。

您实际的 Lambda 函数调用可能是通过 POST 方法进行的。请检查 POST 方法下的集成请求正文映射模板。如果设置为传递正文(默认设置),则输入请求中的正文应按原样传递给 Lambda。

请使用 API Gateway 控制台中的测试功能来查看输入如何转换为集成请求。这应该可以帮助你调试。

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

如何在 Lambda 中获取原始正文字符串(API 网关 Lambda 代理) 的相关文章

  • AWS Api Gateway:缺少身份验证令牌

    所以我有一个链接到 lambda 函数的 api 网关的自定义域名设置 如果我这样做的话我就可以正常工作https api domain com something https api domain com something行为符合预期
  • 如何使用 lambda 表达式调试stream().map(...)?

    在我们的项目中 我们正在迁移到 java 8 并且正在测试它的新功能 在我的项目中 我使用 Guava 谓词和函数来过滤和转换一些集合Collections2 transform and Collections2 filter 在这次迁移中
  • 从节点服务器上的 AWS S3 获取签名 URL

    Solved 我想得到一个签名网址从我的亚马逊S3服务器 我是新来的AWS 我在哪里设置我的密钥 and 访问 ID 密钥以便S3识别来自我的请求server var express require express var app expr
  • CognitoIdentityCredentials 无权对资源执行:lambda:InvokeFunction

    我正在尝试从 iOS 客户端调用 lambda 函数 我的代码如下所示 要获取凭据 请在 appDelegate 中 func application application UIApplication didFinishLaunching
  • 全文搜索 DynamoDB

    以下情况 我正在为我的客户将元素存储在 DyanmoDb 中 HashKey 是元素 ID Range Key 是客户 ID 除了这些字段之外 我还存储一个字符串数组 gt 标签 例如 Pets House 和多行文本 我想在我的应用程序中
  • 使用AWS SDK将文件上传到存储桶中的特定文件夹

    我正在使用节点开发人员工具包将图像上传到 AWS S3 const aws require aws sdk const s3Bucket process env S3 BUCKET const s3 new aws S3 signature
  • 如何将手动更改导入 Terraform 远程状态

    我是 terraform 的新手 我已经在 s3 中创建了远程 tfstate 现在在我的 AWS 基础设施中也完成了一些手动更改 我需要将这些手动更改导入 tfstate 我对某些资源使用了导入命令 但对于某些资源 例如 IAM 策略等
  • 在中止部署期间,某些实例可能已部署新的应用程序版本

    我正在尝试将 ASP NET 应用程序部署到 AWS 当我按下部署按钮时出现错误 在中止部署期间 某些实例可能已部署新的应用程序版本 为确保所有实例运行相同版本 请重新部署适当的应用程序版本 我不知道我在哪里犯了错误以及出了什么问题 任何意
  • Amazon VPC NACL 默认规则评估顺序

    据我了解 NACL 网络访问控制列表 就是子网防火墙 我试图了解创建 NACL 时的默认值 规则 100 默认情况下允许来自所有 IP 的所有端口 否则 一切都被否定 那么 底线是 是全部允许还是全部拒绝 我知道根据 AWS 最佳实践 默认
  • 根据标准在多个需求之间分配数量

    我正在创建一个周期盘点表 表 1 将是用户输入 其中将放置找到的材料和数量 表 2 是盘点时的库存快照 我希望将找到的材料数量分配到表 2 上的数量中 直到表 1 的数量用完为止 按照从最新批次 日期代码 到最旧批次 先进先出 的顺序分配数
  • 如何随机生成文件的链接?

    我有一个 PDF 文件 我不想通过我网站上的 URL 公开访问该文件 作为 轻微 安全层 我想通过电子邮件向用户发送一个唯一的 随机生成的 URL 他们可以从中下载 PDF 我将把该 PDF 存储在 AWS 或类似的地方 我感觉自己被困在r
  • 来自 Step Function 的跨账户 Lambda 调用

    我在帐户 A 中有 Step Function 并且在帐户 B 中有 lambda 但是在运行 step 函数时 它给出 An error occurred while executing the state lambdaB entered
  • 如何获取AWS ec2中区域的可用容量?

    AWS 终止了我的运行位置 并出现错误 实例终止容量超额订阅 有没有办法查看不同 ec2 区域中实例类型的可用容量 这样我就可以在更 可用 的区域创建我的新位置 查看 现货实例历史记录 这不会告诉您未来 但会给您迄今为止的良好指示 此链接将
  • Dockerfile 从 amazon s3 或其他需要凭据的源复制文件

    我正在尝试构建 Docker 映像 并且需要将一些文件从 S3 复制到该映像 我正在使用的 Dockerfile 内部 Dockerfile FROM library ubuntu 16 04 ENV LANG C UTF 8 LC ALL
  • 从字符串中删除货币符号并使用 Javascript 中的单行转换为数字

    我下面有一个字符串 它是以英镑为单位的价格 我想删除货币符号 然后将其转换为我可以用来与另一个值进行比较的数字 价格 例如 X gt Y 14 50 我之前已将字符串转换为用于货币的数字 var priceNum parseFloat pr
  • S3 存储桶可以生成自己的对象键名称吗?

    我正在将 Amazon API Gateway 配置为 S3 存储桶的代理 理想情况下 我希望客户端能够将文件发布到存储桶 让 S3 为其分配一个文件名 然后在响应中返回该名称 我不想让客户端能够指定文件名 这可能吗 设置代理的文档根本没有
  • 由于命名约定,使用 DynamoDB AWS SDK [无哈希键映射] 时出错

    在使用 AWS JAva SDK 时 为了定义 DynamoDBHashKey 我们使用 DynamoDBHashKey 注释 奇怪的是 如果我使用如下注释 DynamoDBHashKey String Abc 代替 DynamoDBHas
  • 同一 Kinesis 流的多个不同消费者

    我有一个 Kinesis 生产者 它将单一类型的消息写入流 我想在多个完全不同的消费者应用程序中处理这个流 因此 对于给定的主题 流 具有单个发布者的发布 订阅 我还想利用检查点来确保每个消费者处理写入流的每条消息 最初 我为所有消费者和生
  • 不支持函数调用。考虑用对导出函数的引用替换函数或 lambda

    我在我的应用程序中使用 APP INITIALIZER 并在 app module ts 中将其设置如下 并进行必要的导入 NgModule providers ContextService provide APP INITIALIZER
  • AWS Lambda python API 调用方法不返回 JSON - 不可序列化?

    我有一个 Lambda 函数 它是对 API 的基本 Python GET 调用 它在本地运行良好 但是当我上传到 Lambda 以及请求库 时 它不会从 API 调用返回 JSON 响应 我只是希望它将整个 JSON 对象返回给调用者 我

随机推荐