由于对脚本语言的熟悉,一些Windows厂商将PowerShell与Azure Functions一起使用。这里有一些技巧和注意事项,在开始实施之需要要注意。
函数即服务产品,比如Azure Functions,只不过是纯代码而已。不过,这不仅仅是为了开发者, 一些脚本语言也为管理员和系统分析人员创造了新机会。
Azure Functions的脚本选择
Azure Functions是一组事件驱动的应用程序组件,它可以与其他Azure服务进行交互。对于异步任务,如数据提取和处理、抽象、转换和加载进程或其他数据管道,以及微服务或云服务集成,都非常有用。
一般而言,Functions非常适合作为传统企业应用的集成和脚本工具,因为它们具有事件驱动、轻量级和基础设施灵活的特点。使用熟悉的语言,如PowerShell、Python和Node.js的能力,使这种情况更加强大。由于PowerShell在Windows IT厂商和Azure用户中很受欢迎,下面的最佳实践侧重于特定的脚本语言,但也适用于其他语言。
PowerShell支持演进
作为开源Azure WebJobs软件开发工具包的一部分,2016年推出的支持Azure Functions的PowerShell支持仍被认为是实验性的,可能会发生变化。 GitHub的一位微软开发人员指出,一个潜在的障碍是沙盒安全模型——它作为交付Functions的交付共享服务是必须的,它并不能与多个PowerShell用户与环境交互时保持一致。
微软建议在生产场景中使用Azure Automation over Functions,直到微软增强PowerShell支持。 尽管如此,IT团队仍然可以将PowerShell功能用作许多复杂应用的一部分。
Azure Functions的PowerShell
PowerShell最初在Azure Functions中实现的是PowerShell版本4,而且只支持脚本(PS1文件),不能支持模块(PSM1 文件),这最好地简化了任务,加速了开发。为了在Azure Functions中使用PowerShell模块,用户可以更新PSModulepath环境变量,指向含有定制化模块的文件夹,并通过FTP连接它。
Azure Functions vs. Logic Apps
当供应商已经提供了Logic Apps后,有些开发人员就开始质疑Azure Functions。Logic Apps具有事件驱动开发的拖放GUI。 虽然这些服务看似重叠,但它们是互补的。
Functions是由事件触发的代码模块,而Logic Apps是由事件触发的工作流。 此外,Logic Apps可以将Functions作为其工作流程的一部分。Logic Apps编辑器本身支持Functions的创建和调试,这意味着开发人员可以在单一环境中进行编码。
Logic Apps最适合使用多个应用程序的复杂工作流,而Azure Functions最适合于自定义微服务或代码模块,以便快速执行并与其他服务集成。
当使用脚本时,请通过文件或环境变量将数据传输给PowerShell函数,因为一个函数不会存储或缓存运行时环境。通过事件触发器或输入绑定,传入到函数的数据是通过在PowerShell中通过环境变量访问的文件传递的。同样的方案民适用于数据输出。由于输入数据只是一个原始文件,因此用户必须知道他们期待的是什么并进行相应的解析。函数本身不会格式化数据,但会支持大多数格式,包括:
- string;
- int;
- bool;
- object/JavaScript Object Notation;
- binary/buffer;
- stream; and
- HTTP
PowerShell函数可以通过HTTP请求、Azure服务队列来触发,如将消息添加到指定的存储队列或定时器(见图1)。开发人员可以使用Azure门户、Visual Studio——C#函数或本地代码编辑器和集成开发环境创建Azure函数,但门户是最简单的选择。
图1 PowerShell函数触发器
建议
无论是代码是在C#、PowerShell,还是在Python中,Azure Functions工作方式都是一样的,这使得团队可以使用他们擅长的语言,或更容易掌握的语言。Functions的功能源于与其他Azure服务和内置运行时环境的集成。编写即函数比为简单任务创建独立的应用程序更有效率,比如从HTTP请求触发webhook。
虽然PowerShell对于Windows团队来说是一个很有吸引力的选择,但还是需要谨慎行事,因为Azure Functions还 不断进化中。然而,实施细节可能会改变。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
技巧:升级IT管理职业路径
不要养成在微软每隔几年发布一次更新时才进行更新的习惯。管理员需要熟练掌握PowerShell和云产品以保持自身的竞争力。
-
无服务器技术使用五个小贴士
无服务器技术可有助于提高灵活性并降低云整体成本。为了充分利用好这些优势,请务必精心设计并管理好您的无服务器应用程序。
-
通过Azure Site Recovery服务减少停机时间
任何企业都可能会遇到数据故障。最重要的是如何为快速恢复做好准备。当数据中心出现故障时,Azure Site Recovery将使用Microsoft云平台。
-
微软Azure Functions使用入门
微软公司于近期发布了Azure Functions以支持AWS Lambda。本文将介绍如何开始使用这个事件驱动服务,以及这项服务是否适合您。