AWS里面无服务器服务模式(Serverless)是一个近两年很热门的技术,他能够容许服务无需任何服务器配置就能够在须要的时候执行代码。javascript
下面看一个简单的例子如何经过Lambda,API Gateway, S3等云服务来实现一个最基本的无服务器架构模式。html
例1:在某个网页上点击一个按钮, 更新网页的内容。java
简单说明一下流程,用户访问S3的一个静态网站,点击一个按钮,执行一个javascript的AJAX的Get操做,调用Amazon API Gateway,这个Gateway调用对应的Lambda 函数,返回结果到网页api
首先咱们建立一个新的Lambda函数服务器
选择高级语言和IAM Role架构
建立以后的界面,最中间显示函数名,而后旁边显示他能够访问的资源less
而后咱们输入本身的代码,代码很简单,返回一个JSON格式的值ide
而后添加一个触发器,这里选择API Gateway函数
选择新建API网站
而后能够点击API的名字,进入API Gateway的配置界面。他的默认Action是 Any。删掉,而后新建一个Get的Action
新建一个Get的method,绑定咱们的函数
流程示意图
回到Lambda的界面,能够看见自动生成的API Endpoint。直接访问他就能够调用咱们的函数了。
下一步,咱们须要建立一个S3的bucket,具体很少说了。建好以后,选择创建一个静态的网站,并上传咱们的index.html和error.html
下面是咱们的index.html的内容,当点击按钮的时候,他会执行javascript的方法,而后执行一个AJAX的GET操做,从指定的API Gateway那里获取返回值
<html> <head> <script> function myFunction() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("my-demo").innerHTML = this.responseText; } }; xhttp.open("GET", "https://br6b44zf93.execute-api.ap-southeast-2.amazonaws.com/default/Demo1", true); xhttp.send(); } </script> </head> <body> <div align="center"> <br> <br> <br> <br> <h1>Hello <span id="my-demo">Guys !</span></h1> <button onclick="myFunction()">Click me</button> <br> </div> </body> </html>
访问一下这个静态网页,能够看见界面以下
点击按钮,成功获取了咱们在Python脚本里面设置的内容