开发者社区> IT枫斗者> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

你真的会在函数计算FC上部署springboot云上博客吗

简介: Serverless中文名称为无服务器模式的一种云原生开发模型,可以让程序员专注于构建整个应用逻辑和运行程序,而不需要进行服务器的操心。这一部分可以理解成这样,程序员减少了不必要的工作,然后将服务器外包给各个云开发商,比如说我们现在用的众多云(阿里云微软云、亚马逊和Google云服务等)开发人员可以通过将产品开发的打包到容器当中然后进行部署即可。
+关注继续查看

Serverless中文名称为无服务器模式的一种云原生开发模型,可以让程序员专注于构建整个应用逻辑和运行程序,而不需要进行服务器的操心。这一部分可以理解成这样,程序员减少了不必要的工作,然后将服务器外包给各个云开发商,比如说我们现在用的众多云(阿里云微软云、亚马逊和Google云服务等)开发人员可以通过将产品开发的打包到容器当中然后进行部署即可。

无服务器框架的特点有点像是节能电梯,用的时候启动,不用的时候就休息,也就是通过这种流量的方式进行计费。值得一提的这种外包的无框架服务,涵盖了负载平衡、安全补丁、容量管理、扩展、日志和监控等任务。我们现在大多采用的是功能即服务的一种驱动计算模式,所有的东西只需要程序员将编写逻辑,部署到云平台管理的容器中然后按需执行,这部分最大的特点就是让客户(程序员)有更大的权限实现应用的自定义。

阿里云函数计算是什么?

很多人看到这个问题时,尤其是一些新人,对他们来说都是大问题。函数计算是事件驱动的全托管计算服务。这里和传统最大的区别之一就是不需要任何基础设施,只需要一个可以上网的笔记本,不需要复杂昂贵的本地设备客户端设备。我们可以直接将本地编写的代码上传到云端,通过函数计算可以快速使用阿里云服务完成应用场景的快速搭建。

流程:

整个工作流程基本上是通过开发者将编写的应用按照桉树计算支持的开发语言,通过函数控制台或者Serverless Devs上传,通过事件触发和函数计算调用API进行出发。在此过程执行期间,函数计算根据用户的需求,进行自动扩容,整个过程公开透明。

创建服务的整个流程:

现在有体验活动,我们可以免费体验整个流程,整个的规格达到了40GB/秒,大家如果感兴趣可以去阿里云社区进行体验。链接的话放在这里:

https://developer.aliyun.com/topic/serverless2022

image

进入这个界面点击免费开通实现千万产品免费订购即可

image

创建服务的整个流程其实比较简单,主要通过5个步骤即可完成,具体的操作步骤如下:

1.打开后台的函数计算FC点击左侧任务栏中的服务即函数或者创建服务

image

2.点击创建服务

image

我们可以根据名称和描述正常填写内容来创建服务内容。值得注意的是,当您选择打开日志功能和链路跟踪功能时,这里的一切都将被获取和收集。在高级选项中,我们可以选择服务角色,默认状态是阿里云服务RAM角色role收集你的资源。因为是首个应用,所有一切都没有开通,所以会提示日志服务还没有开通,我们立即开通即可。

image

image

image

这里的日志服务可以通过以下链接进行查看:

https://sls.console.aliyun.com/lognext/profile

image

然后我们在进一步及逆行函数计算FC创建过程中,需要我们再次授权,就可完成一个服务的创建

image

image

在应用创建中我们可以进行选择其中的一个进行创建:

image

在创建应用中我们需要进行文件管理的权限开通:NAS文件系统(阿里云文件存储NAS是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统。兼容POSIX 文件接口,可支持数千台计算节点共享访问,可以挂载到弹性计算ECS、神龙裸金属、容器服务ACK、弹性容器ECI、批量计算BCS、高性能计算EHPC,AI训练PAI等计算业务上提供高性能的共享存储,用户无需修改应用程序,即可无缝迁移业务系统上云。)

image

同样每一个应用在创建的过程中的时候就会有不同的而角色快捷创建,这是提供的模板和场景的情况下

image

接下来是应用程序的创建,我直接通过GitHub绑定,方便以后的管理

image

image

image

等几秒钟就能完成部署了,非常方便快捷

image

image

我们可以通过我们建好的通过域名进行访问,然后我们下载相关的工具可以在本地进行:

image

我们可以在后台看到我们所创建的一系列函数,可以查看运行环境、调用次数等等。这样一个简单的应用场景就部署好了,后期我们可以通过填充式的代码来完成相应的程序编写。

开发步骤


1.开通函数计算

开通前需要您已注册阿里云账号并完成实名认证,进入函数计算官网函数计算https://fcnext.console.aliyun.com如果您还未开通函数计算,需在函数计算开通页面勾选呢函数计算服务协议之后点击立即开通,开通完成后会自动跳转至函数计算控制台。

image

2.新建服务

在函数计算控制台点击 "服务及函数" 进入服务列表,在服务列表点击创建服务,填写服务的配置,点击确认即可创建服务,注:开启日志和链路追踪功能可以更方便的进行代码调试、故障分析、数据分析和查看函数内部时间的消耗等(推荐开启,但可能会收取部分费用)。image


3.新建函数

在服务列表下点击创建的服务名称进入函数管理页面,点击创建函数,在创建函数页面选择 "使用自定义运行时创建" 填写函数的相关配置,在运行环境中选择Java 17的示例模版函数,配置完成后页面下拉至底部点击创建即可部署一个springboot项目。


image


image


4.自定义域名配置

函数创建完成后直接在浏览器中直接打开请求地址,将会以附件的方式下载响应。这是因为 Http 触发器会自动在响应头中添加 Content-Disposition: attachment 字段,我们可以使用自定义域名避免该问题,进入域名管理页面点击添加自定义域名,在路由配置中选择自己创建的服务和函数,配置完成后,就可以在浏览器中输入配置的域名,可以看到页面显示的Hello World!内容,到此一个简单的springboot项目就部署配置完成了。imageimage

imageimage

5.开发

  • 导出代码

继续进行项目开发,我们可以在函数计算控制台进入到该函数的详情页面在函数代码页使用在线IED进行开发和调试,也可以在"导出函数"这里导出函数的代码,使用自己的代码编辑器进行开发。

image

  • 代码结构

image

  • pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


  • DemoApplication

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

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

    @GetMapping("/")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
        return String.format("Hello %s!", name);
    }

}


  • 配置监听端口

在application.properties配置文件中添加监听端口,这里的配置端口需要和函数配置的监听端口保持一致

imageimage

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
函数计算部署SpringBoot应用
通过模板创建以及仓库导入应用来部署一个SpringBoot应用
1865 0
SpringBoot系列之拦截器注入Bean的几种姿势
在SpringBoot中,通过实现WebMvcConfigurer的addInterceptors方法来注册拦截器,那么当我们的拦截器中希望使用Bean时,可以怎么整?
138 0
【SpringBoot DB系列】Mybatis多数据源配置与使用
上一篇博文介绍 JdbcTemplate 配置多数据源的使用姿势,在我们实际的项目开发中,使用 mybatis 来操作数据库的可能还是非常多的,本文简单的介绍一下 mybatis 中,多数据源的使用姿势
251 0
SpringBoot配置类注解
在使用springBoot进行开发时,经常会碰到把配置文件的属性值注入到某个JAVA类的属性中,可以使用@value注解注入配置文件的单个属性,也可以使用@ConfigurationProperties注入对象的多个属性。
292 0
Springboot注入数据的几个注解
本篇文章主要讲述了@Value,@ConfigurationProperties,@ImportResource以及@Configuration等注解的使用
294 0
springboot高级功能(四)业务实战,自定义注解收集操作日志
springboot高级功能(四)业务实战,自定义注解收集操作日志
317 0
SpringBoot | 1.4 数据库事务处理
前面讲解了Sring的AOP,可以知道它是用来抽取公共代码,增强方法的。而在JDBC操作数据库进行数据处理时,有很多重复的公共代码;事务的提交与回滚跟AOP的约定流程很相似。因此,Spring数据库事务编程的思想基于AOP的设计思想,数据库事务处理是AOP的一种典型应用。 注:在说明注解时,第一点加粗为注解中文含义,第二点为一般加在哪身上,缩进或代码块为示例,如: **@注解** - **中文含义** - 加在哪 - 其他…… - `语句示例` ```java //代码示例 ```
415 0
【Spring Boot】使用JDBC 获取相关的数据
【Spring Boot】使用JDBC 获取相关的数据 使用JDBC 获取相关的数据 什么是JDBC Java Database Connectivity 是一种用于执行SQL语句的Java API,与数据库建立连接、发送 操作数据库的语句并处理结果。
5038 0
Spring Boot开发之明月千城(一)
原文地址:http://qindongliang.iteye.com/blog/2205633 最近数据分析的项目也即将告一段落了,中间也积累了很多知识,特此记录一下。其中用的最爽的Web组合开发就是Intellij IDEA + Maven + Spring Boot + Velocity + Boostrap + jQuery了,关于后端的数据分析和处理的Hadoop模块,会放在Hadoop分类的博客文章中记录。
980 0
+关注
IT枫斗者
公众号:IT枫斗者,根据关键字领取福利资料,我2013年毕业,至今工作将近9年了,目前在上海工作,也是公司的面试官,曾就职过科大讯飞、美团网、平安等公司,擅长做面试辅导、定制化包装简历、项目包装等,个人微信:itfdz666,欢迎交流疑惑!
115
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载