哪个ip地址触发了我的HTTP云功能?



我想看看哪个IP地址触发了我的HTTP触发云功能。

这是我的python云函数的(演示代码):
def hello_world(request):
request_json = request.get_json()
if request.args and 'message' in request.args:
return request.args.get('message')
elif request_json and 'message' in request_json:
return request_json['message']
else:
return f'Hello World!'

由于GCP上的Python云函数使用Flask,您可以在代码中添加以下内容:

# get ip address for logging purposes 
if request.environ.get('HTTP_X_FORWARDED_FOR') is None:
print(f"IP address: {request.environ['REMOTE_ADDR']}")
else:
print(f"IP address: {request.environ['HTTP_X_FORWARDED_FOR']}") # if behind a proxy

参见:使用Flask for Python获取访问者的IP地址

Print语句被发送到Cloud Logging,因此ip地址将在日志记录中可见。
为了更快地找到你的ip地址日志条目,你可以在云日志中过滤:
resource.labels.function_name="name_of_your_cloud_function"

以上答案适用于第一代云函数。
当使用第二代云函数时,不需要添加特定的代码来检查函数调用者的ip地址。
你可以检查云记录和过滤器:
resource.type="cloud_run_revision"

相关内容

  • 没有找到相关文章