云函数实现 Github API 访问加速

前言

由于懂的都懂的原因,国内访问 Github API 不是很稳定,最近写的小程序希望在客户端通过 Github API 拉取一些信息,然后就有了这个方法。

本文采用华为云函数工作流实现(免费的不用白不用),其他云函数理论上也可以实现。

CF Workers 我测试的时候会反向加速,对网络环境比较自信的话也可以尝试使用。

步骤

Step 1. 环境配置

注册账号,开通函数工作流,这里就不多说了,相信大家都会搞。

Step 2. 创建函数

新建一个函数

这里选事件函数,测试的时候 HTTP 函数依赖管理有点问题。

环境这里我选个熟悉的 python,如果你更熟悉其他语言写 proxy 也可以选其他的。

Step 3. 编写函数

在编辑器里写好代码后记得 Ctrl+S 保存或者点下部署,把代码更上去。

这里提供一个简单粗暴的 python 透明代理写法

import os
import json
import base64
import requests

def handler(event, context):
    header = {k:v for k, v in event["headers"].items() if k.lower() not in ["host"]}
    resp = requests.request(event["httpMethod"], "https://api.github.com"+event["path"], headers=header, data=event["body"], stream=True)
    defaultResponse = {
        'statusCode': resp.status_code,
        'isBase64Encoded': True,
        'headers': dict(resp.headers),
        'body': base64.b64encode(resp.raw.read()).decode(),
    }
    return json.dumps(defaultResponse)

Step 4. 配置网关

为函数配置 API 网关服务,首次使用需要先创建分组,再点下创建分组旁边的刷新。

创建分组比较简单,起个名字,之后回去创建触发器

之后进入 API 管理,编辑刚刚配置好的 API

下一步进入第二步,将请求路径改为根路径 /,完成并发布

如果不改这里的请求路径就需要在代码中进行相应处理,可以根据个人习惯进行配置

Step 5. 访问测试

之后就可以用 API 分组里面的测试域名随便折腾了

进阶技巧

测试域名每天 1000 次基本上是够用了,如果不够用的话多搞几个分组和云函数也是一种可行方案,由于里面是很灵活的代码。有很多能够做到负载均衡的办法,这里就不展开了。

本文只是做个简单的演示,正式使用时安全认证最好开一下,避免被别人搞。

只要思想不滑坡,办法总比困难多,除此之外,函数工作流还可以实现许多有趣的功能,这里就留给大家自由挥发了~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值