首页 > 其他分享 >Spring Cloud GCP 适配器参考

Spring Cloud GCP 适配器参考

时间:2022-12-01 10:05:26浏览次数:43  
标签:function Functions 函数 Spring 适配器 gcp public Cloud

Spring Cloud GCP 适配器参考_spring

谷歌云函数

Google Cloud Functions 适配器使 Spring Cloud Function 应用程序能够在Google Cloud Functions无服务器平台上运行。 您可以使用开源的 Google Functions Framework for Java或 GCP 在本地运行该函数。

项目依赖关系

首先将依赖项添加到项目中。​​spring-cloud-function-adapter-gcp​

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-adapter-gcp</artifactId>
</dependency>

...
</dependencies>

此外,添加 which,这将构建要部署的函数的 JAR。​​spring-boot-maven-plugin​

请注意,我们还引用了 的依赖项。这是必要的,因为它会修改插件,以正确的JAR格式打包您的函数,以便在Google Cloud Functions上部署。​​spring-cloud-function-adapter-gcp​​​​spring-boot-maven-plugin​

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<outputDirectory>target/deploy</outputDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-adapter-gcp</artifactId>
</dependency>
</dependencies>
</plugin>

最后,添加作为 Google Functions Framework for Java 的一部分提供的 Maven 插件。 这允许您通过以下方式在本地测试函数。​​mvn function:run​

函数目标应始终设置为;这是一个适配器类,充当从 Google Cloud Functions 平台进入 Spring Cloud Function 的入口点。​​org.springframework.cloud.function.adapter.gcp.GcfJarLauncher​

<plugin>
<groupId>com.google.cloud.functions</groupId>
<artifactId>function-maven-plugin</artifactId>
<version>0.9.1</version>
<configuration>
<functionTarget>org.springframework.cloud.function.adapter.gcp.GcfJarLauncher</functionTarget>
<port>8080</port>
</configuration>
</plugin>

可以在Spring Cloud Functions GCP示例中找到工作的完整示例。pom.xml

HTTP 函数

Google Cloud Functions 支持部署 HTTPFunctions,即由 HTTP 请求调用的函数。以下部分描述了将 Spring 云函数部署为 HTTP 函数的说明。

开始

让我们从一个简单的 Spring Cloud Function 示例开始:

@SpringBootApplication
public class CloudFunctionMain {

public static void main(String[] args) {
SpringApplication.run(CloudFunctionMain.class, args);
}

@Bean
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
}

在中指定配置主类。​​resources/META-INF/MANIFEST.MF​

Main-Class: com.example.CloudFunctionMain

然后在本地运行该函数。 这是由项目依赖项部分中描述的 Google Cloud Functions 提供的。​​function-maven-plugin​

mvn function:run

调用 HTTP 函数:

curl http://localhost:8080/ -d "hello"
部署到基仕伯

首先打包应用程序。

mvn package

如果您添加了上面定义的自定义插件,您应该会看到生成的 JAR 目录。 此 JAR 的格式正确,可以部署到 Google Cloud Functions。​​spring-boot-maven-plugin​​​​target/deploy​

接下来,请确保您已安装云开发工具包 CLI。

从项目基目录中运行以下命令进行部署。

gcloud functions deploy function-sample-gcp-http \
--entry-point org.springframework.cloud.function.adapter.gcp.GcfJarLauncher \
--runtime java11 \
--trigger-http \
--source target/deploy \
--memory 512MB

调用 HTTP 函数:

curl https://REGION-PROJECT_ID.cloudfunctions.net/function-sample-gcp-http -d "hello"

后台函数

Google Cloud Functions 还支持部署后台函数,这些后台函数是间接调用的,以响应事件,例如有关 CloudPub/Sub主题的消息、Cloud Storage存储桶中的更改或Firebase事件。

还允许将函数部署为后台函数。spring-cloud-function-adapter-gcp

以下部分介绍了编写云发布/订阅主题后台函数的过程。 但是,有许多不同的事件类型可以触发后台函数执行,此处不讨论;这些在后台函数触发器文档中进行了描述。

开始

让我们从一个简单的 Spring Cloud 函数开始,它将作为 GCF 后台函数运行:

@SpringBootApplication
public class BackgroundFunctionMain {

public static void main(String[] args) {
SpringApplication.run(BackgroundFunctionMain.class, args);
}

@Bean
public Consumer<PubSubMessage> pubSubFunction() {
return message -> System.out.println("The Pub/Sub message data: " + message.getData());
}
}

此外,在项目中创建类具有以下定义。 此类表示 Pub/Sub 事件结构,该结构在 Pub/Sub 主题事件上传递给函数。​​PubSubMessage​

public class PubSubMessage {

private String data;

private Map<String, String> attributes;

private String messageId;

private String publishTime;

public String getData() {
return data;
}

public void setData(String data) {
this.data = data;
}

public Map<String, String> getAttributes() {
return attributes;
}

public void setAttributes(Map<String, String> attributes) {
this.attributes = attributes;
}

public String getMessageId() {
return messageId;
}

public void setMessageId(String messageId) {
this.messageId = messageId;
}

public String getPublishTime() {
return publishTime;
}

public void setPublishTime(String publishTime) {
this.publishTime = publishTime;
}

}

在中指定配置主类。​​resources/META-INF/MANIFEST.MF​

Main-Class: com.example.BackgroundFunctionMain

然后在本地运行该函数。 这是由项目依赖项部分中描述的 Google Cloud Functions 提供的。​​function-maven-plugin​

mvn function:run

调用 HTTP 函数:

curl localhost:8080 -H "Content-Type: application/json" -d '{"data":"hello"}'

通过查看日志验证是否已调用该函数。

部署到基仕伯

要将后台函数部署到 GCP,请先打包应用程序。

mvn package

如果您添加了上面定义的自定义插件,您应该会看到生成的 JAR 目录。 此 JAR 的格式正确,可以部署到 Google Cloud Functions。​​spring-boot-maven-plugin​​​​target/deploy​

接下来,请确保您已安装云开发工具包 CLI。

从项目基目录中运行以下命令进行部署。

gcloud functions deploy function-sample-gcp-background \
--entry-point org.springframework.cloud.function.adapter.gcp.GcfJarLauncher \
--runtime java11 \
--trigger-topic my-functions-topic \
--source target/deploy \
--memory 512MB

Google Cloud Function 现在会在每次将消息发布到指定的主题时调用该函数。​​--trigger-topic​

有关测试和验证后台函数的演练,请参阅运行GCF 后台函数示例的说明。

示例函数

该项目提供以下示例函数作为参考:

  • 函数-sample-gcp-http是一个HTTP函数,您可以在本地测试并尝试部署。
  • 函数样本 gcp-background显示了一个后台函数的示例,该函数由发布到指定 Pub/Sub 主题的消息触发。

标签:function,Functions,函数,Spring,适配器,gcp,public,Cloud
From: https://blog.51cto.com/u_15326439/5901174

相关文章

  • Spring Boot实现任意位置的properties及yml文件内容配置与获取
    〇、参考资料1、SpringBoot中文乱码问题解决方案汇总https://blog.51cto.com/u_15236724/53728242、springboot读取自定义配置properties文件★https://www.yisu.co......
  • SpringBoot项目出现404错误--且控制台无任何信息
    直接上链接:(138条消息)SpringBoot项目出现404错误_露天赏雪的博客-CSDN博客_springboot404我自己的错误原因:有启动类的包,也有自己的包,但包不在一起,所以根本访问不到自己......
  • BoCloud博云携手京东云,共筑PaaS新生态
    7月13日,京东云峰会在北京圆满落下帷幕,会上正式发布了PaaS生态联盟“云筑计划”,BoCloud博云作为首批成员单位正式加入,成为其技术合作伙伴。 ▲“云筑计划”启动仪式据了解,Pa......
  • BoCloud博云入选2018-2019中国PaaS市场研究报告
    近日,中国权威ICT研究咨询机构计世资讯发布了《2018~2019年中国PaaS市场现状与发展趋势研究报告》。报告显示,在2018年中国PaaS厂商市场份额中,BoCloud博云占比5.3%,位居前十,在......
  • 探索开源创新之路,BoCloud博云在2018红帽论坛等你
    11月6日,每年一度的开源界盛会“红帽论坛”将在将在北京四季酒店盛大举行,本次2018红帽论坛以“IdeasWorthExploring开源创建,上下求索”为主题,聚焦数字化转型热点,汇聚众多的......
  • BoCloud博云“秋收”季
     天气转凉,小雪将至,趁冬天未到,今天小编带大家看看博云秋天的收获,一起抓住秋天的尾巴。  以腾云之力,助数字经济发展11月19日,江苏省工信厅公布了2019年度“腾云驾数”转型升......
  • BoCloud博云荣获苏州工业园区2019年度“科技研发突出奖”
    3月6日,苏州工业园区召开“建设世界一流高科技园区,打造新时代改革开放新高地”誓师大会。本次会议对2019年度金鸡湖人才、科技工作先进企业等个人与单位进行了表彰。BoCloud......
  • BoCloud博云入选2018中国IT生态新生力量100
    7月26日,每年一度的中国方案商500强(VAR500)榜单在2018中国IT生态大会上发布。该榜单是中国企业IT生态领域的权威调查评选,被认为是中国IT生态发展的风向标。BoCloud博云作为国......
  • BoCloud博云脱颖而出,荣获可信云容器技术创新奖
    2018年8月14日上午,中国信息通信研究院、中国通信标准化协会主办的“2018可信云大会”在北京国际会议中心拉开帷幕。作为一年一度的云计算盛会,本次大会也发布了最新通过......
  • vuecli3项目集成到springboot
    路径配置当springboot中设置项目访问路径server.servlet.context-path=/demovue项目中vue.config.js需配置publicPathmodule.exports={transpileDependenc......