函数计算 HTTP 触发器支持异步,解放双手搭建 Web 服务

简介: 函数计算 HTTP 触发器支持异步,解放双手搭建 Web 服务

• 对于有并发限制的场景,客户的突增流量在同步调用的场景下会被限流,从而在客户不做错误处理的时候造成一定请求失败。
场景1:脉冲式压测场景。
场景2:限时线上促销活动。
在这些场景下,客户可以通过异步调用将 HTTP 触发和函数执行进行解耦,提升执行效率和执行成功率,降低开销。
异步调用 at least once 的保证, 目标投递的能力,以及具有可观测性和可管控能力的异步任务模式能更好地让客户享受到函数托管服务的便利,解放客户双手。
HTTP 触发器不支持异步调用时,为了满足需求,客户往往需要通过函数转跳的方式间接实现 HTTP 触发异步调用。具体流程如下:
客户可以创建两个函数,函数 A 为 HTTP 函数,通过 HTTP 同步调用;函数 B 为事件函数,可以由 HTTP 函数通过 SDK 进行异步调用。但是该方案的缺点也很明显:
• 成本高:每次异步调用都需要两次触发。
• 无法实现流控全托管:第一层函数为同步调用,面对突增流量被流控,需要客户自行做自适应,从而无法享受异步调用的流控全托管。
• 增加客户开发维护成本:需要开发和维护两个函数来使用异步功能。
新功能:HTTP 触发器支持异步调用
函数计算当前上线支持了 HTTP 触发器进行异步调用的功能。使用本功能,客户需要准备好一个 HTTP 函数和一个 HTTP 触发器。
客户可以通过函数计算控制台、SDK 和 Serverless Devs 工具来进行 HTTP 函数和触发器的创建。HTTP 触发器客户可以自行配置,如果不进行配置,在创建 HTTP 函数的时候,函数计算会为您自动创建一个默认触发器。
HTTP 触发器需要通过请求头 X-Fc-Invocation-Type 来选择触发方式,默认为同步触发,如果需要进行异步触发,则可以在请求头中添加 {"X-Fc-Invocation-Type":"Async"} 从而实现异步触发。
HTTP 异步调用测试
1) 通过控制台进行测试
在函数代码处进行测试,通过勾选异步调用进行异步调用测试。
在测试函数侧可以通过勾选 "我想通过异步的方式进行调用" 实现异步调用测试。
2) 通过 cURL 进行测试
curl -v -H "X-Fc-Invocation-Type: Async" https://http-*.cn-shenzhen.fcapp.run/$path
测试结果查看:
触发完成后会立即返回函数计算接收请求的结果。其中状态码 202 表示请求成功,其余表示请求出现错误。请求 ID 也会在请求头中一并返回,您可以通过返回的请求 ID 追踪异步请求的执行状态。为了更好地观测请求请求执行状态,增加对函数执行的管控,您可以开通异步任务[1]。
可以通过请求 ID 在控制台进行执行结果日志的查询:
对于开通异步任务的请求,可以通过异步任务列表进行状态监测和查询:
对于异步执行结果的回调可以参考函数回调文档[2]。
最佳实践
此处以 HTTP 触发视频转码为例,介绍如何通过结合 Serverless Devs 与控制台,实现 HTTP 触发异步任务。
前提条件:
• 安装 Serverless Devs[3]
• 配置 Serverless Devs[4]
• 创建 OSS 存储空间[5],以便后续测试用例中对 OSS 存储空间进行访问和内容变更。
• 创建 RAM 角色,并授予 OSSFullAccess 权限策略,您也可以直接使用 AliyunFCDefaultRolePolicy 策略。关于权限策略的详细信息,请参见创建 RAM 角色[6]。

相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
Serverless Python
借助 serverless 将 MCP 服务部署到云端
本文介绍了如何将 MCP 服务通过 SSE 协议部署到云端,避免本地下载和启动的麻烦。首先,使用 Python 实现了一个基于 FastMCP 的网络搜索工具,并通过设置 `transport='sse'` 启用 SSE 协议。接着,编写客户端代码测试服务功能,确保其正常运行。随后,利用阿里云函数计算服务(FC 3.0)以 Serverless 方式部署该服务,包括创建函数、配置环境变量、添加依赖层以及部署代码。最后,提供了客户端测试方法和日志排查技巧,并展示了如何在不同工具(如 Cherry-Studio、Cline 和 Cursor)中配置云端 MCP 服务。
1718 11
借助 serverless 将 MCP 服务部署到云端
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
弹性计算 人工智能 自然语言处理
魔搭社区与函数计算:高效部署开源大模型的文本生成服务体验
在数字化时代,人工智能技术迅速发展,开源大模型成为重要成果。魔搭社区(ModelScope)作为开源大模型的聚集地,结合阿里云函数计算,提供了一种高效、便捷的部署方式。通过按需付费和弹性伸缩,开发者可以快速部署和使用大模型,享受云计算的便利。本文介绍了魔搭社区与函数计算的结合使用体验,包括环境准备、部署应用、体验使用和资源清理等步骤,并提出了改进建议。
|
机器学习/深度学习 监控 物联网
函数即服务(FaaS)
函数即服务(FaaS)
928 6
|
存储 Serverless 数据库
科普文:云计算服务类型IaaS, PaaS, SaaS, BaaS, Faas说明
本文介绍了云计算服务的几种主要类型,包括IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、BaaS(后端即服务)和FaaS(函数即服务)。每种服务模式提供了不同的服务层次和功能,从基础设施的提供到应用的开发和运行,再到软件的交付使用,满足了企业和个人用户在不同场景下的需求。文章详细阐述了每种服务模式的特点、优势和缺点,并列举了相应的示例。云计算服务的发展始于21世纪初,随着互联网技术的普及,这些服务模式不断演进,为企业和个人带来了高效、灵活的解决方案。然而,使用这些服务时也需要注意服务的稳定性、数据安全性和成本等问题。
13409 5
|
API C#
异步轮询 Web API 的实现与 C# 示例
异步轮询 Web API 的实现与 C# 示例
478 1
|
数据库 开发者 Python
实战指南:用Python协程与异步函数优化高性能Web应用
在快速发展的Web开发领域,高性能与高效响应是衡量应用质量的重要标准。随着Python在Web开发中的广泛应用,如何利用Python的协程(Coroutine)与异步函数(Async Functions)特性来优化Web应用的性能,成为了许多开发者关注的焦点。本文将从实战角度出发,通过具体案例展示如何运用这些技术来提升Web应用的响应速度和吞吐量。
200 1
|
JavaScript 前端开发 数据库
Tornado框架:异步时代的Web开发,它能否颠覆你的编码世界观?
【8月更文挑战第31天】构建高性能Web应用时,选择合适工具至关重要。Tornado不仅是一个Web框架,还内置高性能HTTP服务器,无需外部依赖即可独立运行,区别于需结合Gunicorn或uWSGI的Django和Flask。本文将探讨Tornado如何革新Web开发,并提供示例。
337 1
|
存储 运维 安全
函数计算产品使用问题之如何获取到访问其他阿里云服务所需的AccessKey、SecretKey或STS Token
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
缓存 运维 Serverless
函数计算产品使用问题之如何创建HTTP触发器
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

热门文章

最新文章