纯挚的和大家分享什么是Serverless,可能不是很符合我的个人性情,以是,我将会在这个专栏,通过实践,和大家一起学习Serverless,没有华美的措辞和润色,没有夸年夜的修辞和描述,统统建立在生产,实践,工程之上。

入门Serverless云函数

我们可以打开腾讯如斯函数:

在这里点进去,新建一个函数:

php向世界问好Serverless 你好世界 Node.js

建立函数的时候,我们可以填写一个函数名字,然后选择运行环境:

在这里,大家可以看到,这里有Python(2.7/3.6),Nodejs(6.10/8.9),PHP(5.6/7.2)以及Java,Golang等措辞,是不是有一点小激动,主流的编程措辞,这里都可以用,也便是说,无论你是什么措辞爱好者,只要在这个列表中,那么OK,你就可以愉快的来利用Serverless架构。

填写好干系信息,点击下一步即可到写代码的地方:

看一下这个代码很大略:

#--coding:utf8--importjsondefmain_handler(event,context):print("Receivedevent:"+json.dumps(event,indent=2))print("Receivedcontext:"+str(context))print("Helloworld")return("HelloWorld")

全体代码内容,只有一个函数,便是main_handler,动脑一下,都可以猜到,这个一定便是腾讯云Serverless的函数入口。
再看一下描述:

可以看到,这里便是一个实行方法,以Python措辞为例:

index.main_handler

这里面index便是文件名,main_handler便是入口方法。

我们点击完成,来体验一下:

选择函数代码:

点击测试,就可以愉快的体验:

可以看到,这里的测试结果,已经输出了:

"Hello World"

这解释,我们已经成功跑起来了云函数:你好,天下

超乎想象

刚刚,我们大略的运行了一下函数,我们有没有创造一件事情:

我们没有配置环境我们没有安装Python环境

这貌似是一个在线的编辑器?

传统情形下,我们要写一个python程序,我们须要下载Python软件,然后安装,配置环境,才可以编写程序,而就在刚刚,我们貌似,在线编写了一个软件,并且运行了?

是的,Serverless架构实际上可以看作是FaaS+BaaS,个中FaaS就可以算作是函数打算,而BaaS便是后真个做事。
我们目前体验的这种在线的编程运行过程,便是FaaS重的一部分。

说完这里,我们再来看看我们的代码和输出的结果:

#--coding:utf8--importjsondefmain_handler(event,context):print("Receivedevent:"+json.dumps(event,indent=2))print("Receivedcontext:"+str(context))print("Helloworld")return("HelloWorld

"Hello World"

日志:STARTRequestId:2ba40ad6-1806-11ea-9ec2-52540075364aEventRequestId:2ba40ad6-1806-11ea-9ec2-52540075364aReceivedevent:{"key1":"testvalue1","key2":"testvalue2"}Receivedcontext:{'memory_limit_in_mb':128,'time_limit_in_ms':3000,'request_id':'2ba40ad6-1806-11ea-9ec2-52540075364a','environ':';SCF_NAMESPACE=default','function_version':'$LATEST','function_name':'hello_world','namespace':'default','get_remaining_time_in_millis':<functionmain.<locals>.<lambda>at0x7f063a9f9488>}HelloworldENDRequestId:2ba40ad6-1806-11ea-9ec2-52540075364aReportRequestId:2ba40ad6-1806-11ea-9ec2-52540075364aDuration:0.34msMemory:128MBMaxMemoryUsed:19.5039MB

我们通过这样一个比拟,我们可以看到这样一个对应关系:

行数4的代码:

print("Received event: " + json.dumps(event, indent = 2))

输出结果:

Receivedevent:{"key1":"testvalue1","key2":"testvalue2"}

行数5的代码:

print("Received context: " + str(context))

输出结果:

Receivedcontext:{'memory_limit_in_mb':128,'time_limit_in_ms':3000,'request_id':'2ba40ad6-1806-11ea-9ec2-52540075364a','environ':';SCF_NAMESPACE=default','function_version':'$LATEST','function_name':'hello_world','namespace':'default','get_remaining_time_in_millis':<functionmain.<locals>.<lambda>at0x7f063a9f9488>}

行数6的代码:

print("Hello world")

输出结果:

Helloworld

行数7的代码:

return("Hello World")

输出结果:

由此,我们可以对应的看出两个神秘参数的真实身份:

初步判断,event里面是一些入参内容,可能是用户指定,而context则是函数实行的高下文,包括一些环境变量、函数信息等。

通过腾讯云的文档:

可以看到这样的描述:

由此可见,我们的预测,貌似没毛病。

接下来,我们来做一个神奇的操作:让Hello World成为不一样的Hello World!

选择这样的API网关触发器:

保存之后可以看到这样一个地址:

我们打开网址:

看到了什么?是的,看到了我们刚才的你好天下。
改变我们的程序代码:

#--coding:utf8--importjsondefmain_handler(event,context):return("IloveServerless!Socool!")

保存之后,刷新刚才的网页:

大略的配置,就让我们的你好天下,成了web版的你好天下,要知道,这是我们Serverless的入门第一节课,我们就可以做一个网页了!

百度一下,如何配置一个Web,有超级多的教程,但是无论如何apache,nginx的安装和配置貌似都是须要的,但是在Serverless架构下:你可以点点点。

非常大略的,我们完成了一你好天下,非常大略的,我们做了一个网页,非常大略的….

总结

So cool!

是的,云函数,你可以当作是一个非常有趣项目,他是云打算的一种表现形式,也被很多人称之为真正的云打算,用户真的可以不再关注做事器资源:如何配置环境,如何安装做事器软件,如何……用户只须要关注自己的代码,就可以实现自己想要的一起,这是一个你好天下,更是在向Serverless架构,云打算问好,这是一个你好天下,更是一个不一样的你好天下。

通过Serverless架构,你可以更大略,更快速的创建自己的项目,完本钱身的事情,怎么样,想不想和我一起来Serverless?