天天看点

AWS - Serverless 和 lambda

aws里面无服务器服务模式(serverless)是一个近两年很热门的技术,他可以允许服务无需任何服务器配置就可以在需要的时候执行代码。

下面看一个简单的例子如何通过lambda,api gateway, s3等云服务来实现一个最基本的无服务器架构模式。

例1:在某个网页上点击一个按钮, 更新网页的内容。

简单说明一下流程,用户访问s3的一个静态网站,点击一个按钮,执行一个javascript的ajax的get操作,调用amazon api gateway,这个gateway调用对应的lambda 函数,返回结果到网页

AWS - Serverless 和 lambda

首先我们创建一个新的lambda函数

AWS - Serverless 和 lambda

选择高级语言和iam role

AWS - Serverless 和 lambda

创建之后的界面,最中间显示函数名,然后旁边显示他可以访问的资源

AWS - Serverless 和 lambda

然后我们输入自己的代码,代码很简单,返回一个json格式的值

AWS - Serverless 和 lambda

然后添加一个触发器,这里选择api gateway

AWS - Serverless 和 lambda

选择新建api

AWS - Serverless 和 lambda

然后可以点击api的名字,进入api gateway的配置界面。他的默认action是 any。删掉,然后新建一个get的action

AWS - Serverless 和 lambda

新建一个get的method,绑定我们的函数

AWS - Serverless 和 lambda

流程示意图

AWS - Serverless 和 lambda

回到lambda的界面,可以看见自动生成的api endpoint。直接访问他就可以调用我们的函数了。

AWS - Serverless 和 lambda

下一步,我们需要创建一个s3的bucket,具体不多说了。建好之后,选择建立一个静态的网站,并上传我们的index.html和error.html

AWS - Serverless 和 lambda

下面是我们的index.html的内容,当点击按钮的时候,他会执行javascript的方法,然后执行一个ajax的get操作,从指定的api gateway那里获取返回值

访问一下这个静态网页,可以看见界面如下

AWS - Serverless 和 lambda

点击按钮,成功获取了我们在python脚本里面设置的内容

AWS - Serverless 和 lambda

继续阅读