405状态码排查步骤
云函数运行报错状态码为405通常涉及代码问题,您可以按照以下步骤进行排查:
1. 检查函数内存大小是否足够
配置内存大小为128MB,实际函数运用内存超过了配置大小,导致函数无法启动并超时。
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 目录下。