问题标签 [openfaas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openfaas - 如何通过openfass-cli在本地目录中使用我自己的openfaas模板?
根据OpenFaaS cli docs,我可以使用自己的模板。
在文档中有一个使用 github repo 执行此操作的示例。
但我不想使用 github。只是指向从我的本地文件夹调用“下载”模板my-template
。
如何使用 openfass-cli 做到这一点?
node.js - 如何让 REST 与 OpenFaaS 协同工作?
我使用 openfaas 和 nodejs。
Openfass 提供我的网址。当我调用 url 时,它可以访问处理函数。
可以是 get/post/delete/patch 的一个 url:https ://openfass.dev.io/function/my-resource
如何在 openfaas 中使用 REST/CRUD?因为我不能用动词做很多网址。
javascript - 我们的 Openfaas/GKE 函数 (javascript) 运行了一段时间,然后开始失败,然后缓慢爬行
我们使用 openfaas 在 GKE 上部署了一个功能。这是一个相当小的功能 - 由 Google Cloud Storage 存储桶中文件的出现触发 - 它打开文件,调整其大小,然后将其写入不同的存储桶。
今天早上我用几百个文件进行了测试。它像风一样运行了一段时间,然后开始减速,并出现错误:
查看日志,让我印象深刻的一件事是有成千上万个这样的条目:
然后,自动缩放器有一些触发器,减少了我们身上的活动 pod 数量(一个单独的问题),然后触发看起来像:
从那时起,它不再转发到“/function/”,而是转发到“/async-function/”,只有少数转发到“/function/”,现在突然需要 3-5 秒而不是以前的值(更像是 0.002436s)。
我不明白为什么该功能在长时间运行后开始变慢。而且我不明白为什么它在长期运行后调用“异步函数”。从历史记录来看,很难判断这两个事实是否直接相关,但它们似乎很清楚。
有任何想法吗?
docker - K3d 和 OpenFaas 中的本地 Docker 注册表
我正在修补 OpenFaas 和 K3D,以便为本地开发构建无服务器基础架构。为了有效地工作,我想用 K3D 在本地添加一个 docker 注册表并让 OpenFaas 从那里提取图像,但是我对如何使用主机的 IP 作为注册表源感到困惑。
为了创建集群,我使用了以下命令
所以构建示例函数工作正常,但显然 OpenFaas/Kubernetes 将无法访问 docker 注册表
我想到的唯一解决方案是在 K3d 中配置一个可以解析到主机的 Docker 注册表的 DNS 服务。
有谁知道如何更容易做到这一点?
幸运的是,生产系统不需要这个,因为它们会从外部注册表中提取图像。
istio - 尝试使用 Istio 网关访问 OpenFaaS
我试图通过 Istio 访问 OpenFaaS,其中包含网关和虚拟服务。
我需要为 OpenFaaS 创建一个单独的端点,例如:"http://istio_ingress_Loadbalancer/openfaas"
- 这应该给我 OpenFaaS UI。
任何人都可以帮助我,关于我很难访问这个吗?下面是我为网关和虚拟服务编写的代码。
kubernetes - openfaas如何解决pod中容器的时区问题?
我目前正在本地虚拟机的kubernetes集群上部署openfaas 。发现发布函数后启动的容器的时区与宿主机不一致。我应该如何解决这个问题?
kubernetes - OpenFaas 的 Ingress-operator 不会重写路径
因此,我尝试使用以下教程使用 OpenFaaS 的 ingress-operator 创建一个更像 REST 的 api 路径。我验证了 ingress-operator 正在运行,使用kubectl get deploy/ingress-operator -n openfaas -o wide
which shows one available。
但是,它似乎没有正确更改函数的路径。我目前已经部署了基本的node14函数,访问http://gw.example.kube/function/test-fn可以正常调用。我还应用了以下 FunctionIngress:
但是访问http://example.kube/api/v1/test会导致来自 Nginx 的 404。我尝试(.*)
在重新访问页面时删除将为 OpenFaaS 自己的 404 页面提供服务的那个。两者example.kube
和gw.example.kube
都已在主机文件中设置。重新启动集群也没有解决问题。
附加信息:
python-3.x - 如何使我的 OpenFaaS python 中的同级文件夹在函数构建和部署时可见
我的python项目的文件夹结构如下
我想在 handler.py 中导入package_a
并package_b
在我的代码中。但是现在当我运行faas-cli up -f package_openfaas.yml
Docker 构建失败时,云找不到package_a
and package_b
.
我requirments.txt
的只是空的。
docker - Docker Hub 映像存储库是否包含来自 .env 文件的环境变量?
我正在使用 Docker 构建我的产品环境,并希望确保我的秘密和密钥是安全的。为此,我想使用.env文件。为方便起见,我想避免处理 Docker 机密。
对于本地开发,我使用的是 OpenFaas,它需要将映像推送到 Docker Hub 以与 k3s OpenFaas 一起使用。我担心 Docker Hub 映像可能包含与 docker-compose.yaml 一起使用的 .env 文件中的变量。
Docker Hub 映像存储库中是否包含环境变量?
文档和此堆栈溢出响应表明环境变量仅在“运行时”使用,我理解这意味着它们不包括在内。这应该意味着只有对服务器具有管理员访问权限的人才能检查图像中的秘密。我在这个假设上错了吗?我应该使用 Docker 机密吗?
21 年 8 月 19 日更新
通过测试,我更加确信 .env 变量不包含在 Docker Hub 上的映像中。注意我使用 OpenFaasfaas-cli
来处理 docker 部署。为了测试这一点,我做了以下事情:
- 注释掉
environment_file:
.yml 文件的部分 - 使用上传镜像
faas-cli up <functions>.yml
(这部分构建 docker 镜像并将其推送到 Docker Hub 存储库,然后部署 OpenFaas 功能) - 调用函数。该函数只返回环境变量。在 .yml 文件中“注释掉”环境变量后,函数返回“未定义”,这意味着该变量对函数不可用。
这给了我一些信心,但没有我想要的那么多,所以接下来我做了以下事情:
- 取消注释
environment_file:
.yml 文件的部分 - 运行命令
faas-cli up -f <functions>.yml --no-cache --skip-push
。 - 调用函数
--no-cache 确保图像被新鲜拉出,--skip-push 跳过将 docker 图像推送到 Docker Hub 存储库的部分。因此,映像的“构建”应该使用注释掉“environment_file”创建的映像,但现在“运行”时在本地 .yml 文件中未注释 environment_file。
这次调用函数后,变量可用并正确返回。只要我对 、 和 部分如何工作的解释build
是push
正确deploy
的faas-cli
,那么我就有信心 .env 文件和变量不是 Docker Hub 映像的一部分。
openfaas - Openfaas 使用队列名称调用异步函数
有没有办法通过异步 openfaas 函数调用来提供队列名称?
我们部署了一个 openfaas 函数,它将被多个提供者调用。函数的执行时间取决于提供者给出的一些参数。我们希望通过一个单独的队列名称对函数调用进行排队,但只保留一个函数,因为调用是稀疏但尖峰的。
实现这一目标的方法是什么?