代码之家  ›  专栏  ›  技术社区  ›  apostrophedottilde

fn项目缺少HTTP操作(CRUD)

  •  1
  • apostrophedottilde  · 技术社区  · 7 年前

    我花了一个下午的时间对容器本地的无服务器平台“fn项目”感到非常兴奋。- http://fnproject.io/ .

    我喜欢FAAS模型的想法,但在应用程序的大部分生命周期内,我并不打算将自己锁定在某个特定的云供应商身上——还有其他几个原因,包括如果我选择的话,希望在任何地方的小型服务器上启动整个应用程序。

    FN项目似乎很适合我的需要,直到我读完文档和所有相关的博客文章,突然想‘什么?’等等……什么????HTTP操作在哪里?.

    我在任何地方都找不到一个单一的引用,它指出是否有可能为不同的HTTP操作(即post、put、patch、delete)使用HTTP触发器,更不用说我将如何操作了。

    我想构建RESTAPI(或者至少是JSON服务于基于HTTP的RPC API——如果它没有超媒体链接,那么它就不是REST;)但是我们不要进入这个线程中的那个部分。

    我是否遗漏了一些东西(当然是正确的文档)??

    有人能告诉我我该怎么做吗?或者如果我完全误解了我应该用这个做什么的话,能告诉我吗?

    我的兴奋现在已经减弱了,但我希望有人能用正确的信息来改变。

    我觉得奇怪的是我找不到其他人对此抱怨,所以我认为这可能表明我的误解。

    其他解决方案,如OpenFaas看起来很有趣,但我不想学习如何部署Kubernetes和Docker群,如果我可以避免的话:)

    2 回复  |  直到 7 年前
        1
  •  0
  •   norbjd    7 年前

    我不是专家,但到目前为止,似乎无法指定HTTP方法 在扳机里 . 检查 latest trigger spec :正如你所看到的,没有任何概念 http 方法在此。

    但是,可以在函数内部处理不同的HTTP方法。

    例如,在Java中 fdk-java v1.0.80),您可以使用 com.fnproject.fn.api.httpgateway.HTTPGatewayContext 作为函数的第一个参数,如“一节中所述” Accessing HTTP Information From Functions “文件:

    在Java的FN中,当您的函数由HTTP触发器(或另一个兼容的HTTP网关)服务时,您可以通过将COM.FnPix.fn.API.httpGateway,httpGateway上下文参数添加到函数的参数中来访问您的函数的传入请求报头。

    使用此功能可以:

    • 访问方法 并请求触发器的URL

    然后可以通过调用 getMethod() HTTPGatewayContext 作为参数传递。

    在其他语言中(使用其他fdk),也可以这样做:

    从不同的环境中,你就可以 method 参数传递时间 fn invoke --method=[GET|POST|...] (通过 fn-http-method 标题)。

    这里的主要缺点是所有HTTP方法都应该在同一个函数中处理。尽管如此,您可以将代码结构为每个方法只有一个类。

        2
  •  0
  •   apostrophedottilde    7 年前

    经过进一步的思考,现在我的误会似乎相当清楚了……

    当我在过去构建了无服务器框架服务(或使用TerraForm构建和部署lambda函数)时,我一直在部署到AWS,因此一直在使用AWS的API网关产品(它们的产品实际上称为API网关,但重要的是要认识到API网关是分布式系统/微服务设计模式)。

    API网关可以将特定的HTTP请求类型(包括方法(get、post、put、delete)路由到所需的函数。

    FN项目和OpenFaas等平台不提供开箱即用的API网关解决方案,我们似乎需要自己解决这个问题。

    上述平台是关于功能部署的。我们通过我们选择的产品找到其他的部分。

    推荐文章