AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

使用lambda如何获取客户端ip?

0

【以下的问题经过翻译处理】 我当前在构建1个类似于 http://checkip.amazonaws.com/ 的app。 当前我找到的一个 https://stackoverflow.com/questions/33062097/how-can-i-retrieve-a-users-public-ip-address-via-amazon-api-gateway-lambda-n

当我将此用于lambda函数时-

'use strict'; console.log('Loading function'); exports.handler = (event, context, callback) => { console.log('SourceIP =', event.identity.sourceIP); callback(null, event.identity.sourceIP); };

和用于映射模板的-

{ "sourceIP" : "$context.identity.sourceIp" }

我得到以下错误 { "errorType": "TypeError", "errorMessage": "Cannot read property 'sourceIP' of undefined", "trace": [ "TypeError: Cannot read property 'sourceIP' of undefined", " at Runtime.exports.handler (/var/task/index.js:4:46)", " at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)" ] }

1개 답변
0

【以下的回答经过翻译处理】 这取决于你正在使用哪个API。如果你正在使用HTTP API,源IP位于event.requestContext.http.sourceIPevent.headers.x-forwarded-for。如果你正在使用REST API,它将在event.headers.X-Forwarded-Forevent.requestContext.identity.sourceIp中。你当前获取的是event.identity.sourceIP

注意,在这两种情况下,你不需要使用映射模板,只需从Lambda函数返回一个body。如果你正在使用REST API,你应该可以通过使用模拟集成和映射模板来实现。

profile picture
전문가
답변함 일 년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠