部署到 Cloud Run 函数

本页介绍了如何使用 Cloud Build 将应用部署到 Cloud Run 函数。如果您是刚接触 Cloud Build,请先阅读快速入门构建配置概览

Cloud Run Functions 是一种无服务器执行环境, 连接云服务。借助 Cloud Run 函数,您可以编写简单的单一用途 函数和函数。 服务。当所监控的事件发生时,就会触发您的函数。对于 请参阅 Cloud Run 函数文档

准备工作

  • 启用 Cloud Run Functions API:

    启用 Cloud Run Functions API

  • 向构建服务授予 Cloud Run functions Developer 角色 账号:

    1. 打开 Cloud Build 的“设置”页面:

      打开 Cloud Build 的“设置”页面

    2. Cloud Run functions Developer 角色的状态设置为已启用

  • 如需运行此页面中的 gcloud 命令,请安装 Google Cloud CLI

  • 保留要构建和部署的应用源代码 Cloud Run 函数便捷易用。您的源代码需要存储在代码库中,例如 Cloud Source Repositories、GitHub 或 Bitbucket

配置部署

通过 Cloud Build,您可以使用任何公开可用的容器映像来执行任务。为此,您可以在 Cloud Build 配置文件的构建 step 中指定该映像。

Cloud Run 函数提供 gcloud functions deploy 命令,可从包含函数代码的目录部署函数。您可以使用 cloud-sdk 图片 作为配置文件中的构建步骤,以调用映像中的 gcloud 命令。 传递到此构建步骤的参数会直接传递到 Google Cloud CLI,让您可以在此映像中运行任何 gcloud 命令。

如需将应用部署到 Cloud Run 函数,请按以下步骤操作:

  1. 在项目根目录中,创建名为 cloudbuild.yamlcloudbuild.jsonCloud Build 配置文件
  2. 在配置文件中:

    • 添加 name 字段并指定 gcloud 构建步骤。
    • functions deploy 添加到 args 字段以调用 gcloud functions deploy 命令。 如需了解可用的配置选项,请参阅 gcloud functions deploy 参考文档
    • --source=. 表示源代码位于当前工作目录中。

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    将上述配置文件中的占位符值替换为以下内容:

    • FUNCTION_NAME 是要部署的 Cloud Run 函数的名称。 如果要更新现有函数,则此值必须与要更新的函数的名称匹配。
    • FUNCTION_REGION 是您要将 Cloud Run 函数部署到的区域。如需查看受支持区域的列表,请参阅 Cloud Run 函数位置
    • --trigger-http 是此函数的触发器类型,在本例中为 HTTP 请求(网络钩子)。
    • RUNTIME 是在其中运行该函数的运行时

    如需详细了解如何使用 gcloud functions deploy,请参阅 Cloud Run 函数文档

  3. 使用上一步中创建的配置文件启动构建:

     gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    将上述配置文件中的占位符值替换为以下内容:

    • CONFIG_FILE_PATH 是构建配置文件的路径。
    • SOURCE_DIRECTORY 是源代码的路径或网址。
    • REGION受支持的 build 区域之一。

    如果您未在 gcloud builds submit 命令中指定 CONFIG_FILE_PATHSOURCE_DIRECTORY,则 Cloud Build 会假定配置文件和源代码位于当前工作目录中。

持续部署

您可以将软件自动部署到 Cloud Run 函数,方法是创建 Cloud Build 触发器您可以将触发器配置为您在更新源代码时构建和部署映像。

如需自动部署到 Cloud Run 函数,请执行以下操作:

  1. 在您的代码库根目录中,添加包含步骤的配置文件,从而调用 gcloud functions deploy 命令:

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    将上述配置文件中的占位符值替换为以下内容:

    • FUNCTION_NAME 是要部署的 Cloud Run 函数的名称。 如果要更新现有函数,则此值必须与要更新的函数的名称匹配。
    • FUNCTION_REGION 是您要部署 Cloud Run 函数的区域。 如需查看受支持区域的列表,请参阅 Cloud Run 函数位置
    • --trigger-http 是此函数的触发器类型,在本例中为 HTTP 请求(网络钩子)。
    • RUNTIME 是在其中运行该函数的运行时
  2. 使用上一步中创建的配置文件创建一个构建触发器:

    1. 在 Google Cloud 控制台中打开触发器页面:

      打开“触发器”页面

    2. 从页面顶部的项目选择器下拉菜单中选择您的项目。

    3. 点击创建触发器

    4. 名称字段中,为触发器输入名称。

    5. 区域下,选择触发器的区域

    6. 事件下方,选择要启动触发器的代码库事件。

    7. 来源下方,选择您的代码库以及用于启动触发器的分支或标记名称。如需详细了解如何指定要自动构建的分支,请参阅创建构建触发器

    8. 配置下,选择 Cloud Build YAML 或 JSON)

    9. Cloud Build 配置文件位置字段中的 / 后面,输入 cloudbuild.yaml

    10. 点击创建以保存您的构建触发器。

每当您将新代码推送到代码库时 构建和部署 Cloud Run 函数。

如需详细了解如何创建 Cloud Build 触发器,请参阅创建和管理构建触发器

后续步骤