Be公用事业

sermos-utils的Python项目详细描述


塞尔莫斯乌蒂斯

与Sermos交互的实用程序。在

部署

先决条件

要将应用程序部署到Sermos,有几个先决条件:

  1. 已创建和配置部署环境
  2. 已为该部署发出access key
  3. 你的应用程序是一个具有标准结构的有效Python包(见下文)
  4. 您有一个sermos.yaml文件,其中包含定义的API端点、worker等
  5. 您的应用程序将sermos-utils作为依赖项,并已安装。在

部署

可以通过两种方式启动Sermos部署:以编程方式或使用 CLI工具。在

建议将访问密钥保留在环境中,并设置 环境中的客户端包目录也是为了方便。在

SERMOS_ACCESS_KEY=abc123
SERMOS_CLIENT_PKG_NAME=your_package

编程部署

以编程方式调用管道(例如,作为构建管道的一部分)可以 如下所示(假设访问密钥/客户端包目录 可在环境中按上述说明提供)。在

^{pr2}$

CLI部署

对于基于cli的部署,安装了sermos_deploy命令 作为sermos-utils包的一部分。在

honcho run -e .env sermos_deploy

部署状态

假设您的环境是按照上面Deployment部分中的注释设置的:

程序状态检查

from sermos_utils.deploy import SermosDeploy

sd = SermosDeploy()
status = sd.get_deployment_status()
print(status)

CLI状态检查

honcho run -e .env sermos_status

正确的Python包结构

假设您的软件包名为“我的客户”:

/path/to/codebase/
    my-sermos-client/
        setup.py
        my_sermos_client/
            __init__.py
            sermos.yaml

my_sermos_client/__init__.py只有一个要求,即包含 指定为变量__version__的应用程序版本,例如:

__version__ = '0.1.0'

通常的做法是在setup.py文件中使用该值,例如

_version_re = re.compile(r'__version__\s+=\s+(.*)')
with open('my_sermos_client/__init__.py', 'rb') as f:
    __version__ = str(ast.literal_eval(_version_re.search(
        f.read().decode('utf-8')).group(1)))

地方发展

Sermos以两种方式提供本地开发环境:

  1. 本地“沙盒”环境
  2. 代理到部署数据库的云连接环境

有关详细信息,请参见sermos-utils/dev/README.md。在

测试

要运行测试,您需要在您的系统上运行pyenv,并且tox在 你的环境。在

有关正确安装pyenv的说明,请参阅RhoAI文档。在

安装pyenv后,安装tox

$ pip install tox

然后在pyenv中安装不同的python版本

$ pyenv install 3.7.4

现在,运行测试:

$ tox

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
解释java选择方法   连接到127.0.0.1的java间歇性故障,连接到IP(eth0)时没有故障   java如何优雅地杀死hadoop作业/intercept`hadoop作业杀死`   java如何通过引导类加载器以编程方式加载另一个类?   url Java:在查询参数之前使用片段构建URI   在BroadLeaf表blc_order_属性中保存OrderAttributes值时发生java错误   安卓将功能从xml转换为java   java如何将数据写入文件?   java JPA SQL结果映射   Java中整数对象比较运算符的引用安全性   Spring测试失败:java。lang.NoClassDefFoundError:org/springframework/cglib/transform/impl/memorysafuendecaredthrowableStrategy   rich:extendedDataTable中的java行选择和数据处理   java为什么我需要在volatile上对多个线程使用synchronized?   java尽管构建成功,但为什么会出现此错误?   数组$ArrayList不能转换为java。util。java中的ArrayList   java如何根据泛型类型调用方法?   java将JLabel添加到JPanel,将JPanel添加到JFrame   如果MapStruct中的源为null,则java将父目标设置为null   JavaJBossDrools从DRL插入事实   java不同的JRE安装(windows)