AWS——Serverless和λ

  

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

  

下面看一个简单的例子如何通过λ,API网关,S3等云服务来实现一个最基本的无服务器架构模式。

  

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

  

简单说明一下流程,用户访问S3的一个静态网站,点击一个按钮,执行一个javascript的AJAX的获得操作,调用亚马逊API网关,这个网关调用对应的λ函数,返回结果到网页

  

 AWS - Serverless和λ

  

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

  

 AWS - Serverless和λ

  

选择高级语言和

我的角色   

 AWS - Serverless和λ

  

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

  

 AWS - Serverless和λ

  

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

  

 AWS - Serverless和λ

  

然后添加一个触发器,这里选择API网关
 AWS - Serverless和λ

  

选择新建API

  

 AWS - Serverless和λ

  

然后可以点击API的名字,进入API网关的配置界面。他的默认是任何行动。删掉,然后新建一个得到的行动

  

 AWS - Serverless和λ

  

新建一个得到的方法,绑定我们的函数

  

 AWS - Serverless和λ

  

流程示意图
 AWS - Serverless和λ

  

回到λ的界面,可以看见自动生成的API端点。直接访问他就可以调用我们的函数了。
 AWS - Serverless和λ

  

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

  

 AWS - Serverless和λ

  

下面是我们的指数。html的内容,当点击按钮的时候,他会执行javascript的方法,然后执行一个AJAX的获得操作,从指定的API网关那里获取返回值

  
 <代码> & lt; html>
  & lt; head>
  & lt; script>
  函数myFunction () {
  var xhttp=new XMLHttpRequest ();
  xhttp。onreadystatechange=function () {
  如果这一点。readyState==4,,这一点。状态==200){
  . getelementbyid(“我的演示”)。innerHTML=this.responseText;
  }
  };
  xhttp。开放(“获得”、“https://br6b44zf93.execute - api.ap东南- 2. - amazonaws.com/default/demo1”,真正的);
  xhttp.send ();
  
  }
  
  & lt;/script>
  & lt;/head>
  & lt; body>
  & lt; div=爸行摹痹诙云?
  & lt; br>
  & lt; br>
  & lt; br>
  & lt; br>
  & lt; h2>你好& lt;跨度id=拔业难菔尽弊4羌一? & lt;/span> & lt;/h2>
  & lt; button>单击me
  & lt; br>
  
  & lt;/div>
  
  & lt;/body>
  & lt;/html>  
  

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

  

 AWS - Serverless和λ

  

点击按钮,成功获取了我们在Python脚本里面设置的内容
 AWS - Serverless和λ

AWS——Serverless和λ