You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Object Lambda访问点的Lambda函数中能否获取调用方的IP地址?

针对S3 Object Lambda访问点关联Lambda函数获取调用方IP的问题解答

可以直接在Lambda函数内部获取调用方IP,相关信息默认包含在Object Lambda访问点触发函数时传入的事件参数中,无需额外配置权限。

具体取值方法

  • 调用方的公网IP默认存放在事件对象的requestContext.identity.sourceIp路径下,不同运行时仅取值语法有差异,路径规则完全一致。
  • 示例(Python运行时):
def lambda_handler(event, context):
    # 直接从事件中读取调用方IP
    caller_ip = event['requestContext']['identity']['sourceIp']
    # 后续可将该字段写入日志或审计系统
    print(f"访问者IP: {caller_ip}, 访问对象: {event['getObjectContext']['inputS3Url']}")
    # 剩余业务逻辑...

特殊场景说明

如果请求是通过CDN、代理服务或企业内网网关转发至Object Lambda访问点,上述取到的IP为转发节点的IP,如需获取最终客户端真实IP,可从事件的headers字段中读取X-Forwarded-For头解析:

# 解析X-Forwarded-For头获取真实客户端IP
forwarded_for = event['headers'].get('x-forwarded-for', '')
if forwarded_for:
    real_client_ip = forwarded_for.split(',')[0].strip()

内容的提问来源于stack exchange,提问作者Adithya Sama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:33:03