微软公司于近期发布了Azure Functions以支持AWS Lambda。本文将介绍如何开始使用这个事件驱动服务,以及这项服务是否适合您。

无论是超大规模云供应商、软件开放人员还是企业管理员,目前最热门的技术之一就是无服务器计算。也就是所谓的功能即服务,这些由事件驱动的服务可允许企业用户在不需要提供虚拟机或容器集群的情况下完成应用程序代码的部署,并可以由部署在另一个云服务上的应用,通过一个触发事件来触发执行。

云功能是平台即服务(PaaS)的一个自然延伸。这些云端功能不仅能够让云管理人员和开发人员免于受到服务器与存储设备等细节问题的影响,而且完全可以从底层运行时基础设施和操作系统中抽取代码执行。相关功能响应外部触发事件而运行,所以它们最适合用于使用微服务和事件驱动组件的部署,而不是那些持久性的长期运行应用程序。

从2014年开始,亚马逊网络服务就开始通过Lambda来推广无服务器模式,但是包括谷歌、IBM和微软在内的其他云供应商们已经推出了功能即服务产品。微软公司于去年11月发布的服务被称为Azure Functions。

微软Azure Functions 101

微软的Azure Functions是基于在Azure App Service (PaaS)中使用的WebJobs软件开发工具包的。这将有助于用户将应用或脚本程序作为web或移动应用的一部分来运行,或者甚至将其公开作为可调用的API。因此,微软Azure Functions可以使用WebJobs的功能,从而更容易地使用Azure Storage和Azure Service Bus(后者是一个发布与订阅的消息队列)。

功能包括了用所支持语言开发的执行逻辑部分与描述功能绑定的JSON配置文件,例如名称、数据类型以及绑定是发送还是接收数据。

作为一个事件驱动的服务,微软Azure Functions非常适合处理数据,其中涉及内容包括了从物联网(IoT)设备、开发微服务、开发集成其他代码模块或云服务,或者API开发。以下Azure事件或服务可触发相关功能:

  • 存储blob活动,例如在容器中添加或更改数据;
  • 事件枢纽活动,例如用于IoT的流数据;
  • 网络事件,例如HTTP请求或webhooks;
  • Azure Service Bus,以及
  • 计划事件的计时器,类似于Cron job。

微软Azure Functions还可与以下Azure和第三方发布事件的触发器集成:

  • Azure DocumentDB
  • Azure事件中心
  • Azure移动应用程序
  • Azure通知中心

Azure Service Bus,包括可向Service Bus队列发布消息的内部部署的服务

  • Azure Storage
  • 通过webhooks的GitHub
  • Twilio

一个可说明无服务器设计的简单示例是使用微软Azure Functions来响应和处理网络表单。不同于让网络服务始终处于运行状态并等待处理用户输入,Azure Functions是按照命令执行任务。一旦激活后,该功能可以显示存储在Azure blob中的若干表单中的一个,处理已提交的字段并将处理结果保存在SQL或非SQL数据库中。

与AWS Lambda比较

微软Azure Functions与其他无服务器产品类似,特别是AWS Lambda。但是它们之间还是有着重大的区别,具体包括:

处理持久性数据的方法:两种服务都使用了无状态容器作为执行机制,但是微软Azure Functions还可以在Azure App Service应用程序环境中运行,这个环境配有专用虚拟机可让用户存储不同执行之间的状态。

每个云服务支持的事件源:有关最新支持列表,请参阅Lambda和微软 Azure Functions的开发人员文档。

定价模式:两家厂商都是根据总执行时间和功能请求总数来综合定价的。但是,具体细节是不同的。请务必查看Lambda 和 Functions 在它们各自网站上的最新费率信息 。

无服务器建议

由于无服务器功能是一个新概念,企业用户仍然会采取审慎的态度试用,以求找到正式引入使用的正确时机。Functions能够与事件驱动程序一起运行,例如处理用户输入或响应异步消息队列中的事件。如同通用PaaS一样,Functions有助于用户在几乎不了解初始容量要求的情况下部署新的应用程序,但是期望使用量会随着时间推移而发散、爆发和发展。

例如,消息队列的常见用途是处理来自外部源的数据,例如在将物联网数据保存至数据前对数据进行过滤和归一化处理,以及上传多媒体文件时压缩或变更图像或视频文件的格式。企业用户还可以使用Functions将Cron Jobs重新用于云端的批处理任务。

【转】微软Azure Functions使用入门相关推荐

  1. 微软宣布Azure Functions正式支持Java

    微软宣布Azure Functions V2.0支持Java.开发人员现在可以用Java 8编写Function,并利用Visual Studio Code.IntelliJ.Eclipse和跨平台F ...

  2. 微软正式发布Azure Functions 2.0

    微软正式发布Azure Functions的第二个版本,这是一个事件驱动的.按需计算的Azure平台服务.与版本1相比,新版本的Azure Functions包含的多项特性使开发人员可以更轻松地构建可 ...

  3. 微软发布Azure Functions、Service Fabric和IoT Starter Kits新服务

    微软此次 Build 2016 大会的重点主题一直都围绕开发和 Microsoft Azure 云服务,今天更是对外发布了 Azure Functions.Service Fabric 和 IoT S ...

  4. 要闻君说:谷歌云重磅发布两大技术平台;以后可以打飞滴了?SAP重组动荡;微软宣布 Azure Functions 支持 Java...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  5. 【Azure】微软 Azure 基础解析(六)计算服务中的虚拟机 VM、虚拟机规模集、Azure Functions 与 Azure 容器(ACI)

    本系列博文还在更新中,收录在专栏:「Azure探秘:构建云计算世界」 专栏中. 本系列文章列表如下: [Azure]微软 Azure 基础解析(三)描述云计算运营中的 CapEx 与 OpEx,如何区 ...

  6. 【转】设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示

    设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(1.准备工作) 原创 Sean Yu 云计算实战 2019-12-06 本案例适用于开发者入门理解Azure F ...

  7. 微软Azure storage account的connection string

    annotation @BlobOutput来自微软package: com.microsoft.azure.functions 上述注解修饰的含义是,将数据写入如下路径指向的持久化存储里:flags ...

  8. 在 Azure Functions 上使用不同的路由前缀

    点击上方蓝字关注"汪宇杰博客" 原文:Azure Tips and Tricks 翻译:汪宇杰 导语 有时需要使用与 Azure Functions 自动生成的路由前缀不同的路由前 ...

  9. 正式发布!Azure Functions OpenAPI Extension

    微软中国MSDN  点击上方蓝字关注我们 距离Azure Functions OpenAPI Extension的预览版发布已有一年的时间,今天,我们很开心地宣布它已经正式发布了!该版本支持.NET ...

最新文章

  1. 独家 | 不同机器学习模型的决策边界(附代码)
  2. python学习笔记目录
  3. ibatis example Class 使用
  4. 完全分布式部署Hadoop
  5. 十进制与二进制八进制十六进制的相互转换
  6. 复原 IP 地址Python解法
  7. 数据:ContentResolver类
  8. linux u盘 uid pid,linux下的pid文件的作用
  9. DSDV的问题(Problems of DSDV)
  10. python shutil模块用法实例分析_python之shutil模块使用方法(三分钟了解)
  11. knockout.js的简介和简单使用
  12. java resource放入的文件没有生成在classes中_Java的classpath到底指什么
  13. 第四章 可靠的请求-应答模式
  14. python做路径图_python实现生成图片路径和对应标签
  15. python嵌入java,java架构如何嵌入python?Java调用Python程序方法
  16. 腾讯课堂直播: 手把手教你开发《3D街头篮球》
  17. 对学生任务博客的评分练习
  18. renderScript实现图片反色效果实例
  19. 一、代理模式{proxy-pattern}
  20. 鸿蒙系统会不会吸收linux,鸿蒙系统是不是别人不给它适配?

热门文章

  1. java中的4种reference的差别和使用场景(含理论、代码和执行结果)
  2. 腾讯后台开发面试总结,原创,吐血推荐!!
  3. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]51.基于ID的加密安全模型,描述IBE方案
  4. [Leetcode][第96题][JAVA][不同的二叉搜索树][动态规划][数学]
  5. 程序安装mysql数据库_安装Mysql数据库
  6. micropython stm32f407 以太网_[MicroPython]STM32F407开发板DIY声光控开关
  7. ubuntu12 04下django安装略谈
  8. 在线五子棋JAVA网络编程_实验五 Java网络编程及安全
  9. java font属性,css font-family属性怎么用
  10. mysql leave的作用_MySQL数据库中DELIMITER的作用