通过 HTTP 请求执行 Azure 函数

已完成

HTTP 请求是大多数平台和设备上的常见操作。 无论是请求在字典中查找字词,还是获取当地天气情况,都会发送 HTTP 请求。 利用 Azure Functions,我们能创建一条在收到 HTTP 请求时执行的逻辑。

在本单元中,你将了解如何创建函数以及如何通过 HTTP 触发器调用此函数。 你还将了解到一些 HTTP 触发器可用的自定义选项。

什么是 HTTP 触发器?

HTTP 触发器是一种在收到 HTTP 请求时执行代码的触发器。 HTTP 触发器具有多种功能和自定义项,包括:

  • 通过提供密钥实现授权访问。
  • 限定哪些 HTTP 谓词受支持。
  • 将数据返回给调用方。
  • 通过查询字符串参数或请求正文接收数据。
  • 支持使用 URL 路由模板修改函数 URL。

创建 HTTP 触发器时,需要提供触发器的名称并选择授权级别。

什么是 HTTP 触发器授权级别?

HTTP 触发器授权级别是一个标记,它表示传入的 HTTP 请求是否需要 API 密钥进行授权。

存在三种授权级别:

  1. 函数
  2. 匿名
  3. 管理员

“函数”和“管理员”级别基于“密钥”。 必须提供密钥进行授权,才可发送 HTTP 请求。 存在两种类型的密钥:“函数”和“主机”。 两种密钥的区别在于其作用域。 函数密钥特定于一个函数。 主机密钥适用于函数应用内的所有函数。 如果你的授权级别设置为“函数”,则你可使用函数密钥或主机密钥。 如果你的授权级别设置为“管理员”,则必须提供主机密钥。

重要

由于主机密钥提供对函数应用的提升访问权限,因此必须安全地传输和存储它们。

“匿名”级别是指无需授权。 本练习使用“匿名”授权级别。

如何创建 HTTP 触发器

如同计时器触发器一样,可通过 Azure 门户创建 HTTP 触发器。 在 Azure 函数中,从预定义的触发器类型列表中选择“HTTP 触发器”,然后,输入要执行的逻辑并进行任何自定义,例如限制某些 HTTP 谓词的使用。

有必要了解的一项设置是“请求参数名称”。 此设置是一个表示参数名称的字符串,该参数中包含传入的 HTTP 请求的相关信息。 参数名称默认为 req。

如何调用 HTTP 触发器

要调用 HTTP 触发器,需发送 HTTP 请求到函数的 URL。 若要获取此 URL,请转到函数的代码页并选择“获取函数 URL”链接。

Screenshot of the Azure portal showing a Functions App pane with the app's Get function URL button highlighted.

获得函数 URL 后,即可发送 HTTP 请求。 如果函数接收数据,请记住,你可使用查询字符串参数或通过请求正文提供数据。

HTTP 触发器在收到对其函数 URL 的 HTTP 请求时执行。 HTTP 触发器支持接收数据、执行逻辑,以及将数据返回给调用方(可选)。