我有一个Spring Boot应用程序,我们将其作为lambda函数部署在AWS上。有没有类似的方法来部署斯普林特引导应用程序作为GCP云功能?
如果这个问题很天真,请原谅,但我从GCP文档中找不到任何直接的方法。
是的,有一种方法可以将Spring Boot应用程序部署为GCP云函数。
如本文所述,2020年5月26日:
谷歌云Java框架团队与Spring团队合作引入Spring Cloud GCP项目,轻松帮助Spring Boot用户利用谷歌云服务。最近,该团队与Spring Cloud Function团队将为您带来Spring Cloud Function GCP适配器。函数可以只是一个普通的Java函数,因此您可以在Cloud Functions上运行Spring Cloud Function应用程序必须修改代码才能在谷歌云上运行。
@Bean public Function<String, String> uppercase() { return value -> value.toUpperCase(); }
请看一下这个GitHub存储库,因为它包含完整的示例。
我建议您看看Cloud Run。如果您的Spring Boot应用程序已经独立启动(带有Spring Boot启动器(,那么Cloud Run打包就很容易了。你可以在我的回购中找到例子,或者通过这篇文章(和其他文章(
我工作过的大多数地方都会构建/编译他们的spring-boot应用程序的胖jar,将其放入docker容器中(创建一个Dockerfile,然后构建映像(,然后以映像为基础部署容器1或多次(并为设置的许多实例在其前面设置一个负载均衡器(。
今天我们有kubernetes/ansible等。要么选择你的毒药,要么放弃。。这对你来说是最有效的,但这些技术可能会阻碍你,也可能会帮助你,这取决于你的业务规模。
为了在Google App Engine上部署我的Spring Boot应用程序,我做了以下操作:
添加了以下maven插件:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.2.0</version>
<configuration>
<version>1</version>
<projectId>levelupfin-1fe89</projectId>
</configuration>
</plugin>
创建了以下文件:src/main/appengine/app.yaml
runtime: java11
instance_class: F1
运行以下命令:
# To deploy to app engine
mvn appengine:deploy
# To see your app
gcloud app browse
我从下面的代码实验室得到了很多信息。