tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表

启动文件说明

PDF
聚焦模式
字号
最后更新时间: 2024-03-21 18:35:11
Web 函数基于函数内置的标准语言镜像环境中,您需要创建一个可执行文件 scf_bootstrap 以启动 Web Server,并将该文件和您的代码文件一起打包部署,完成 Web 函数创建。实际处理请求时,您的 Web Server 通过监听指定的9000端口接收 HTTP 请求,并转发给后端服务完成逻辑处理并返回给用户。

启动文件作用

scf_bootstrap 为 Web Server 的启动文件,保证您的 Web 服务正常启动并监听请求。除此之外,您还可以根据需要在 scf_bootstrap 中自定义实现更多个性化操作:
设定运行时依赖库的路径及环境变量等。
加载自定义语言及版本依赖的库文件及扩展程序等,如仍有依赖文件需要实时拉取,可下载至 /tmp 目录。
解析函数文件,并执行函数调用前所需的全局操作或初始化程序(如开发工具包客户端 HTTP CLIENT 等初始化、数据库连接池创建等),便于调用阶段复用。
启动安全、监控等插件。
注意:
云函数 SCF 仅支持读取 scf_bootstrap 作为启动文件名称,其它名称将无法正常启动服务。
在腾讯云标准环境下,仅 /tmp 目录可读可写,输出文件时请注意选择 /tmp 路径,否则会导致服务因缺少写权限而异常退出。

使用前提

需具有可执行权限,请确保您的 scf_bootstrap 文件具备777或755权限,否则会因为权限不足而无法执行。
能够在 SCF 系统环境(CentOS 7.6)中运行。
如果启动命令文件是 shell 脚本,第一行需有 #!/bin/bash
启动命令必须为绝对路径 /var/lang/${specific_lang}${version}/bin/${specific_lang},否则无法正常调用,详情请参见 标准语言环境绝对路径
建议使用监听地址为 0.0.0.0,不可以使用内部回环地址 127.0.0.1
结尾必须以 LF 回车结束。

创建方式

本地打包上传
控制台快速创建
您可以本地编写您的 scf_bootstrap 启动文件,确保文件权限满足要求后,和项目代码一起打包部署在 Web 函数上。
您可以在 Serverless 控制台 中创建 Web 函数。 创建函数 流程中,在高级配置 > 启动命令中编辑您的启动文件,云函数 SCF 为常用 Web 框架提供了通用启用模板,您也可以根据实际情况进行修改。如下图所示:

函数创建完成后,控制台将自动把您的代码和 scf_bootstrap 一起打包部署。
注意:
控制台配置仅在上传的代码里未检测到 scf_bootstrap 时生效,如果您的项目里有 scf_bootstrap 文件,系统会以项目里的 scf_bootstrap 为准进行部署。
部署完成后,您可以在代码编辑器中查看 scf_bootstrap 文件并进行编辑。如下图所示:



常见错误定位

执行文件 scf_bootstrap 作为容器启动命令,必须保证容器可以正常启动运行,执行代码逻辑,因此,请确保您的启动命令写法正确。如遇到 405 错误码信息,通常为执行文件无法正常运行导致,请确保您的启动文件写法正确。

标准语言环境绝对路径

语言版本
绝对路径
Node.js 16.13
/var/lang/node16/bin/node
Node.js 14.18
/var/lang/node14/bin/node
Node.js 12.16
/var/lang/node12/bin/node
Node.js 10.15
/var/lang/node10/bin/node
Python 3.7
/var/lang/python37/bin/python3
Python 3.6
/var/lang/python3/bin/python3
Python 2.7
/var/lang/python2/bin/python
PHP 8.0
/var/lang/php80/bin/php
PHP 7.4
/var/lang/php74/bin/php
PHP 7.2
/var/lang/php7/bin/php
PHP 5.6
/var/lang/php5/bin/php
JAVA 11
/var/lang/java11/bin/java
JAVA 8
/var/lang/java8/bin/java

常见 Web Server 启动命令模板

Nodejs
Python
PHP
#!/bin/bash
export PORT=9000
/var/lang/node12/bin/node app.js # 改为您自己的启动函数名
#!/bin/bash
export PORT=9000
/var/lang/python3/bin/python3 app.py # 改为您自己的启动文件名
#!/bin/bash
/var/lang/php7/bin/php -c /var/runtime/php7 -S 0.0.0.0:9000 hello.php # 改为您自己的入口函数名


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈