2KB项目,专业的源码交易网站 帮助 收藏 每日签到

构建你本人的 Tsuru 服务

  • 时间:2019-05-14 16:49 编辑:2KB 来源:2KB.COM 阅读:422
  • 扫一扫,手机访问
  • 分享
摘要:
Tsuru 英文原文:Building your Tsuru service

概览

本文档是一个把你现有的云服务转为 tsuru 服务的实作指南。

为了创立一个服务,你需求为你的服务完成一个设置装备摆设API,当用户创立一个新的实例或绑定一个服务实例到使用顺序时,tsuru 将运用HTTP协议挪用它。

您还需求创立一个YAML文档作为服务清单。我们供给一个号令行Tools来协助您创立此清单和管理您的服务。

创立你的服务API

要创立你的服务API,你可以用编程言语或框架。在本教程中我们运用 flask.

先决前提

起首,要确保曾经安装了Python和pip:

$ python --version
Python 2.7.2$ pip
Usage: pip COMMAND [OPTIONS]pip: error: You must give a command (use "pip help" to see a list of commands)

要晓得怎么安装Python的信息,请参考 Python可下载文档。而怎么安装pip的信息,请参考 pip安装指南

如今,假设python和pip曾经安装好了,你就能够运用pip安装flask了:

$ pip install flask

flask安装好后,我们就能够创立文件api.py,并填入下面代码,从而完成最小的flask使用:

from flask import Flaskapp = Flask(__name__)@app.route("/")def hello():
    return "Hello World!"if __name__ == "__main__":
    app.run()

要运转这个使用的话,请履行以下号令:

$ python api.py
 * Running on http://127.0.0.1:5000/

此时,假如你翻开阅读器拜访url: http://127.0.0.1:5000/,你将会看到"Hello World!"。
接下来,你就能够经过 tsuru任务流api完成你所希冀的工具了。

设置装备摆设新实例的资本

关于新的实例,tsuru 发送一个POST到 /resources,在恳求主体中含有表现服务实例称号的“name”。假如服务实例被成功创立,你的API应当前往201作为形态代码。

让我们创立这个操作的办法:

@app.route("/resources", methods=["POST"])def add_instance():
    return "", 201

完成绑定

在绑定操作中,tsuru 经过代表使用顺序主机名的“app-hostname”和“单位主机名”的“unit-hostname” POST /resources/<service_name>/ 。

假如使用顺序成功绑定到实例,你应当在body顶用json格局前往201作为形态代码和在使用顺序情况中导出的变量。

作为一个例子,让我们创立一个办法,它前往一个json,内容是要注入到使用情况中的名为“SOMEVAR”的伪变量。要在flask中做到这一点,您需求导入jsonify办法。

from flask import jsonify

@app.route("/resources/<name>", methods=["POST"])
def bind(name):
    out = jsonify(SOMEVAR="somevalue")
    return out, 201

完成消除绑定

在消除绑定操作中,tsuru 经过 DELETE on /resources/<service_name>/hostname/<unit_hostname>/ 来挪用你的服务。

假如使用顺序成功从实例消除了绑定,你应当前往200作为形态代码。

让我们为这个操作创立一个办法:

@app.route("/resources/<name>/hostname/<host>", methods=["DELETE"])
def unbind(name, host):
    return "", 200

完成烧毁服务实例

在烧毁操作中, tsuru 经过 DELETE on /resources/<service_name>/ 来挪用你的服务。

假如服务实例被成功删除,你应当前往200作为形态代码

让我们为这个操作创立一个办法:

@app.route("/resources/<name>", methods=["DELETE"])
def remove_instance(name):
    return "", 200

完成形态反省URL

要反省实例的形态, tsuru 运用 /resources/<service_name>/status 这个 url。假如实例正常,这个 URL 会前往 204。

让我们为这个操作创立一个办法:

@app.route("/resources/<name>/status", methods=["GET"])
def status(name):
    return "", 204

为我们在flask中开发“伪API”的最初代码是:

from flask import Flask
from flask import jsonify

app = Flask(__name__)


@app.route("/resources/<name>", methods=["POST"])
def bind(name):
    out = jsonify(SOMEVAR="somevalue")
    return out, 201


@app.route("/resources/<name>/hostname/<host>", methods=["DELETE"])
def unbind(name, host):
    return "", 200


@app.route("/resources", methods=["POST"])
def add_instance():
    return "", 201


@app.route("/resources/<name>", methods=["DELETE"])
def remove_instance(name, host):
    return "", 200


@app.route("/resources/<name>/status", methods=["GET"])
def status(name):
    return "", 204


if __name__ == "__main__":
    app.run()

创立服务清单

你可使用 crane 创立一个清单模板:

$ crane template

这将在以后途径创立有以下内容的 manifest.yaml文件:

id: servicenameendpoint:
    production: production-endpoint.com
    test: test-endpoint.com:8080

这个 manifest.yaml 文件被 crane 用来为你的服务定义一个id和一个端点。

用你的服务的信息来更改ID和端点的值:

id: fakeserviceid1endpoint:
    production: fakeserviceid1.com

提交你的服务

要提交你的服务,你可以运转:

$ crane create manifest.yaml
本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部