赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 函数计算 FC 2.0
  4. 实践教程
  5. 使用fcapp.run运行您的RESTful应用

使用fcapp.run运行您的RESTful应用

  • 实践教程
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

函数计算支持为每个新创建的HTTP触发器分配子域名fcapp.run,通过该域名可以访问您的RESTful应用。本文介绍如何在不修改代码的情况下,使用fcapp.run访问您的RESTful应用。

背景信息

函数计算支持HTTP触发器,即允许使用HTTP协议来调用函数。函数计算通过一个共享的API Server组件为您提供响应HTTP触发器调用的服务。调用函数时,需要依赖URL中的Path将客户流量路由到客户的函数容器内部。容器内收到的HTTP请求Path会带有函数计算的路由标识。如果您在函数计算部署了RESTful风格的应用,则会出现404报错。

image

最初,函数计算提供了原生的RESTful架构,将每个函数视为一个独立的资源,通常一个函数只负责一小块功能,也就是一个API。如果一个函数只对应一个API,那么在函数代码中也不必去实现一套路由逻辑去响应不同URL Path路径的请求。

image

函数计算现已引入Custom Runtime和Custom Container函数,您可以直接在函数计算中运行自己存量的应用,而不必按照函数计算推荐的架构去拆分自己的应用。社区内比较成熟的项目的开发习惯是在一个程序中开发大量的REST API,因此会存在进程内的路由逻辑,将不同路径的请求转发到不同的方法进行处理。

image

使用fcapp.run调用函数

函数计算为每个新创建的HTTP触发器分配了一个独立的域名,格式为{random_string}.{region_id}.fcapp.run。使用该域名访问函数计算时,函数计算会按照域名进行路由,将流量转发至函数容器内,避免了依赖Path进行路由而对客户代码造成的侵入性。

说明

假设HTTP触发器对应的函数中封装了多个API,分别为/function1、/function2、/function3,那么使用fcapp.run调用的URL如下:

  • {random_string}.{region_id}.fcapp.run/function1

  • {random_string}.{region_id}.fcapp.run/function2

  • {random_string}.{region_id}.fcapp.run/function3

使用fcapp-test.run进行本地网页测试

函数计算的主域名aliyuncs.com无法为客户提供网站类型的业务,所有的函数请求结果将在浏览器中以附件的方式下载,对于网站属性的函数,返回的HTML文本以及JavaScript代码无法正常显示。此时,您可以通过为函数绑定已备案的自定义域名来解决该问题。更多信息,请参见HTTP触发器概述。

您也可以通过测试域名fcapp-test.run以及添加本地的host解析的方式来解决以上问题,请求结果将不会以附件的方式下载,可以正常进行网页调试。示例脚本如下:

# 1. 从页面获取fcapp.run的域名
FC_DOMAIN='serviceName-functionName-vtnazzbxrr.cn-hangzhou.fcapp.run'
FC_TEST_DOMAIN=`echo ${FC_DOMAIN} | sed 's/fcapp.run/fcapp-test.run/g'`
echo "FC域名:${FC_DOMAIN}"
echo "FC测试域名:${FC_TEST_DOMAIN}"

# 2. 查询域名解析的IP
FC_IP=`ping ${FC_DOMAIN} -c 1 | HEAD -1 | awk '{print $3}' | sed 's/[():]//g'`
echo "FC IP: ${FC_IP}"

# 3. 修改host文件,将测试域名的本地解析指向fcapp.run
#    如果没有权限需要手动加
sudo -- sh -c  "printf '\n${FC_IP} ${FC_TEST_DOMAIN}\n' >> /etc/hosts"
cat /etc/hosts

# 4. 使用测试域名在浏览器访问函数
curl -v "${FC_TEST_DOMAIN}"
            

使用函数计算运行WordPress官方镜像

函数计算支持您在不修改任何业务代码的前提下迁移自己的RESTful应用。下面以迁移WordPress应用为例进行说明。

前提条件

  • 函数计算

    • 创建服务

  • 云数据库RDS

    • 可选:快速创建RDS MySQL实例

    • 创建数据库和账号

    说明
    • 您也可以使用已有RDS MySQL实例,并为WordPress服务初始化相应的账号以及数据库。

    • 创建RDS MySQL实例时,请确保为其设置的VPC与函数计算的服务的VPC配置保持一致,且白名单配置中已添加函数计算服务的网络配置中vSwitch的IP地址段。关于函数计算的网络配置,请参见配置网络。关于RDS MySQL数据库白名单的配置,请参见配置数据库访问IP地址白名单。

  • 容器镜像服务

    • 已拉取WordPress镜像并推送到阿里云容器镜像仓库。具体操作,请参见使用个人版实例推送拉取镜像。

    说明

    支持个人版和企业版实例推送拉取镜像,本文以个人版实例为例进行说明。

操作步骤

  1. 登录函数计算控制台,在左侧导航栏,单击服务及函数。
  2. 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
  3. 在函数管理页面单击创建函数,然后选择使用容器镜像创建,完成以下配置后,单击创建。

    选择WordPress官方镜像,并设置容器内监听端口为80。具体操作步骤,请参见创建Custom Container函数。

    image.png

  4. 修改函数配置,将数据库配置以环境变量的方式注入函数容器内。

    配置环境变量的步骤,请参见环境变量。

    image.png

    需设置的环境变量与数据库配置的对应关系如下所示:

    • WORDPRESS_DB_HOST:您为RDS MySQL实例创建的数据库连接内网地址。

    • WORDPRESS_DB_NAME:您创建的数据库账号。

    • WORDPRESS_DB_PASSWORD:您创建的数据库账号密码。

    • WORDPRESS_DB_USER:您创建的数据库名称。

  5. 在浏览器地址栏输入函数计算为HTTP触发器分配的域名测试函数。

    函数创建完成后,函数计算自动为其创建一个HTTP触发器,您可以从触发器的配置信息中获取域名信息。WordPress应用对应的API会以该域名为根路径进行调用。

    使用以下测试地址测试前需先单击该地址,在弹出的面板单击下载本地系统对应的配置脚本,并执行。执行成功后,才能通过浏览器访问该地址。

    image.png

    image.png

相关文档

  • 使用子域名作为HTTP触发器URL对函数进行测试,能有效避免404报错。更多信息,请参见当我使用浏览器或cURL方式访问函数时出现404怎么办?。

  • 对外提供网站类型服务只能通过已备案域名来实现。即通过配置自定义域名,将域名与函数进行绑定,使用自己的域名对外提供服务。更多信息,请参见配置自定义域名。

相关文章

低成本跨境文件传输 2025-04-16 14:22

本文介绍如何通过OSS加速域名,配合函数计算和云工作流,快速打造低成本、高效的跨境对象存储数据同步传输系统。

使用函数计算实现网站的文件处理 2025-04-16 14:22

本文介绍如何通过函数计算实现文件管理网站的功能,例如自动解压文件、自动打包压缩、自动处理图片分辨率等。 应用场景 某图片网站数据管理主要

使用函数计算搭建前端CICD系统 2025-04-16 14:22

本文介绍通过函数计算搭建前后端分离架构下的前端静态资源部署服务。 背景信息 企业一般使用GitLab托管前端代码,搭建Jenkins监听

智能家电利用函数计算获取天气信息 2025-04-16 14:22

本文介绍使用函数计算,结合阿里云IoT物联网平台,实现IoT设备获取天气信息的最佳实践。 应用场景

函数计算冷启动优化最佳实践 2025-04-16 14:22

本文介绍如何通过设置函数计算的预留模式实例优化按量模式实例的冷启动和函数性能。 什么是冷启动

异步任务最佳实践 2025-04-16 14:22

异步任务可以实时感知业务状态、控制执行函数,让您对一些异常情况进行更好的处理,例如报警通知、自动化重试等情况。本文介绍函数计算异步任务的最佳实践。 背景信息

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号