2016-12-13 3 views
0

Я использую AWS API Gateway в качестве http-прокси для моего приложения api для отдыха. Дело в том, что я не могу найти способ получить IP-адрес клиента или передать его в свое приложение из шлюза api. Единственный способ, которым я видел, - использовать функцию лямбда, но я не могу ее использовать, потому что это должна быть интеграция с http.AWS Api Gateway - клиент интеграции Http IP

Есть ли другой способ сделать это?

ответ

1

Просто настройте картографирование полезной нагрузки запроса. Вам нужно $ context.identity.sourceIp. Согласно документации:

$ context.identity.sourceIp

Источник IP-адрес соединения TCP, делающего запрос API Gateway.

документация с примерами доступна на http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

+0

я решил добавить его к своему телу с помощью шаблона отображения , Есть ли способ просто добавить свойство к телу? –

+0

Пример добавления sourceIp к телу с использованием шаблона сопоставления см. На странице https://forums.aws.amazon.com/thread.jspa?threadID=238081. –

0

Вы можете сделать это в шаблоне отображения вашего ответа интеграции. Вызовите $ context.identity.sourceIp, чтобы получить sourceIp.

Если вы уже используете шаблон сопоставления, вы можете просто добавить его в любую удобную точку. Если вы не используете шаблон отображения и просто нужно добавить SourceIP к входящему телу запроса JSON, добавить шаблон отображения следующим образом:

#set($allParams = $input.path('$')) 
#set($discard=$allParams.put('sourceIp', $context.identity.sourceIp)) 
$input.json('$')) 
Смежные вопросы