Skip to main content

未提供项目描述

项目描述

Python的函数框架

该框架提供了一种机制,可以在 Python 中编写功能即服务风格的代码来处理 HTTP 事件,包括通过 HTTP 传递的 CloudEvents。

该框架主要用于与 Knative一起使用,但也可以提供通用服务器来处理通过 HTTP 的 CloudEvents(例如,来自 Kubernetes 或在本地机器上)。

框架使用反射找到合适的函数进行包装;除非您愿意(例如用于类型定义),否则不必在您自己的代码中导入以下任何模块:

  • frameork(这个模块;在 PyPi 上为http-containerize
  • flask
  • cloudevents

相反,只需确保您有一个_使用以下某种组合的非前缀函数:

  • HTTP 请求参数(命名为、 reqrequestbody类型)headersflask.Request
  • CloudEvent 参数(命名为、 eventpayloaddata类型)attributescloudevents.sdk.event.v1.Event

用法:

import logging
from typing import Any


counter = 0


def DoEvent(data: Any, attributes: dict, req: Any):
    global counter
    counter = counter + 1

    logging.info(f"Got data: {data}")
    logging.info(f"From {req.origin}, my {counter}th request!")

    attributes["type"] = "com.example.reply"
    attributes["datacontenttype"] = "text/plain"

    return attributes, "It's a demo"

构建到容器中:

如果您添加http-containerize>=0.4.0到以下内容,则可以使用 packeto buildpacks requirements.txt

pack build pytestapp --buildpack  ekanderson/pyfun:0.1.1 --builder paketobuildpacks/builder:base

然后,您可以通过以下方式调用它:

docker run --rm -p 8080:8080 -e 8080 pytestapp

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

http-containerize-0.4.3.tar.gz (4.3 kB 查看哈希

已上传 source

内置分布

http_containerize-0.4.3-py3-none-any.whl (9.0 kB 查看哈希

已上传 py3