这是我的第一个问题,所以我会尽力做好。
我的团队使用几个常见的类(使用maven来管理依赖项)部署多个java云函数(gcp)。现在,这些类在每个函数中都是重复的,并且必须在每次代码编辑时到处更新。每个云功能都是从源代码部署的。为了避免重复这些类,我将它们打包在一个jar中,在本地一切都运行良好。我在每个云函数pom文件中添加了这个jar作为本地依赖项,并试图通过构建一个包含所有依赖项的jar并在 --source
选择 gcloud deploy
. 这会导致jar上传出现超时错误。
错误跟踪:
DEBUG: Starting new HTTPS connection (1): storage.googleapis.com:443
DEBUG: Caught socket error, retrying: ('Connection aborted.', timeout('The write operation timed out',))
到目前为止,我尝试的是:
使用设置更高的部署超时 gcloud config set app/cloud_build_timeout 10000
但这似乎不适用于上传步骤,因为它总是在几分钟后失败。
将我的本地依赖项上载到私有nexus存储库,以便像以前一样从源代码部署我的函数,但在我运行时,由于一个错误,拉操作失败 mvn package
我也没有找到任何解决办法: WagonTransporterFactory: Unsupported transport protocol
详细错误:
[ERROR] Failed to execute goal on project get-content: Could not resolve dependencies for project project:cf:jar:1.0: Failed to collect dependencies at project:pipeline:jar:0.0.1: Failed to read artifact descriptor for project:pipeline:jar:0.0.1: Could not transfer artifact project:pipeline:pom:0.0.1 from/to project-nexus (XXX): Cannot access XXX with type default using the available connector factories: BasicRepositoryConnectorFactory: Cannot access XXX using the registered transporter factories: WagonTransporterFactory: Unsupported transport protocol -> [Help 1]
我认为这是因为我的jar依赖项太大,无法上传,因为我首先错误地部署了jar而没有依赖项(部署成功,但在执行过程中缺少类定义)。我的问题是,如何使用一个本地/私有依赖项部署云功能?
注:
我无法将依赖项上载到公共maven存储库
每个云函数还依赖于公共maven依赖项,这些依赖项似乎太大,无法打包到单个jar中进行部署
暂无答案!
目前还没有任何答案,快来回答吧!