node.js - 使用 NodeJS、Rest API 和 Lambda 获取 IP
问题描述
我尝试使用以下方法从传入的 API 请求中检索 IP 地址
这是在 Lambda 函数中使用 API Gateway 的 $context.identity.sourceIp 的简单演示。
这是我用于发送到 lambda 的集成过程的 API 映射模板:
{
"sourceIP" : "$context.identity.sourceIp"
}
这就是我使用 NodeJS 构建 lambda 函数的方式
'use strict';
console.log('Loading function');
exports.handler = (event, context, callback) => {
console.log('SourceIP =', event.identity.sourceIp);
callback(null, event.identity.sourceIp);
};
我一直在 event.identity.sourceIp 部分中遇到 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)"
]
}
我认为 event.identity.sourceIp 是使用错误的数组,我可能应该使用 event.sourceIp 但我看到在线人员在代码中使用身份。但是,当使用 event.sourceIp 时,我得到一个空响应。这看起来像以下
null,在我得到的日志下
START RequestId: 4fe70699-6e2a-411a-b7a5-684d62d4051b Version: $LATEST
2020-11-23T01:50:40.759Z 4fe70699-6e2a-411a-b7a5-684d62d4051b INFO SourceIP = undefined
END RequestId: 4fe70699-6e2a-411a-b7a5-684d62d4051b
REPORT RequestId: 4fe70699-6e2a-411a-b7a5-684d62d4051b Duration: 19.15 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 64 MB Init Duration: 143.93 ms
我需要知道以下内容:event.identity.sourcecIp 还好吗?我应该改用 event.sourceIp 吗?
另外为什么我使用 event.sourceIP 得到空响应,在日志中我看到 INFO SourceIP = undefined????
解决方案
推荐阅读
- python - 即使没有缺失或重复值,时间序列频率也设置为无
- python - 无法在 pyrebase 中传递变量
- brython - 在 Brython 中导入 python 模块
- c# - 将外部 C# 脚本作为源添加到 PowerShell 脚本
- python - 如何在 Python 中将 Azure Blob 文件 CSV 转换为 Excel
- android - 我的应用程序可以完美展示广告,但 admob 应用程序页面上没有任何点击次数/展示次数/收入
- python - solidity - brownie compile - 状态 404 从 GitHub 获取包版本
- flutter - 是否可以根据布尔值添加或删除列表?
- python - Python数据类,default_factory包含列表的默认字典列表的正确方法?
- c++ - C++ 模块文件系统和 iostream 崩溃 g++