纯挚的和大家分享什么是Serverless,可能不是很符合我的个人性情,以是,我将会在这个专栏,通过实践,和大家一起学习Serverless,没有华美的措辞和润色,没有夸年夜的修辞和描述,统统建立在生产,实践,工程之上。
入门Serverless云函数在这里点进去,新建一个函数:
建立函数的时候,我们可以填写一个函数名字,然后选择运行环境:
在这里,大家可以看到,这里有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?