函数计算搭建 Serverless Web 应用(二)- 自定义域名

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 绑定自定义域名可以允许用户通过自定义域名访问 FC 的函数,配合 HTTP 触发器使用,为使用函数计算搭建 Web 应用提供便利。

简介

阿里云 函数计算(Function Compute) 是事件驱动的全托管计算服务,是阿里云的 Serverless 计算平台。基于函数计算构建应用,您无需管理服务器等基础设施,而是专注于应用逻辑的开发,大幅提高开发效率。

文章 函数计算搭建 Serverless Web 应用(一)- HTTP 触发器 中阐述了 Web 应用(Serverless web backend) 是函数计算很重要的一个使用场景。相比于传统的在服务器上搭建 web 应用,函数计算无需您管理服务器等基础设施,只需编写代码并上传,函数计算会为您准备好计算资源,以 弹性可靠 的方式运行您的代码,实现毫秒级别弹性伸缩,轻松应对峰值压力。

HTTP 触发器为用户提供一个形如 <account_id>.<region>.fc.aliyuncs.com/<version>/proxy/<serviceName>/<functionName>/[action?queries] 的默认的 endpoint,但是用户希望可以通过自定义域名对外提供服务,原有的 Web 应用可以通过自定义域名进行访问,迁移到函数计算后,只能通过默认 endpoint 访问,实在强人所难。

因此函数计算在 HTTP 触发器后推出自定义域名的功能。

自定义域名

绑定自定义域名可以允许用户通过自定义域名访问 FC 的函数,配合 HTTP 触发器使用,为使用函数计算搭建 Web 应用提供便利。

您可以在函数计算上绑定自定义域名,并设置不同路径到不同服务的不同函数,然后就可以通过自定义域名访问不同的函数了,您的 HTTP Request 会原封不动地传递给函数,FC 不会对您的 HTTP Request 进行任何处理。

例如,您拥有一个域名为 api.app.com 的网站,从成本和弹性扩容角度考虑,您希望将 Web 服务迁移至函数计算,并且不影响外部服务,也就是对外提供服务的链接不变,那么您可以为您的应用绑定自定义域名。

ATA_CNAME.png

流程对比:

流程 自定义域名绑定前 自定义域名绑定后
部署阶段 1.编写应用代码并部署到用户服务器
2.为域名备案
3.设置 DNS 解析到用户服务器 IP
4.利用 web 框架设置路径和服务的对应关系
1.在函数计算为应用编写函数并设置 HTTP 触发器
2.域名在阿里云备案或接入阿里云备案
3.DNS 解析到 FC 地址:<accountID>.<region>.fc.aliyuncs.com
4. 在 FC 绑定域名,并设置路径与函数的对应关系
访问阶段 1.访问 api.app.com/login
2.DNS 解析到用户服务器 IP
3.api.app.com/login 访问用户服务器的服务
1.访问 api.app.com/login
2.DNS 解析到 FC 地址
3.api.app.com/login 访问部署在 FC 的函数

使用流程

  • 创建 HTTP 触发器并且编写函数 ;

  • 绑定自定义域名

    • 步骤一: 域名需要在阿里云备案或接入阿里云备案;

    • 步骤二:域名需要解析到您的 endpoint 上,即需要设置域名的 CNAME 到您对应区域的 endpoint,先设置 CNAME 再到函数计算进行绑定;

      • 域名解析请参考文章 设置域名解析
      • 例如:您的域名为 app.com,您的 accountID 为 12345,区域为上海,需要设置 app.com 的 CNAME 为 12345.cn-shanghai.fc.aliyuncs.com
    • 步骤三:在函数计算绑定自定义域名,并设置不同的路径到不同函数。

      • 同一域名绑定的函数必须在同一区域,可以属于不同服务
      • 例如,您可以设置路径 “/a” 的请求到 service1function1 执行,设置路径 “/b” 的请求到 service2function2 执行;
      • 只有设置了 HTTP 触发器 的函数才可以通过自定义域名的请求触发执行。

路由匹配规则

您需要在自定义域名处设置路径和函数的对应关系,即请求的路径不同可以触发不同函数执行。函数计算支持精确匹配和模糊匹配,具体规则如下:

  • 支持精确匹配和模糊匹配。

    • 精确匹配是设置的路径和到来的请求完全一致才可以匹配,例如 /a 触发服务 s1 下的 f1(以下统一简写成 s1/f1),那么路径为 /a/ 的请求无法触发 f1 的执行。
    • 支持通配符 *,且只能放到路径的最后,比如 /login/* 表示路径前缀为 /login/ 的请求,/login/* 对应 s2/f2,那么 /login/a/login/b/c/d 都会触发 f2 的执行。
  • 匹配顺序为:精确匹配 -> 模糊匹配
  • 匹配优先级为:最长前缀匹配

示例:
域名为 api.app.com,设置的路由匹配规则如下:

Path ServiceName FunctionName
/ s1 f1
/* s2 f2
/login s3 f3
/login/a s4 f4
/login/* s5 f5

最终的匹配结果:

RequestURI MatchedServiceName MatchedFunctionName MatchedPath
api.app.com s1 f1 /
api.app.com/user s2 f2 /*
api.app.com/login s3 f3 /login
api.app.com/login/a s4 f4 /login/a
api.app.com/login/a/b s5 f5 /login/*
api.app.com/login/b s5 f5 /login/*

总结

绑定自定义域名可以允许用户通过自定义域名访问 FC 的函数,配合 HTTP 触发器使用,可以快速搭建性能稳定弹性可扩容的 Web 应用,可以说是十分方便了。

您在使用过程中遇到任何问题都可以随时 联系我们,函数计算团队所有工程师都会在群里实时进行答疑,没错,所有工程师,任何问题,随时联系。

期待您的使用~~

参考文档

绑定自定义域名
绑定自定义域名示例
联系我们

相关文章
|
2月前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
缓存 Serverless API
函数计算产品使用问题之不同环境下如何绑定自定义域名
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
域名解析 网络协议 Serverless
函数计算产品使用问题之绑定自定义域名的步骤是什么
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
运维 网络协议 Serverless
函数计算产品使用问题之如何绑定自定义域名
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
【Azure 应用服务】Web.config中设置域名访问限制,IP地址限制访问特定的页面资源 (Rewrite)
【Azure 应用服务】Web.config中设置域名访问限制,IP地址限制访问特定的页面资源 (Rewrite)
|
3月前
|
存储 运维 Serverless
函数计算产品使用问题之如何使用自定义域名访问函数
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
8天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
46 3
|
14天前
|
设计模式 测试技术 持续交付
开发复杂Web应用程序
【10月更文挑战第3天】开发复杂Web应用程序
28 2
|
16天前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
35 3
|
1月前
|
数据可视化 图形学 UED
只需四步,轻松开发三维模型Web应用
为了让用户更方便地应用三维模型,阿里云DataV提供了一套完整的三维模型Web模型开发方案,包括三维模型托管、应用开发、交互开发、应用分发等完整功能。只需69.3元/年,就能体验三维模型Web应用开发功能!
221 8
只需四步,轻松开发三维模型Web应用

相关产品

  • 函数计算