以腾讯云云函数服务为例:
第一步:启用云函数服务,新建一个函数服务:
选择“Flask 框架模版”,点击下一步:
在基础配置中设置函数名称,选择触发器配置为如图所示:
请求方法:any
发布环境:发布
鉴权方法:免鉴权
配置完成后点击完成,稍等函数配置完成:
第二步:编辑云代码:
在函数服务-函数管理-函数代码中在线编辑函数代码
(在线编辑器加载有点慢,需要稍等待一会儿…约3分钟…)
在线编辑器加载完毕后,在左侧文件列表中选择“app.py”文件,删除文件内全部内容
并将如下代码复制到“app.py”文件内:
import os # 导入系统OS模块
import requests # 导入请求处理Requests模块
from flask import Flask, jsonify, Response, render_template, request, url_for, send_from_directory # 导入Flask框架相关模块
from werkzeug.utils import secure_filename # 导入工具模块
app = Flask(__name__) # 初始化Flask应用程序
target_url = "https://api.openai.com/" # 设置目标url
# 设置路由指向,处理所有请求方法
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'])
def proxy(path):
# 处理请求头中的Host
headers = {key: value for (key, value) in request.headers if key != 'Host'}
# 发起请求到目标url,并返回响应
resp = requests.request(
method=request.method, # 使用与客户端相同的HTTP动词
url=target_url + path, # 请求的URL目标路径
headers=headers, # 将去除 Host 的请求头添加到目标URL请求头中
data=request.get_data(), # 获取客户端数据并添加到请求对应位置中
cookies=request.cookies, # 获取客户端cookie信息
allow_redirects=False, # 是否重定向
verify=False) # 跳过SSl证书验证,避免HTTP 403 Forbidden等403错误
# 处理过滤掉不需要响应头部属性
exclude_headers = ['content-encoding', 'content-length', 'transfer-encoding', 'connection']
headers = [(name, value) for (name, value) in resp.raw.headers.items() if name.lower() not in exclude_headers]
# 返回请求响应
response = Response(resp.content, resp.status_code, headers)
return response
# 运行应用程序
app.run(port=9000, host='0.0.0.0')
粘贴完毕后,点击“部署”,等待部署完成(1~3分钟)
注意:首次部署未开通API网络,不会自动创建触发器,请在触发管理中开通相关服务,并手动创建触发器
接口调试
部署完成后,在“触发管理”中可以看到触发器的公网访问路径,
此网址可用于端口转发,可以使用 Postman / Apipost 等工具进行测试:
注意: 公网访问路径带有 /release 将其去除后可正常使用
文章末尾固定信息

我的微信
微信扫一扫
Comments