我們目前正在使用捆綁服務 ( https://cloud.google.com/blog/products/serverless/support-for-app-engine-services-in-second-generation-)將我們的 App Engine 從 Java 8 遷移到 Java 11運行時)。
我們做到了該應用程式似乎按預期運行 - BE、FE 和 Datastore 似乎都在我們的暫存 GCP 專案中作業。
但是,以下錯誤每 10 秒就會出現在我們的日志中:
Failed to query GCE metadata service
進而
java.io.IOException: com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call urlfetch.Fetch in a thread that is neither the original request thread nor a thread created by ThreadManager
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:70)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.fetchResponse(URLFetchServiceStreamHandler.java:609)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.getInputStream(URLFetchServiceStreamHandler.java:488)
at com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.readResponse(Unknown Source)
at com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.queryMetadataAttribute(Unknown Source)
at com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.getProjectId(Unknown Source)
at com.google.devtools.cdbg.debuglets.java.GcpHubClient.registerDebuggee(Unknown Source)
Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call urlfetch.Fetch in a thread that is neither the original request thread nor a thread created by ThreadManager
at com.google.apphosting.api.ApiProxy$CallNotFoundException.foreignThread(ApiProxy.java:844)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:117)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:54)
... 6 more
編輯:云除錯器說“除錯器找不到應用程式的除錯目標”。不過,這些版本仍然依賴 Java 8 作業,那么遷移正確設定除錯器缺少什么額外步驟?由于我們使用的是 App Engine 標準環境,因此應默認啟用 ( https://cloud.google.com/debugger/docs/setup/java#gae-standard )。
編輯 2:看起來這可能是 Google Cloud Debugger 錯誤:https : //github.com/GoogleCloudPlatform/cloud-debug-java/issues/18
uj5u.com熱心網友回復:
根據有關發出 HTTP 請求的App Engine 檔案,如果您使用 URL Fetch,它將導致對云客戶端庫(包括 Google Cloud Debugger Client for Java)的請求失敗。
由于我們正在使用捆綁服務,我們仍在使用appengine-web.xml檔案。
我們在那里有以下行:
<url-stream-handler>urlfetch</url-stream-handler>
洗掉該行為我們解決了問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334368.html
標籤:谷歌应用引擎 谷歌云平台 java-11 谷歌云调试器
上一篇:從CloudFunction到AppEngine的請求回傳錯誤401
下一篇:從半小時到每小時的資料
