专栏首页大龄程序员的人工智能之路当微信小程序遇上TensorFlow:Server端实现补充

当微信小程序遇上TensorFlow:Server端实现补充

在前面一篇文章《当微信小程序遇上TensorFlow:Server端实现》中,我们探讨了微信小程序server端的实现。今天在调试微信小程序时才发现一个问题,那就是:微信小程序要求HTTP请求走更加安全的HTTPS协议

修改Simple TensorFlow Serving

为此我研究了Simple TensorFlow Serving: https://github.com/tobegit3hub/simple_tensorflow_serving 的源码,发现其WEB框架采用了flask。flask要增加https支持相当容易,因此我增加了三个参数:

parser.add_argument(
    "--enable_ssl", default=False, help="If enable RESTfull API over https")
parser.add_argument(
    "--secret_pem", default="secret.pem", help="pem file")
parser.add_argument(
    "--secret_key", default="secret.key", help="key file")

第一个参数指定是否启用HTTPS协议,后面两个参数为证书文件名。这个修改我已经向原作者提了一个PR,等待合并。在合并之前,你可以访问 https://github.com/mogoweb/simple_tensorflow_serving 获取最新代码。

证书申请

上阿里云可以申请一个免费的证书,虽然有效期只有一年,但对于我来说足够用。需要注意的是,阿里云上申请证书很隐蔽,我也是尝试了好几个组合,那个免费证书的选项才出现。因为我的主机就是托管在阿里云上,域名也是使用阿里云的DNS服务,所以申请完后,很快就审核通过,然后就可以下载证书。证书下载时我选择证书for Nginx,下载下来就是两个文件:一个pem文件,一个key文件。

测试客户端

测试客户端倒不需要怎么修改,只需要将URL的 http:// 修改为 https:// 即可。为此,我也增加了一个参数enable_ssl:

  if enable_ssl :
   endpoint = "https://ilego.club:8500"
 else:
   endpoint = "http://ilego.club:8500"

完整代码请参考: https://github.com/mogoweb/aiexamples/blob/master/AIDog/serving/test_client.py

小结

真正在做项目时,总会碰到意想不到的问题,这远不是照着书本敲几个demo可以获得的经验。在开始做这个微信小程序时,觉得很简单,但做着做着,发现一路碰到的问题还不少。这也是我经常建议新手自己动手做点小项目的原因,即使这个小项目并没有什么产品价值,即使是在现有的代码上修改,但这个过程中积累的经验对于个人来说,还是很宝贵的。

本文分享自微信公众号 - 云水木石(ourpoeticlife),作者:云水木石

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 啥?双证书?

    国密标准对于SSL通信定义得不是很清楚,所能依仗的标准只有《GMT 0024-2014 SSL VPN 技术规范》。在文档中提到,国密TLS需要有签名证书和加密...

    云水木石
  • keras中的数据集

    数据在深度学习中的重要性怎么说都不为过,无论是训练模型,还是性能调优,都离不开大量的数据。有人曾经断言中美在人工智能领域的竞赛,中国将胜出,其依据就是中国拥有更...

    云水木石
  • 搭建个人国密CA(Certification Authority)

    在SSL/TLS/HTTPS通信中,证书虽然不是TLS/SSL协议的一部分,却是HTTPS非常关键的一环,网站引入证书才能避免中间人攻击。证书涉及了很多密码学知...

    云水木石
  • 小学生编程入门从哪种编程语言学起?

    如果是编程零基础学习者,那么以Scratch为切入点是个不错选择。Scratch语法基于一系列孩子们可以拼插彼此的图形化“代码块”,其设计极具交互性,甚至单击一...

    贝尔科教
  • Dragonfly项目

    说明:Dragonfly是一个智能、基于P2P的镜像和文件分配系统。它旨在解决在文件传输过程中出现的低效、低成功率和浪费网络带宽问题。特别是大型文件分布场景,如...

    CNCF
  • 不好意思,我还是习惯“谷歌”

    身为一个科研工作者,上网查查文献或者论文是一件很平常的事。虽然各大学校的图书馆都会买一些数据库供学生使用,不过,还是以国内文献居多。又由于一些众所周知的原因,国...

    课代表
  • 编程小白 | 每日一练(77)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林
  • Mozilla发布WebVR创建工具

    很高兴地向大家介绍我们通过Mozilla发布的最新工具Unity WebVR Assets。 目前已经可以在Unity资源商店中免费下载并使用了。 该工具允许创...

    疯狂的技术宅
  • 编程小白 | 每日一练(115)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林
  • 2.2.4、Google Analytics高级应用——跟踪邮件打开的正确方法

    在做邮件营销的时候,要想评估邮件的打开情况,可以使用Measurement Protocol协议监测邮件的打开情况,具体位置的单击就通过UTM跟踪。

    GA小站

扫码关注云+社区

领取腾讯云代金券