Как использовать сегментированный URL в AWS API Gateway? - PullRequest
0 голосов
/ 25 августа 2018

У меня есть лямбда-функция, которая доступна через шлюз API. Я могу обработать все запросы POST и GET, отправленные в конечную точку API (https://XXXXXXX.execute-api.us-east-1.amazonaws.com/default/myapi) внутри моей лямбды, но мне нужно использовать некоторые сегменты в конце моего URL, когда я использую запросы PUT.

Мой код Python для вызова API находится здесь, и он работает правильно:

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 - динамическое число), чтобы вернуть информацию для специального пользователя.

Подскажите, пожалуйста, как я могу использовать сегментированный URL в моем AWS API Gateway?

1 Ответ

0 голосов
/ 25 августа 2018

Термин, которым вы пользуетесь сегментированным URL, мог вызвать замешательство. Это называется параметрами пути с AWS. Существует несколько способов сделать это. ЛЮБОЙ + интеграция является самой простой в обращении.

Интеграция с ЛЮБОЙ + интеграцией в вашу лямбду, и вы готовы к работе. Все параметры пути будут доставлены на вашу лямбду.

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

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...