首页 > 解决方案 > 如何在 AWS API Gateway 中使用分段 URL?

问题描述

我有一个 API 网关可以访问的 Lambda 函数。我可以在我的 Lambda 中处理所有向 API 端点 ( ) 提交的 POST 和 GET 请求https://XXXXXXX.execute-api.us-east-1.amazonaws.com/default/myapi,但是当我使用 PUT 请求时,我需要在我的 URL 末尾使用一些段。

我调用 API 的 Python 代码在这里,它工作正常:

import requests
import json

url = 'https://XXXXXXX.execute-api.us-east-1.amazonaws.com/default/myapi'
token = "my token"

data = {
        "first_name": "Reza",
        "birthday": "1986-09-12"
        }

headers = {"Content-Type" : "application/json", "x-api-key":"MY_API_KEY"}
response = requests.put(url, data=json.dumps(data), headers=headers)
print(response.text)

但是,如果我users像这样将段添加到 URL 的末尾:

url = 'https://XXXXXXX.execute-api.us-east-1.amazonaws.com/default/myapi/users'

它会显示这个错误:

{"message":"Missing Authentication Token"}

我需要添加一些静态段,例如users返回所有用户的列表和一些动态段,例如users/USER_ID(何时USER_ID是动态数字)以返回特殊用户的信息。

你能指导我如何在我的 AWS API Gateway 中使用分段 URL 吗?

标签: amazon-web-servicesaws-lambdaaws-api-gateway

解决方案


您使用分段 URL 的术语可能会引起您的困惑。它在 AWS 中称为路径参数。有不止一种方法可以做到这一点。ANY+ 集成是最容易处理的。

将 ANY+ 集成到您的 lambda 中,您就可以开始了。所有路径参数都将传递给您的 lambda。

http://www.1strategy.com/blog/2017/06/06/how-to-use-amazon-api-gateway-proxy/

附加路径参数文档,

https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-lambda.html#api-as-lambda-proxy-expose-get-method-with-path-参数调用 lambda 函数

祝你好运。


推荐阅读