AppEngine Dev Server上的Google KMS - 记录混乱

Bri*_*unt 3 google-app-engine google-app-engine-python google-cloud-kms

这是一个众所周知的问题:https://issuetracker.google.com/issues/63253097

我对谷歌越来越KMS与App Engine工作的问题,我在上海开一个相关的问题,但副作用的新问题.

也就是说,Google Cloud API发现似乎想要在AppEngine沙箱之外移动许多路径.这本身不是问题,但它使测试和调试非常有问题,因为每次尝试都会被记录,产生数百行,如下所示:

INFO 03 Jul 2017 14:44:51 Sandbox阻止访问文件"/ Users"

INFO 03 Jul 2017 14:44:51如果它是一个静态文件,请检查application_readable: true你的app.yaml 中是否设置了该文件

INFO 03 Jul 2017 14:44:52 Sandbox阻止访问文件"/ usr/lib/Acrobat9/Resource/CMap"

INFO 03 Jul 2017 14:44:52如果是静态文件,请检查application_readable: trueapp.yaml中设置的内容

INFO 03 Jul 2017 14:44:52 Sandbox阻止访问文件"/ usr/lib/Acrobat8/Resource/CMap"

INFO 03 Jul 2017 14:44:52如果是静态文件,请检查application_readable: trueapp.yaml中设置的内容

有没有办法禁用或静音这些请求或日志?

编辑*一个通过增加打印的许多成果traceback.print_stack(),以log_access_check_failstub.py(抱歉,这不是很清晰这里):

测试#1:Sentry.io的Raven导入 pkg_resources

  File "/Users/bmh/testapp/application.py", line 3, in <module>
    from nassau.application import app, sentry
  File "/Users/bmh/testapp/nassau/application.py", line 28, in <module>
    from raven.contrib.flask import Sentry
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/raven/__init__.py", line 16, in <module>
    VERSION = __import__('pkg_resources') \
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3037, in <module>
    @_call_aside
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3021, in _call_aside
    f(*args, **kwargs)
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3050, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 646, in _build_master
    ws = cls()
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 639, in __init__
    self.add_entry(entry)
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 695, in add_entry
    for dist in find_distributions(entry, True):
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2006, in find_on_path
    path_item = _normalize_cached(path_item)
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2217, in _normalize_cached
    _cache[filename] = result = normalize_path(filename)
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2210, in normalize_path
    return os.path.normcase(os.path.realpath(filename))
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/posixpath.py", line 375, in realpath
    path, ok = _joinrealpath('', filename, {})
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/posixpath.py", line 400, in _joinrealpath
    if not islink(newpath):
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/posixpath.py", line 135, in islink
    st = os.lstat(path)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/stubs.py", line 286, in __call__
    log_access_check_fail(path)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/stubs.py", line 51, in log_access_check_fail
    traceback.print_stack()
Run Code Online (Sandbox Code Playgroud)

我删除了对Sentry/Raven的依赖,但堆栈跟踪继续,通过:

测试#2:Flask进口 pkgutil

  File "/Users/bmh/testapp/application.py", line 3, in <module>
    from nassau.application import app
  File "/Users/bmh/testapp/nassau/application.py", line 72, in <module>
    app = Flask('nassau')
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/flask/app.py", line 331, in __init__
    instance_path = self.auto_find_instance_path()
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/flask/app.py", line 622, in auto_find_instance_path
    prefix, package_path = find_package(self.import_name)
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/site-packages/flask/helpers.py", line 661, in find_package
    loader = pkgutil.get_loader(root_mod_name)
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pkgutil.py", line 464, in get_loader
    return find_loader(fullname)
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pkgutil.py", line 475, in find_loader
    loader = importer.find_module(fullname)
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pkgutil.py", line 184, in find_module
    path = [os.path.realpath(self.path)]
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/posixpath.py", line 375, in realpath
    path, ok = _joinrealpath('', filename, {})
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/posixpath.py", line 400, in _joinrealpath
    if not islink(newpath):
  File "/Users/bmh/testapp/python-virtualenv/lib/python2.7/posixpath.py", line 135, in islink
    st = os.lstat(path)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/stubs.py", line 286, in __call__
    log_access_check_fail(path)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/stubs.py", line 51, in log_access_check_fail
    traceback.print_stack()
Run Code Online (Sandbox Code Playgroud)

必须有更好的方法来表示堆栈溢出上的堆栈跟踪:)

小智 6

我是dev_appserver的全职工程师.此日志消息从/google/appengine/tools/devappserver2/python/stubs.py,在方法中报告log_access_check_fail

我们添加了此日志消息,以提醒用户dev_appserver阻止文件访问的行为.

建议的解决方法:dev_appserver.py --log_level警告

--log_level在本地python运行时进程中设置日志级别.log_access_check_fail()设置为INFO,不会被记录.注意,此标志还将阻止应用程序中的其他INFO级别日志记录.

同时,我们正在修复此log_access_check_fail方法.它可能会将log_access_check_fail()日志记录级别降低到DEBUG.

  • 谢谢凯.FWIW,我认为日志访问失败可能是有用的调试信息,所以最好不要完全禁用它们(或者可能选择使用标志启用它们); 一个更好的答案可能是修复发现API(如果可能),以便不在dev_appserver栖息地之外进行检查. (2认同)