如何查找AWS Step Function的公网IP地址
查找Step Function关联Lambda的公网IP方法
由于Step Function本身不具备独立的公网IP,其访问外部资源的网络流量完全依赖于它调用的Lambda函数(也就是你提到的执行psycopg2连接的那个步骤),所以核心是定位该Lambda的出站公网IP,以下是几种可行方案:
临时添加日志输出IP(最直接)
找到对应的Lambda函数,在其代码中添加一段获取公网IP并打印的逻辑,比如:import requests def lambda_handler(event, context): # 获取当前Lambda的出站公网IP public_ip = requests.get("http://checkip.amazonaws.com").text.strip() print(f"Outbound public IP: {public_ip}") # 原有psycopg2连接逻辑...触发Step Function执行一次,然后去该Lambda的CloudWatch日志流中查找打印的IP地址,这个就是连接RDS时使用的源IP。
通过AWS区域IP范围缩小范围
如果无法修改Lambda代码,可以先确认该Lambda所在的AWS区域,然后获取该区域的公有IP地址段。你可以在AWS控制台的VPC服务中找到Lambda所属的子网,再通过AWS CLI执行aws ec2 describe-address-ranges --filters Name=region,Values=<你的区域> Name=network-border-group,Values=<你的区域>获取对应区域的公有IP范围,将这些IP段添加到RDS的安全组入站规则中。这种方法范围会比单个IP大,但适合无法修改代码的场景。检查CloudWatch日志中的网络记录
查看该Lambda的CloudWatch日志,部分网络相关的日志(比如连接超时、拒绝的错误信息)可能会包含Lambda的出站源IP,直接从中提取即可。
内容的提问来源于stack exchange,提问作者Kaleby Cadorin
相关产品推荐
相关产品推荐

