什么是 Azure Functions?
- 7 分钟
你跟随 Tailspin Space Game 网络团队,讨论如何最好地满足管理层驱动的新营销需求。 团队需要将一些无服务器技术(特别是 Azure Functions)集成到其 DevOps 过程中。
让我们了解一下团队的情况。
新要求
欧文: 感谢您在如此短的通知下参加会议。 事情正在升温,营销团队已经做出了一些承诺,这可能会让事情变得复杂,影响到我们所有人。 他们真的很喜欢我们的网站。 他们觉得在我们为最终发布和后续事项努力时,可通过排行榜来推广游戏。 他们想进行扩展,超出我们最初的计划。
玛拉: 这太棒了,对吧? 我们使用的是 Azure,因此可以根据需要横向扩展服务。
欧文: 他们只是希望任何人能够将排行榜数据集成到自己的应用程序中。 他们认为,在我们的网站上、游戏中、游戏评论网站上,甚至外部博客和个人网站上拥有相同的排行榜选项,这确实很酷。 我们的难题是,游戏引擎团队目前拥有生产数据库,我们要从中拉取排行榜数据。 他们觉得应继续由他们来生成和拥有 API。
安 迪: 马拉,你有什么想法吗?
玛拉: 我相信我们可以想出一些东西。 以下是我的笔记:
- 我们需要快速交付,因此我们必须找到一个解决方案,以便在其中使用我们的代码和技能。
- 我们需要将一小部分功能重构为独立的服务。
- 我们需要最大程度地减少生产中的管理开销。
- 我们需要有巨大的规模,而无需做出巨大的承诺。
团队同意了点头。
它在我的计算机上工作
会议破裂。 第二天早上,安迪兴奋地跳进马拉的办公室进行即兴聊天。
安迪: 我知道了! 我找到了满足排行榜 API 的所有要求的解决方案。 它是一种称为 Azure Functions 的无服务器产品/服务。
玛拉: 真棒! 我们多久才能有东西可以演示?
Andy:我已经准备好了。我对我们的 GitHub 存储库设置了分支,并将排行榜代码重构成了一个新的 Azure Functions 项目。 它通过简单的 HTTP GET 请求公开排行榜数据。 我还更新了网站,它请求排行榜时使用该终结点,而且其他任何人都可这样做。
玛拉: 这听起来就像我们需要的。 我可以帮助扩展现有的 CI/CD 管道,以支持构建和部署它,就像我们针对主站点项目所做的那样。
注释
在本模块中,我们不会专注于如何将应用连接到 Azure Functions。 如果你感兴趣,可以查看 源代码。 该代码使用 适用于 C# 的 Azure Functions 运行时 从 Azure Functions 读取排行榜数据。
什么是 Azure Functions?
Azure Functions 是 Azure 无服务器计算技术更广泛的特定产品/服务。 它为开发人员提供了一种简单的方法来生成在无状态无服务器环境中存在的简单函数。 可以使用各种方法触发函数,例如 HTTP 请求、对存储中的数据的更改、从队列接收消息等。 可以在 Azure Functions 触发器和绑定概念中了解有关触发器绑定的详细信息。
Tailspin 团队为此方案选择了 Azure Functions,因为它满足其所有需求:
- 我们需要快速交付,因此我们必须找到一个解决方案,以便在其中使用我们的代码和技能。
- 我们可以将解决方案快速构建为 ASP.NET 核心应用程序,并应用我们已有的代码。
- 我们需要将一小部分功能重构为独立的服务。
- 我们可提供独立的函数,无需担心其他应用程序外围应用。
- 我们需要最大程度地减少生产中的管理开销。
- Azure Functions 无需担心托管环境。
- 我们需要有巨大的规模,而无需做出巨大的承诺。
- 无服务器技术具有几乎无限的规模,可以比虚拟机或应用服务更快自动纵向扩展和缩减。
Azure Functions 和其他无服务器技术并不总是适合每个解决方案。 稍后,我们将讨论可在何处找到资源,以帮助你为作业选择合适的技术。