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_debug和write_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 |
true 或 false - 直接通过覆盖网络请求调用函数,而不是通过提供者 |
direct_functions_suffix |
提供一个DNS后缀,用来直接通过网络调用函数 |
basic_auth |
设置true 或 false ,在/system和/ui开启基本的身份验证 |
secret_mount_path |
设置你已经安装的位置的basic-auth-user 和 basic-auth-password,默认是/run/secrets/ |
scale_from_zero |
启用拦截代理,将任意函数扩展的最大值。 |