开发函数计算的正确姿势——爬虫

  

  在      《函数计算本地运行与调试——有趣的当地基本用法》      中,我们介绍了利用有趣的地方本地运行,调试函数的方法。但如果仅仅这样简单的介绍,并不能展现有趣的地方对函数计算开发的巨大效率的提升。   

  

  这一次,我们拿一个简单的场景来举例子,开发一个简单的爬虫函数(代码参考函数计算      控制台模板      ),介绍如何以正确姿势,从零开始,开发一个自动伸缩,按调用次数收费的serverless爬虫应用。   

  

  开发步骤   

  

  我们将这个完整的应用拆分成多步,并且在每一步完成后,我们都会进行相应的运行验证。   

  

  1. 创建有趣的项目   

  

  首先,我们创建一个名为image-crawler的目录作为项目的根,然后在该目录下创建一个名为模板。yml的文件,内容为:   

  <前>   ROSTemplateFormatVersion: & # 39; 2015 - 09 - 01 & # 39;变换:,& # 39;王坚:serverless - 2018 - 04 - 03 & # 39;资源:   localdemo才能:   ,,,类型:,& # 39;王坚:Serverless:服务# 39;   ,,,属性:   ,,,,,描述:,& # 39;local  invoke 演示# 39;   ,,,image-crawler:   ,,,,,类型:,& # 39;王坚:Serverless:函数# 39;   ,,,,,属性:   ,,,,,,,处理程序:index.handler   ,,,,,,,CodeUri:代码/,,,,,,,描述:,& # 39;Hello  world  with  python2.7 ! & # 39;   ,,,,,,,运行时:python2.7   之前   

  如果不了解有趣定义的Serverless应用程序模型,可以参考      这里      。   

  

  操作完成后,我们的项目目录结构如下:   

  <前>   。   └──template.yml   之前   

  2. 编写helloworld函数代码   

  

  在根目录下创建一个名为代码的目录,并在该目录下创建一个名为索引。py的文件,内容为一个简单的helloworld函数:   

  <前>   def 处理程序(事件,,背景):   ,,,return  & # 39; hello 世界! & # 39;   之前   

  在项目根目录下执行:   

  <前>   fun  local  invoke  image-crawler   之前   

  函数运行成功:   

  

  开发函数计算的正确姿势——爬虫”>
  </p>
  <p>
  操作完成后,我们的项目目录结构如下:
  </p>
  <前>
  。
  ├──,代码│,,,└──,index.py└──, template.yml
  </>之前
  <h4>
  3.事件触发函数运行
  </h4>
  <p>
  我们简单修改第2步的代码,将事件打印到日志中。
  </p>
  <前>
  import 日志
  logger =, logging.getLogger () def 处理程序(事件,,背景):
  ,,,logger.info(“事件:,“,+,事件),,,,return  & # 39; hello 世界! & # 39;
  </>之前
  <p>
  通过触发事件的方式运行函数,得到如下结果:
  </p>
  <p>
  <img src=开发函数计算的正确姿势——爬虫