从发展角度看Serverless
.yml格式
YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,它使用简洁的结构和缩进来表示数据。它被广泛用于配置文件和数据交换的场景,具有易读性和易写性的特点。
serverless.yml配置
在项目的根目录下增加serverless.yml
文件,例如:
service: my-service
provider:
name: aliyun
runtime: nodejs14
region: cn-hangzhou
functions:
hello:
handler: index.handler
events:
- http:
path: hello
method: get
在这个示例中,我们定义了一个名为my-service的服务,使用阿里云作为云服务提供商,并指定了Node.js 14作为函数的运行环境。我们还定义了一个名为hello的函数,它处理HTTP GET请求,并将请求路径设置为/hello。
你可以根据自己的需求进行修改和扩展,例如添加其他函数、配置数据库连接、设置定时触发器等。
http触发器本
# 1. 获取触发器fcapp.run的域名
FC_DOMAIN='gethello-test-egvazcriuf.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. 本地调试,使用 http://gethello-test-egvazcriuf.cn-hangzhou.fcapp-test.run 域名
这段代码的作用是进行本地调试,步骤如下:
1. 获取触发器服务的域名,并将其存储在 FC_DOMAIN 变量中。
2. 使用 ping 命令查询 FC_DOMAIN 的 IP 地址,并将其存储在 FC_IP 变量中。
3. 将测试域名的本地解析指向 FC_DOMAIN,以便在本地进行测试。如果没有权限,需要手动修改 /etc/hosts 文件。测试域名存储在 FC_TEST_DOMAIN 变量中。
4. 在本地进行调试时,使用 http://gethello-test-egvazcriuf.cn-hangzhou.fcapp-test.run 域名,即测试域名。
这段代码适用于阿里云函数计算(Function Compute)的本地调试场景,其中 FC_DOMAIN 是云端触发器服务的域名,FC_TEST_DOMAIN 是测试域名,FC_IP 是云端触发器服务的 IP 地址。通过修改 /etc/hosts 文件,将测试域名指向云端触发器服务的 IP 地址,实现本地调试。