云函数 状态码相关问题

这篇说说腾讯云函数运行报错状态码405的排查步骤,核心原因是代码问题,包括内存不足、监听端口错误、启动文件权限或格式错误、目录权限限制及tmp目录覆盖。 内存不足:实际使用超过128MB配置导致超时,需调大内存。 监听端口:需设置为0.0.0.0:9000,非127.0.0.1。 文件权限:scf_bootstrap需755/777权限且为UNIX格式。

相关产品
云函数 产品页,含版本规格、价格与购买入口。

一、405状态码排查步骤

云函数运行报错状态码为405通常涉及代码问题,你可以按照以下步骤进行排查:

二、1. 检查函数内存大小是否足够

配置内存大小为128MB,实际函数运用内存超过了配置大小,导致函数无法启动并超时。

建议:调大内存配置。你可以登录 Serverless 控制台,选择函数,在函数管理页中,增加内存配置。如下:

三、2. 检查监听端口设置

容器内部的 HTTP Server 服务需要监听 0.0.0.0:9000端口(不能是127.0.0.1:9000),而不是容器外部宿主机端口。

建议:在本地环境中启动容器并检查服务是否能够正常启动。

四、3. 检查 scf_bootstrap 文件的权限

确保 scf_bootstrap 文件的权限设置为755或777。另外在 Linux 上,可以尝试执行./scf_bootstrap命令,如果显示类似下面的内容,很可能是 DOS 格式:

建议:使用 vim 编辑器打开 scf_bootstrap 文件,执行:set ff命令查看文件格式,验证是否为 UNIX 文件格式。如果不是,可以使用:set fileformat=unix命令将其更改为 UNIX 文件格式。

五、4. 检查其他目录的读写权限

只能有 tmp 目录可写,其他目录都是只读(readonly) 。

建议:在本地启动容器排查,可以使用docker diff命令排查修改的文件。

六、5. 检查容器镜像内 tmp 读写目录覆盖

容器启动后会覆盖 tmp 目录,即原容器镜像内 tmp 目录下的内容会被覆盖。启动依赖文件不能放在 tmp 目录下。

赞 (0)
上一篇 4天前
下一篇 4天前