报错:{"RequestId":"1-69d72624-108afc-45d4bd4076b8","Code":"CAExited","Message":"Function instance exited unexpectedly(code 2, message:no such file or directory) with start command ''. \nLogs:python3: can't open file '/code/index.py': [Errno 2] No such file or directory"}
报错核心原因:启动命令和文件名不匹配
这个报错的意思是:函数计算找不到/code/index.py文件,因为代码文件名叫app.py,但启动命令还在找index.py
第四步:添加依赖文件requirements.txt
- 回到函数详情页,点击顶部标签栏的「配置」→ 「运行时配置」
- 找到「启动命令」输入框:
- 如果是空的 → 填入
python3 app.py - 如果是
python3 index.py→ 修改成python3 app.py
- 如果是空的 → 填入
- 点击页面底部的「保存」按钮
- 回到「代码」标签页,全选删除
app.py里的所有默认代码 - 把下面的完整代码原封不动粘贴进去(适配你的成都 Bucket
ourselves):from flask import Flask, Response import oss2 app = Flask(__name__) # ========== 替换成你自己的RAM子账号AK/SK ========== OSS_ACCESS_KEY_ID = "你的AccessKey ID" OSS_ACCESS_KEY_SECRET = "你的AccessKey Secret" # ================================================ # 成都地域OSS配置(已适配你的Bucket名ourselves) OSS_ENDPOINT = "osswe-cn-chengdu.aliyuncs.com" OSS_BUCKET = "ourselves" # 初始化OSS客户端 auth = oss2.Auth(OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET) bucket = oss2.Bucket(auth, OSS_ENDPOINT, OSS_BUCKET) # 处理we.html请求,强制返回网页格式 @app.route("/we.html") def get_html(): try: file_obj = bucket.get_object("we.html") content = file_obj.read() return Response(content, content_type="text/html; charset=utf-8") except Exception as e: return Response(f"Error: {str(e)}", status=500) # 处理音频文件请求 @app.route("/<path:filename>") def get_file(filename): try: file_obj = bucket.get_object(filename) content_type = file_obj.headers.get("Content-Type", "application/octet-stream") return Response(file_obj.read(), content_type=content_type) except Exception as e: return Response("404 Not Found", status=404) if __name__ == "__main__": app.run(host="0.0.0.0", port=9000) - 把代码里的
你的AccessKey ID和你的AccessKey Secret替换成你自己的 RAM 子账号密钥 - 点击代码页的「保存」→「部署代码」(橙色按钮),等待 1 分钟部署完成
- 在代码编辑区左侧,右键点击
hello_world文件夹 → 「新建文件」 - 文件名填:
requirements.txt - 文件内容填:
flask oss2点击「保存」,再点一次「部署代码」
第五步:重新访问链接
部署完成后,再次访问:https://audio-miaomiaomiao-mpwulqeoed.cn-chengdu.fcapp.run/we.html即可