Azure Functions的PowerShell基本信息

日期: 2017-12-15 作者:Kurt Marko翻译:蒋红冰 来源:TechTarget中国 英文

由于对脚本语言的熟悉,一些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函数,但门户是最简单的选择。

Azure Functions的PowerShell基本信息

图1 PowerShell函数触发器

建议

无论是代码是在C#、PowerShell,还是在Python中,Azure Functions工作方式都是一样的,这使得团队可以使用他们擅长的语言,或更容易掌握的语言。Functions的功能源于与其他Azure服务和内置运行时环境的集成。编写即函数比为简单任务创建独立的应用程序更有效率,比如从HTTP请求触发webhook。

虽然PowerShell对于Windows团队来说是一个很有吸引力的选择,但还是需要谨慎行事,因为Azure Functions还 不断进化中。然而,实施细节可能会改变。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

蒋红冰
蒋红冰

TechTarget云计算主编,主要负责云计算和虚拟化网站的内容建设。长期专注于IT前沿技术,对云计算、虚拟化、人工智能、区块链等技术都有了解;对行业趋势、市场动态有一定的洞察。

相关推荐

  • 技巧:升级IT管理职业路径

    不要养成在微软每隔几年发布一次更新时才进行更新的习惯。管理员需要熟练掌握PowerShell和云产品以保持自身的竞争力。

  • 无服务器技术使用五个小贴士

    无服务器技术可有助于提高灵活性并降低云整体成本。为了充分利用好这些优势,请务必精心设计并管理好您的无服务器应用程序。

  • 通过Azure Site Recovery服务减少停机时间

    任何企业都可能会遇到数据故障。最重要的是如何为快速恢复做好准备。当数据中心出现故障时,Azure Site Recovery将使用Microsoft云平台。

  • 微软Azure Functions使用入门

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