api 网关调用 lambda 时事件对象为空

2024-02-18

现在我的 lambda 只是回显事件对象:

def lambda_handler(event, context):
    pprint(event)

我一直在代码中使用事件对象来获取这样的路径event['path']

当我像这样运行 sam local 在本地启动 api 网关时,当我点击本地运行的 api 网关时,lambda 会像我期望的那样转储一个事件对象,我可以从中读取路径:

sam local start-api

但是当我将 SAM 模板部署到 aws 并在 api 网关控制台中测试它时,“事件”为空。

为什么事件在 aws 上为空,而不是在本地?我需要做些什么才能通过完整的活动吗?这是我的模板:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
    sam-app

    Sample SAM Template for sam-app

# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
    Function:
        Timeout: 3

Resources:

    lambdafunction:
        Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
        Properties:
            CodeUri: hello_world/build/
            Handler: app.lambda_handler
            Runtime: python2.7

            Environment: # More info about Env Vars: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object
                Variables:
                    PARAM1: VALUE

            Events:
                # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
                testMethod:
                    Type: Api
                    Properties:
                        RestApiId: !Ref ApiGatewayApi
                        Path: /testMethod
                        Method: GET

    ApiGatewayApi:
        Type: AWS::Serverless::Api
        Properties:
            StageName: Prod
            DefinitionBody:
                swagger: "2.0"
                info:
                    version: "2018-09-12T06:21:35Z"
                    title: mytest
                schemes:
                - "https"
                paths:
                    /testMethod:
                        x-amazon-apigateway-any-method:
                            produces:
                            - "application/json"
                            responses:
                                '200':
                                    description: "200 response"
                                    schema:
                                        $ref: "#/definitions/Empty"
                            security:
                            - sigv4: []
                            x-amazon-apigateway-integration:
                                uri:
                                  Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${lambdafunction}/invocations
                                responses:
                                    default:
                                        statusCode: "200"
                                passthroughBehavior: "when_no_match"
                                httpMethod: "POST"
                                contentHandling: "CONVERT_TO_TEXT"
                                type: "aws"
                securityDefinitions:
                    sigv4:
                        type: "apiKey"
                        name: "Authorization"
                        in: "header"
                        x-amazon-apigateway-authtype: "awsSigv4"
                definitions:
                    Empty:
                        type: "object"
                        title: "Empty Schema"

None

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

api 网关调用 lambda 时事件对象为空 的相关文章

随机推荐

  • 如何从 File#path 获取 utf8 字符

    File path给我 Latin 1 字符 有没有办法让它给我 utf8 字符 或者我应该转换它返回的内容 如果是这样 最好 最简单的转换方法是什么 阐述 所以 我知道我可以这样做 Iconv new UTF 8 LATIN1 iconv
  • 如何将自定义验证器与 dropwizard 一起使用?

    我有一个由其他人编写的 REST api 其中处理对特定 url 的请求的方法接受一堆从路径参数填充的参数 POST Path classid studentid details Consumes MediaType MULTIPART F
  • 将 MySQL ANSI 输入转换为 UTF-8 [重复]

    这个问题在这里已经有答案了 我决定将我的网络应用程序从 ANSI 切换为 UTF 8 在 Notepad 中转换我的硬编码文件的编码后 这会执行转换 不仅仅是更改字符集 并为 UTF 8 设置新的元标记 我现在需要转换我的数据库数据 该数据
  • 从 Rails 控制器访问资产路径

    我正在共享一个配置 yml 文件客户端 我还需要在服务器端加载它 我已将其放置在 app assets javascripts configuration yml 中 我可以在视图内使用 asset path configuration y
  • 是否可以使用 JavaScript 触发键盘按钮?

    是否可以使用 JavaScript 触发键盘按钮 并根据 Caps Lock 按钮获取输入大小写 因此 如果我的大写锁定打开 它应该是大写的 或 如果它关闭了 它应该是小写的 触发关键事件 var ev jQuery Event keypr
  • 无法读取 C 中的某些注册表项

    我正在使用 RegOpenKeyEx 和 RegQueryValueEx 尝试获取 Windows 注册表中六个键的值 我能够完成六项中的四项 但在某些其他方面却失败了 wchar t getRegKeyValue HKEY rootKey
  • iOS7 中检测 MKOverlay 的触摸(MKOverlayRenderer)

    我有一个 MKMapView 可能绘制了数百个多边形 在 iOS7 上将 MKPolygon 和 MKPolygonRenderer 作为一个使用 我需要的是一种对用户触摸其中一个多边形进行操作的方法 例如 它们代表地图上具有一定人口密度的
  • 研究具有标准编码风格的优势

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 Stackoverflow 上有几个问题 关于是否有任何关于什么是最佳编码约定 风格的研究 这
  • 当闭源 CocoaPod 依赖于其他 pod 时,如何为它创建 XCFramework

    我正在寻找创建一个闭源 CocoaPod 根据我的研究 建议似乎是将其作为 XCFramework 分发 source https stackoverflow com a 66459296 1795356 似乎还可以通过在 Podspec
  • AngularJS - POST 后刷新

    在 Angular 中发出 http POST 请求后刷新内容的正确方法是什么 controller js var hudControllers angular module hudControllers hudControllers co
  • Postgres:授予角色/用户对由不同角色/用户创建的未来表的访问权限

    我正在构建一个 Spring Boot 应用程序 Flyway 数据库迁移在应用程序启动时执行 我决定使用两个不同的角色 角色 app 读 写表的权限 序列的权限app模式 和角色 迁移 advanced的权利app 移民模式 Flyway
  • 如何使用 Dropbox API v2 重命名文件

    我想使用 HTTP API 重命名 Dropbox 上的文件 根据新文档 可以移动 但不能重命名 https www dropbox com developers documentation http documentation files
  • 全页水平滚动问题

    整页滚动还有其他替代方案吗 整页滚动的示例 http jscrollpane kelvinluck com fullpage scroll html http jscrollpane kelvinluck com fullpage scro
  • 无法在 M1 Mac 上使用 pip3 安装 psycopg2

    我无法在我的 M1 Mac 上安装 psycopg2 并且我使用了 pip3 当我尝试安装时pip3 install psycopg2输出是这样的 ERROR Command errored out with exit status 1 c
  • 初始化结构体中的默认值

    如果我只需要初始化 C 结构的几个选择值 这是否正确 struct foo foo a true b true bool a bool b bool c bar 我是否正确地假设我最终会得到一个struct名为的项目bar有元素bar a
  • Eclipse、Android:意外无法执行 dex:多个 dex 文件定义

    问题 我无法构建我的项目 当我尝试时 控制台中显示以下标志 2014 09 28 23 49 30 Dex Loader Unable to execute dex Multiple dex files define Landroid su
  • 自定义 NSTableView 单元格的最简单方法是什么?

    我是一名 iOS 开发者 我最近开始了我的Mac项目 但是我发现与UITableViewCell UIView的子类 不同 NSTableView的cell是NSCell 我什至无法在IB中创建它 我想知道是否有一些简单的方法来创建像 NS
  • C# NUnit 参数化 TestCaseSource 值识别

    我在 NUnit 2 6 1 上使用 TestCaseSource 来测试具有不同对象类构造函数参数的相同断言 I mean Test TestCaseSource myConstructorsForMale public void Che
  • python 按时间顺序对 OrderedDict 键进行排序

    我有以下内容OrderedDict from collections import OrderedDict a OrderedDict a 2016 April 1 a 2016 January 2 a 2017 February 3 a
  • api 网关调用 lambda 时事件对象为空

    现在我的 lambda 只是回显事件对象 def lambda handler event context pprint event 我一直在代码中使用事件对象来获取这样的路径event path 当我像这样运行 sam local 在本地