如何从 Lambda 捕获 REST API 网关路径参数

问题描述 投票:0回答:1

在这里提问的理由:我已经尝试让这个非常简单的事情工作好几天了,即使 POST API 仅消耗有效负载在几分钟内就可以工作。 Amazon 自己的文档已经过时,Youtube 上的许多教程都显示与 AWS UI 现在不同的选项。我也尝试查看thisthis,但他们要么需要更复杂的东西,要么答案已经过时了。

问题:我有一个简单的用例,需要创建一个API

GET URL/{id}

由 python lambda 函数支持。但 lambda 函数没有获取路径参数。

我怎么知道它不起作用: 在我的 python lambda 函数中,我转储事件 json,它是空的 {}

def lambda_handler(event, context):
    current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    table.put_item(
        Item={
            "timevalue": current_time,
            "eventvalue": json.dumps(event)
        }

我根据AWS文档尝试过

  1. https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-custom-integrations.html

这没有指定如何获取函数调用操作的 ARN,也没有指定如何设置它。这是整个文件的要点,但缺失了。如果没有它,我就不会收到任何事件传递给我的函数。

  1. 以下https://repost.aws/knowledge-center/api-gateway-lambda-http-endpoint,当像这样调用时,我没有在事件中传递任何参数

    “获取 URL/{id}”。

尽管如此,必须指出的是,这个“知识中心”已经非常过时了,并且需要大量的猜测来遵循它。 “创建资源”之前没有可单击的“操作”。没有“新建子资源”窗格,如果我选择“创建资源”而不是它,则没有“配置为代理资源”。

amazon-web-services aws-api-gateway
1个回答
0
投票
关于变体 2 (

https://repost.aws/knowledge-center/api-gateway-lambda-http-endpoint)。

您是否已经在此处检查了映射模板的可能参数

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html?有一个变量$context.path。您应该能够使用它将路径映射到 lambda 的输入参数中。

© www.soinside.com 2019 - 2024. All rights reserved.