OpenFaaS 网关

1,748 阅读2分钟

Gateway

API网关为你的函数提供了一个外部路由,并通过Prometheus收集云原生指标。网关还有一个内置的UI界面,使得你可以从OpenFaaS的函数商店部署并调用自己的函数。

网关会根据需要自动伸缩函数,依据Docker Swarm 或 Kubernetes的API来改变服务的副本数来做到。 在/system/alert端点接收AlertManager生成的自定义通知。

综上:

  • 内置UI÷
  • 部署自定义函数,或者函数商店中的函数
  • Prometheus的仪表盘
  • 通过AlertManager自动伸缩
  • REST API

图:Kubernetes作为编排provider时的概念架构

函数提供者

可以使用Golang实现的faas-provider 接口来实现函数提供者程序,该接口是用于于网关交互的REST API 。网关最初是和Docker Swarm直接交互,一个函数提供者的相关东西现在被移动到一个单独的faas-swarm项目中。

REST API

Swagger 文档: https://github.com/openfaas/faas/tree/master/api-docs

日志

日志在函数级别可以用,而且可以使用本机工具通过 Swarm 或 Kubernetes 来访问。你也可以安装Docker日志记录驱动程序来收集日志。默认情况下,函数不会把请求和响应体写到stdout。你可以通过设置read_debugwrite_debug 来切换。

追踪

"X-Call-Id"头被添加到每一个通过网关的调用,用来追踪和监控调用。我们使用了UUID字符串。

Header:

X-Call-Id

在函数中,可以用作Http_X_Call_Id

环境变量重载

可以通过如下的环境变量配置网关:

选项 用法
write_timeout 函数中写入响应体的HTTP超时时间(以秒为单位),默认是8
read_timeout 从客户端读取有效载荷的HTTP超时时间(以秒为单位),默认是8
functions_provider_url 上游 函数提供者的URL,比如:Swarm,Kubernetes,Nomad等
faas_nats_address 服务的地址。异步模式需要
faas_nats_port 服务端口。异步模式需要
faas_prometheus_host 主机连接 Prometheus,默认是 "prometheus"
faas_promethus_port Port to connect to Prometheus. Default: 9090 Prometheus连接端口。默认是9090
direct_functions truefalse - 直接通过覆盖网络请求调用函数,而不是通过提供者
direct_functions_suffix 提供一个DNS后缀,用来直接通过网络调用函数
basic_auth 设置truefalse ,在/system和/ui开启基本的身份验证
secret_mount_path 设置你已经安装的位置的basic-auth-userbasic-auth-password,默认是/run/secrets/
scale_from_zero 启用拦截代理,将任意函数扩展的最大值。