$ kn func create <function_name> -l <runtime>
无需在本地构建函数,您可以在集群上直接构建函数。在本地开发机器上使用此工作流时,您只需要处理函数源代码。例如,当您无法安装集群内函数构建工具(如 docker 或 podman)时,这非常有用。
您可以使用 Knative (kn
) CLI 启动函数项目构建,然后直接在集群上部署函数。要以这种方式构建函数项目,您的函数项目的源代码必须存在于集群可以访问的 Git 仓库分支中。
必须在您的集群上安装 Red Hat OpenShift Pipelines。
您已安装 OpenShift CLI (oc
)。
您已安装 Knative (kn
) CLI。
创建函数
$ kn func create <function_name> -l <runtime>
实现函数的业务逻辑。然后,使用 Git 提交并推送更改。
部署您的函数
$ kn func deploy --remote
如果您未登录到函数配置中引用的容器注册表,系统会提示您提供托管函数映像的远程容器注册表的凭据。
🕕 Creating Pipeline resources
Please provide credentials for image registry used by Pipeline.
? Server: https://index.docker.io/v1/
? Username: my-repo
? Password: ********
Function deployed at URL: http://test-function.default.svc.cluster.local
要更新您的函数,请使用 Git 提交并推送新的更改,然后再次运行 kn func deploy --remote
命令。
可选。您可以使用 pipelines-as-code 配置您的函数,以便在每次 Git 推送后在集群上构建。
为您的函数生成 Tekton Pipelines
和 PipelineRuns
配置
$ kn func config git set
除了生成配置文件外,此命令还会连接到集群并验证管道是否已安装。通过使用令牌,它还会代表用户在函数存储库上创建一个 Webhook。每次将更改推送到存储库时,该 Webhook 都会触发集群上的管道。
您需要拥有具有存储库访问权限的有效的 GitHub 个人访问令牌才能使用此命令。
提交并推送生成的 .tekton/pipeline.yaml
和 .tekton/pipeline-run.yaml
文件
$ git add .tekton/pipeline.yaml .tekton/pipeline-run.yaml
$ git commit -m 'Add the Pipelines and PipelineRuns configuration'
$ git push
更改函数后,提交并推送它。函数将使用创建的管道自动重新构建。
在集群上构建和部署函数时,您必须通过指定 Git 仓库、分支和仓库内的子目录来指定函数代码的位置。如果您使用 main
分支,则无需指定分支。同样,如果您的函数位于仓库的根目录,则无需指定子目录。您可以在 func.yaml
配置文件中指定这些参数,或者使用 kn func deploy
命令的标志。
必须在您的集群上安装 Red Hat OpenShift Pipelines。
您已安装 OpenShift (oc
) CLI。
您已安装 Knative (kn
) CLI。
部署您的函数
$ kn func deploy --remote \ (1)
--git-url <repo-url> \ (2)
[--git-branch <branch>] \ (3)
[--git-dir <function-dir>] (4)
1 | 使用 --remote 标志,构建将在远程运行。 |
2 | 将 <repo-url> 替换为 Git 仓库的 URL。 |
3 | 将 <branch> 替换为 Git 分支、标签或提交。如果使用 main 分支上的最新提交,则可以跳过此标志。 |
4 | 如果函数所在的目录与仓库根目录不同,则将 <function-dir> 替换为包含函数的目录。 |
例如
$ kn func deploy --remote \
--git-url https://example.com/alice/myfunc.git \
--git-branch my-feature \
--git-dir functions/example-func/
对于需要更大卷大小才能构建的项目,您可能需要在集群上构建时自定义持久卷声明 (PVC)。默认 PVC 大小为 256 MiB。
必须在您的集群上安装 Red Hat OpenShift Pipelines。
您已安装 OpenShift (oc
) CLI。
您已安装 Knative (kn
) CLI。
使用 --pvc-size
标志和 PVC 大小规范部署您的函数,方法是运行以下命令
$ kn func deploy --remote --pvc-size='2Gi'
在此示例中,PVC 设置为 2 GiB。
您可以通过在 Red Hat OpenShift Serverless Web 控制台的 **开发者** 透视图中调用已部署的无服务器函数来测试它。
OpenShift Serverless Operator 和 Knative Serving 已安装在您的 Red Hat OpenShift Serverless 集群上。
您已登录到 Web 控制台,并且处于 **开发者** 透视图。
您已创建并部署了一个函数。
在**开发者**视角中,导航到**拓扑结构**。
点击一个函数,然后在**详细信息**面板的**操作**下拉列表中点击**测试无服务器函数**。这将打开**测试无服务器函数**对话框。
在**测试无服务器函数**对话框中,根据需要修改测试设置。
选择测试的**格式**。可以选择**CloudEvent**或**HTTP**。
**Content-Type**默认为Content-Type
HTTP 头部值。
您可以使用**高级设置**来修改 CloudEvent 测试的**类型**或**源**,或添加可选的头部。
您可以修改测试的输入数据。
点击**测试**以运行您的测试。
测试完成后,**测试无服务器函数**对话框将显示状态代码和一条消息,告知您测试是否成功。
点击**返回**执行另一次测试,或点击**关闭**关闭测试对话框。