构建、运行或部署函数¶
在创建了函数项目之后,可以根据用例构建、运行或部署函数。
运行函数¶
在本地环境中运行函数之前,运行函数会为函数创建一个OCI容器镜像,但不会将函数部署到集群。 如果您想在本地为测试场景运行函数,这可能很有用。
先决条件¶
- 您的本地机器上有一个Docker守护进程。如果您已经使用了快速入门安装,则已经提供了该功能。
过程¶
如果需要,run
命令为函数构建一个映像,并在本地运行该映像,而不是将其部署到集群上。
在本地运行函数,在项目目录中运行命令:
func run
如果需要,使用此命令还会构建函数。
你可以通过运行命令强制映像的重建:
func run --build
也可以通过运行以下命令禁用构建:
func run --build=false
在本地运行函数,在项目目录中运行命令:
kn func run
如果需要,使用此命令还会构建函数。
可以通过运行该命令强制重建映像:
kn func run --build
也可以通过运行该命令禁用构建:
kn func run --build=false
你可以通过使用 invoke
命令并观察输出来验证你的函数已经成功运行:
func invoke
kn func invoke
Expected output
Received response
POST / HTTP/1.1 hello.default.127.0.0.1.sslip.io
User-Agent: Go-http-client/1.1
Content-Length: 25
Accept-Encoding: gzip
Content-Type: application/json
K-Proxy-Request: activator
X-Request-Id: 9e351834-0542-4f32-9928-3a5d6aece30c
Forwarded: for=10.244.0.15;proto=http
X-Forwarded-For: 10.244.0.15, 10.244.0.9
X-Forwarded-Proto: http
Body:
部署函数¶
部署函数会为函数创建一个OCI容器映像,并将该容器映像推到映像注册表中。 该功能作为Knative服务部署到集群中。 重新部署函数将更新在集群上运行的容器映像和生成的服务。 已经部署到集群的函数可以在集群上访问,就像任何其他Knative服务一样。
先决条件¶
-
您的本地机器上有一个Docker守护进程。如果您已经使用了快速入门安装,则已经提供了该功能。
-
您可以访问容器注册中心,并能够将图像推送到该注册中心。
过程¶
deploy
命令使用函数项目名称作为Knative服务名称。
在构建函数时,将使用项目名称和图像注册表名称为函数构造一个完全限定的图像名称。
通过在项目目录中运行命令来部署函数:
func deploy --registry <registry>
通过在项目目录中运行命令来部署函数:
kn func deploy --registry <registry>
Expected output
🙌 Function image built: <registry>/hello:latest
✅ Function deployed in namespace "default" and exposed at URL:
http://hello.default.127.0.0.1.sslip.io
你可以通过使用 invoke
命令并观察输出来验证你的函数已经成功部署:
func invoke
kn func invoke
Expected output
Received response
POST / HTTP/1.1 hello.default.127.0.0.1.sslip.io
User-Agent: Go-http-client/1.1
Content-Length: 25
Accept-Encoding: gzip
Content-Type: application/json
K-Proxy-Request: activator
X-Request-Id: 9e351834-0542-4f32-9928-3a5d6aece30c
Forwarded: for=10.244.0.15;proto=http
X-Forwarded-For: 10.244.0.15, 10.244.0.9
X-Forwarded-Proto: http
Body:
构建函数¶
构建函数会为函数创建一个OCI容器映像,可以将其推入容器注册表。 它不运行或部署函数,如果您想在本地为函数构建容器映像,但不想自动运行函数或将其部署到集群(例如在测试场景中),这可能很有用。
先决条件¶
- 您的本地机器上有一个Docker守护进程。如果您已经使用了快速入门安装,则已经提供了该功能。
过程¶
build
命令使用项目名称和镜像注册表名称为函数构造一个完全限定的容器镜像名称。
如果之前没有构建该函数项目,则会提示您提供一个镜像注册表。
要构建该函数,运行以下命令:
func build
要构建该函数,运行以下命令:
kn func build