我已經在 Google Cloud Run 上部署了一個 Quarkus 應用程式。它依賴于 MySQL,因此在 Cloud SQL 上啟動了一個實體。
我部署程序的下一步是添加 keycloak。從我讀過的最好的選擇似乎是谷歌應用引擎。
這個問題的批準答案讓我對需要做什么有一些很好的了解......主要是。我所做的是:
- 在本地,我在主專案中創建了一個子目錄。
- 在該目錄中我增加了
app.yaml和Dockerfile(描述這里的實體)。 - 在那里我執行了上述兩個命令:
gcloud init和gcloud app deploy。
我對這個設定存有疑慮,最終我得到了錯誤的支持:
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: The first service (module) you upload to a new application must be the 'default' service (module). Please upload a version of the 'default' service (module) before uploading a version for the 'morph-keycloak-service' service (module).
我知道我的設定破壞了專案的整體結構,但我不確定如何將這兩個應用程式與正確的服務混合使用。我知道 keycloak 是一個有狀態的應用程式,因此不能在 Cloud Run 上運行(順便說一下,keycloak 的目的是使用與應用程式共享的相同資料庫實體)。
那么有沒有人知道更明智的設定,或者我可以在我的里面移動什么來修復它?
uj5u.com熱心網友回復:
簡而言之:
答案實際上是閱讀錯誤訊息(感謝@gaefan) - 關于錯誤本身,它已經解釋得夠多了。所以,我只是注釋掉service: my-keycloak-service線的app.yaml(因而留下gcloud隱含其標記為默認的一個),并部署繼續。
最終,keycloak 沒有連接到資料庫,但如果我不設法調整可能會成為不同問題的主題的配置。
關于專案結構和功能:
首先,感謝@NoCommandLine 和@guillaume-blaquiere 的輸入!
@NoCommandLine Cloud Run 上的應用程式是一種啟用了無頭 REST API 的后端。大多數 API 呼叫都由 keycloack 保護。部署程序的下一步是將現有的 UI (React) 客戶端移植到 Firebase 托管(或其他合適的服務 - 我仍然不完全確定哪種方法最好),以便用戶使用這個客戶端正確,他們必須首先通過keycloak進行SSO。
我對 GCP 還是很陌生,可用選項的數量和變體對我來說仍然是壓倒性的 - 人們必須熟悉細微差別,但我想這需要時間。所以我仍在就如何調整我的專案結構以更好地適應服務堆疊提出建議。謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/379820.html
上一篇:java程式的索引越界錯誤
下一篇:持續運行服務-Delphi
