4、第一个 Serverless 函数:使用阿里云函数计算创建并部署一个 Hello World 函数,理解触发器和基础配置

好,咱们正式开始动手了。

前面聊了那么多概念和架构,说实话,不亲手敲一个函数跑起来,总觉得心里没底。我个人习惯是,学任何新技术,先让一个最简单的例子跑通,再慢慢往里填东西。今天我们就用阿里云函数计算(FC),搞一个 Hello World 函数出来。

4.1 准备工作:你需要什么?

别慌,东西不多。你只需要:

  • 一个阿里云账号(实名认证过的)
  • 开通函数计算服务(在控制台搜一下“函数计算 FC”就行)
  • 一点点耐心(嗯,这个最重要)

我记得第一次用 FC 的时候,光找入口就花了五分钟。现在方便多了,直接在搜索框里打“函数计算”就能跳转。

4.2 创建第一个函数:Hello World

登录控制台后,点击“创建函数”。你会看到几个选项:

  • 事件函数:最常用,处理 HTTP 请求或事件触发
  • HTTP 函数:专门处理 HTTP 请求,自带 URL
  • 模板函数:官方预置的一些示例

我们选“事件函数”,运行环境选 Python 3.9(你熟悉哪个就用哪个,Node.js、Java 都行)。

函数名称我建议起得有意义一点,比如 hello-world-demo。别学我当年,起个 test123,后来项目多了根本分不清谁是谁。

创建完成后,你会看到一段默认代码:

# -*- coding: utf-8 -*-
import json

def handler(event, context):
    return "Hello, World!"

就这么几行。说白了,这就是一个标准的 Python 函数,接收两个参数:

  • event:触发事件的数据,比如 HTTP 请求体、OSS 文件信息等
  • context:运行时上下文,包含函数的基本信息,比如超时时间、内存大小等
小提示: 你可以把 handler 理解成程序的入口。就像 C 语言的 main 函数一样,FC 会自动调用它。

4.3 配置触发器:让函数能被调用

函数写好了,怎么调用它?这就轮到触发器上场了。

触发器,说白了就是“谁可以叫醒这个函数”。常见的有:

  • HTTP 触发器:通过 URL 访问,像调普通 API 一样
  • 定时触发器:每天几点几分自动执行
  • OSS 触发器:文件上传到 OSS 时触发
  • 日志服务触发器:日志写入时触发

我们这次用 HTTP 触发器,因为最直观。在函数详情页找到“触发器管理”,点击“创建触发器”,类型选“HTTP 触发器”。

这里有个坑,我曾经踩过:认证方式。默认是“签名认证”,需要你配 AK/SK 才能调。如果你只是测试,建议选“无需认证”,省得折腾。当然,生产环境千万别这么干。

创建成功后,你会得到一个 URL,类似:

https://xxx.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/hello-world-demo/hello-world-demo/

把这个 URL 复制到浏览器里打开,你就能看到:

Hello, World!

嗯,第一个 Serverless 函数,跑起来了。

4.4 理解基础配置:内存、超时、并发

函数跑通了,但别急着走。咱们看看几个关键配置,这些在生产环境里特别重要。

配置项 说明 我的建议
内存 函数运行时可用的最大内存,单位 MB 测试用 128MB 够了,生产建议 512MB 起步
超时时间 函数最长执行时间,超时会被强制终止 默认 3 秒,我一般设 10 秒,避免误杀
并发实例数 同一时刻最多能运行多少个函数实例 默认 10,高并发场景要调大,但注意费用
环境变量 运行时可以读取的键值对 敏感信息别写死代码里,放这里最安全
注意: 超时时间设得太短,函数可能还没跑完就被杀了。我曾经有个数据处理任务,默认 3 秒根本不够,查了半天日志才发现是超时了。后来改成 30 秒,一切正常。

4.5 避坑指南:我踩过的几个雷

说实话,第一次用 Serverless 的人,十有八九会碰到这些问题:

  • 冷启动慢:函数长时间没调用,第一次请求会慢几秒。解决办法是设置“预留实例”,让函数一直热着。
  • 日志查不到:函数执行完,去日志服务里查不到。记得在函数配置里开启“日志功能”,并关联一个 Logstore。
  • 代码包太大:FC 对代码包大小有限制(压缩后 50MB)。如果你的依赖多,建议用层(Layer)来管理公共依赖。

我曾经因为没开日志,排查一个线上问题花了整整一下午。后来学乖了,每个函数创建完第一件事就是配日志。

4.6 小结:你学到了什么?

这一章我们做了三件事:

  1. 创建了一个 Hello World 函数
  2. 配置了 HTTP 触发器,通过 URL 调用它
  3. 理解了内存、超时、并发等基础配置

说白了,你已经迈出了 Serverless 实战的第一步。别小看这个 Hello World,它背后的流程——创建、配置、触发、调试——和后面所有复杂函数是一样的。

下一章,我们会深入函数的输入输出,看看 event 和 context 里到底藏了什么好东西。

核心要点:
  • 触发器是函数的“门铃”,决定了谁来叫醒函数
  • 基础配置(内存、超时)直接影响函数的稳定性和费用
  • 日志一定要开,不然出问题你连查的地方都没有

好,今天就到这儿。去试试你的第一个函数吧,有问题随时翻翻文档,或者回来看看这一章。