跳到内容

构建、运行或部署函数

创建函数项目后,您可以根据您的用例构建、运行或部署您的函数。

运行函数

运行函数会在您的本地环境中为您的函数创建 OCI 容器镜像,然后运行该函数,但不会将函数部署到集群。如果您想在本地运行函数进行测试,这会很有用。

先决条件

  • 您的本地机器上有一个 Docker 守护程序。如果您使用了快速入门安装,则已提供此功能。

步骤

如果需要,`run` 命令会为您的函数构建一个镜像,并在本地运行此镜像,而不是将其部署到集群上。

通过在项目目录中运行命令来本地运行函数。如果您尚未构建函数,则需要提供 `--registry` 标志

cd hello
func run [--registry <registry>]

注意

**镜像注册表**的坐标也可以通过环境变量 (`FUNC_REGISTRY`) 进行配置。

如果需要,使用此命令也会构建函数。

您可以通过运行以下命令强制重建镜像

func run --build

也可以通过运行以下命令禁用构建

func run --build=false

通过在项目目录中运行命令来本地运行函数。如果您尚未构建函数,则需要提供 `--registry` 标志

cd hello
kn func run [--registry <registry>]

如果需要,使用此命令也会构建函数。

您可以通过运行以下命令强制重建镜像

kn func run --build

也可以通过运行以下命令禁用构建

kn func run --build=false

您可以通过使用 `invoke` 命令并观察输出结果来验证您的函数是否已成功运行

func invoke
kn func invoke

预期输出

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 Service 部署到集群。重新部署函数会更新正在集群上运行的容器镜像和由此产生的 Service。已部署到集群的函数与任何其他 Knative Service 一样可在集群上访问。

先决条件

  • 您的本地机器上有一个 Docker 守护程序。如果您使用了快速入门安装,则已提供此功能。

  • 您有权访问容器注册表并能够将镜像推送到此注册表。请注意,某些镜像注册表默认将新推送的镜像设置为私有。如果您是第一次部署函数,您可能需要确保您的镜像设置为公共。

步骤

`deploy` 命令使用函数项目名称作为 Knative Service 名称。构建函数时,项目名称和镜像注册表名称用于构造函数的完全限定镜像名称。

通过在项目目录中运行命令来部署函数

func deploy --registry <registry>

通过在项目目录中运行命令来部署函数

kn func deploy --registry <registry>

注意

如果您想将您的函数部署为原始 Kubernetes Deployment 和 Service 而不是 Knative Service,您可以使用 `raw` 部署器

通过在项目目录中运行命令来部署函数

func deploy --registry <registry> --deployer raw

通过在项目目录中运行命令来部署函数

kn func deploy --registry <registry> --deployer raw

预期输出

    🙌 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

预期输出

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

注意

**镜像注册表**的坐标也可以通过环境变量 (`FUNC_REGISTRY`) 进行配置。

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。