如何在AWS API Gateway中使用分段URL?

时间:2018-08-25 12:44:27

标签: amazon-web-services aws-lambda aws-api-gateway

我有一个Lambda函数,可以通过API网关访问。我可以处理Lambda内对API端点(https://XXXXXXX.execute-api.us-east-1.amazonaws.com/default/myapi)的所有POST和GET提交的请求,但是在使用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 = '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?

1 个答案:

答案 0 :(得分:1)

您使用分段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-parameters-to-call-lambda-function

祝你好运。