Reach

Grow

Manage

Automate

Reach

Grow

Manage

Automate

如何使用 Azure Functions 创建基本的 Webhook 消费者

尼克·齐默尔曼

2017年12月20日

电子邮件

1 min read

如何使用 Azure Functions 创建基本的 Webhook 消费者

尼克·齐默尔曼

2017年12月20日

电子邮件

1 min read

如何使用 Azure Functions 创建基本的 Webhook 消费者

在十一月,我在 Live! 360 上进行了演讲,介绍如何使用 Azure Functions 创建一个基本的 webhook 消费者。本文将回顾那次演讲,并提炼出要点,以帮助您理解 Azure Functions 的基础知识。

Azure Functions Webhook Interface

在十一月,我在Live! 360上做了一场关于如何使用 Azure Functions 创建一个基本的 webhook 消费者的演讲。这篇博文将回顾那次演讲,并提炼内容,以便您理解 Azure Function 的基础知识,并扩展在 Github 上找到的框架解决方案。

什么是Webhooks?

Webhooks 是许多流行服务(包括 SparkPost、Slack、Visual Studio Team Services、Office 365、Facebook、PayPal 和 Salesforce)提供的极好小工具。

Webhooks 根据事件将数据发布到您定义的端点。

Webhooks 是许多流行服务(包括 SparkPost、Slack、Visual Studio Team Services、Office 365、Facebook、PayPal 和 Salesforce)提供的极好小工具。

Webhooks 根据事件将数据发布到您定义的端点。

Webhooks 是许多流行服务(包括 SparkPost、Slack、Visual Studio Team Services、Office 365、Facebook、PayPal 和 Salesforce)提供的极好小工具。

Webhooks 根据事件将数据发布到您定义的端点。

为什么选择serverless函数?

无服务器功能是一项伟大的创新,有助于快速部署解决方案,同时减少组织的开销。无需维护硬件是一个很大的优势,无服务器功能能够处理不可预测的流量。它们易于部署和更新,因此您可以快速启动和运行。

协同效应!

结合webhooks和无服务器功能使得创建用于自动化或用户交互的丰富生态系统变得非常容易。能够从所有这些不同系统生成的事件和数据中获取驱动,消除了对复杂中间件的需求,同时使得合并自定义代码和事件非常容易。

Azure Functions Basics

Azure Functions 可以通过 Azure 控制台或 Visual Studio 创建。我建议你尝试这两种方法,以便熟悉这些体验。在 Azure 控制台中创建的一个好处是,你可以将生成的 Azure Function 下载为 Visual Studio 解决方案文件。Visual Studio 是你所熟悉并喜爱的强大 IDE 体验。

这两种方法各有其优点。Azure Function 控制台让你可以直接访问控制功能运行的参数,从提供的资源到成本控制的月度使用限制。这些选项都可以通过 host.json 文件和环境变量从 Visual Studio 中设置和操作。

创建一个 Basic Webhook Consumer

Step 1

创建一个新的Visual Studio解决方案,并向该解决方案添加一个新项目。

Visual studio editor


Step 2

右键点击项目节点,添加一个新项。选择Azure Function。


Visual studio editor


Step 3

现在,你拥有一个非常熟悉的Visual Studio项目。你应该有一个基本的C# Azure Function模板。是时候构建一些代码来消费你的webhook了。

Visual studio editor


Step 4

本地调试。没错,你可以使用所有熟悉的Visual Studio调试和内省工具在本地调试这个东西。注意调试控制台,因为它包含了关于在本地测试期间对函数的每次调用的许多有价值的信息。

Debugging console


Step 5

发布Azure Function。右键点击项目节点并选择发布。选择Azure Function并创建新的。请注意,你也可以更新现有功能。该功能将出现在你的Azure控制台中。

Visual studio editor

潜在 Pitfalls

在处理webhook消费和无服务器函数时,人们最常遇到的陷阱是函数运行时间太长。 这可能导致函数变得非常昂贵或完全失败,因为webhook POST超时。有一些方法可以缓解这些问题。

Webhook消费者应该以异步方式运行。 数据应尽快摄取然后处理。 一个常见的设计错误是尝试在数据到达时实时处理。这在数据大小一致且小的情况下有效,但如果数据大小可能增加或不一致,那么最好确保接收到数据并响应HTTP请求,这样就不会发生超时。

另一种可以帮助缓解长时间运行进程的方法是存储发布的数据,并使用无服务器函数启动一个容器化进程,如使用Azure Container Services (AKS)来处理长时间运行的部分。 使用此设计,无服务器函数应启动并忘记该容器,让容器将其结果发布到日志或您选择的其他通知服务。 这将无服务器函数保持尽可能简短,同时仍然允许复杂的处理发生。

让我们点燃这支蜡烛

就是这样。现在,您可以继续前进并使用无服务器函数和webhooks创建自己的丰富生态系统。以下是一些其他资源,帮助您深入了解Azure Functions。

-Nick Zimmerman

附言 – 以下是一些关于Azure functions的附加资源,您可能会觉得有趣 – 请享用!

让我们为您联系Bird专家。
在30分钟内见证Bird的全部威力。

通过提交,您同意 Bird 可能会就我们的产品和服务与您联系。

您可以随时取消订阅。查看Bird的隐私声明以获取有关数据处理的详细信息。

Newsletter

通过每周更新到您的收件箱,随时了解 Bird 的最新动态。

让我们为您联系Bird专家。
在30分钟内见证Bird的全部威力。

通过提交,您同意 Bird 可能会就我们的产品和服务与您联系。

您可以随时取消订阅。查看Bird的隐私声明以获取有关数据处理的详细信息。

Newsletter

通过每周更新到您的收件箱,随时了解 Bird 的最新动态。

让我们为您联系Bird专家。
在30分钟内见证Bird的全部威力。

通过提交,您同意 Bird 可能会就我们的产品和服务与您联系。

您可以随时取消订阅。查看Bird的隐私声明以获取有关数据处理的详细信息。

R

Reach

G

Grow

M

Manage

A

Automate

Newsletter

通过每周更新到您的收件箱,随时了解 Bird 的最新动态。