My Node.js API服务托管在运行在标准环境中的谷歌云应用引擎上。我已经完成了所有步骤,但调试代理正在抛出以下消息:
@谷歌云/调试代理无法重新注册debuggee xxx后端:错误:{处的文件不存在,或者它不是文件。ENOENT:没有这样的文件或目录,lstat'/workspace/{'
我在app.ts文件的顶部有以下代码:require('@google cloud/debug agent'(.start((;
我的Node.js版本是:14.17.0
更新包并再次安装后,错误为:
Error: The file at { does not exist, or it is not a file. ENOENT: no such file or directory, lstat '/workspace/{' at Object.realpathSync (fs.js:1796:7) at GoogleAuth._getApplicationCredentialsFromFilePath (/workspace/node_modules/google-auth-library/build/src/auth/googleauth.js:263:27) at GoogleAuth._tryGetApplicationCredentialsFromEnvironmentVariable (/workspace/node_modules/google-auth-library/build/src/auth/googleauth.js:206:25) at GoogleAuth.getApplicationDefaultAsync (/workspace/node_modules/google-auth-library/build/src/auth/googleauth.js:136:24) at GoogleAuth.getClient (/workspace/node_modules/google-auth-library/build/src/auth/googleauth.js:551:28) at GrpcClient._getCredentials (/workspace/node_modules/@google-cloud/logging/node_modules/google-gax/build/src/grpc.js:145:40) at GrpcClient.createStub (/workspace/node_modules/@google-cloud/logging/node_modules/google-gax/build/src/grpc.js:308:34) at processTicksAndRejections (internal/process/task_queues.js:95:5)
环境变量GOOGLE_APPLICATION_CREDENTIALS用于为应用程序代码提供身份验证凭据。
如果在Google云平台上运行的实例上启用了Stackdriver Debugger API访问范围,则Stackdriver Debugger Agent应在不手动提供身份验证凭据的情况下工作。对于Google应用程序引擎实例,如果为您的项目启用了调试器API(这是默认设置(,则这是自动的。如果您在其他地方运行,如本地、本地或其他云提供商,则需要手动提供凭据。有关更多信息,请参阅文档。
您将环境变量GOOGLE_APPLICATION_CREDENTIALS设置为文件"{",这就是您收到错误的原因。
看起来你正在谷歌云平台上运行代码,这就是你的代码即使在删除env变量GOOGLE_APPLICATION_CREDENTIALS。
好的,所以我通过尝试一些东西得到了答案。基本上,我的秘密中有GOOGLE_APPLICATION_CREDENTIALS。我的应用程序部署在GAE中,所以我不需要凭据。我以前使用过另一个托管应用程序,所以我有它在我的秘密。一旦我删除了那个秘密,它就开始工作了。
但是为什么会出现这种错误呢?凭据是正确的,所以它无论如何都应该工作,对吧?