本页介绍了如何使用 Cloud Build 将应用部署到 Cloud Run 函数。如果您是刚接触 Cloud Build,请先阅读快速入门和构建配置概览。
Cloud Run Functions 是一种无服务器执行环境, 连接云服务。借助 Cloud Run 函数,您可以编写简单的单一用途 函数和函数。 服务。当所监控的事件发生时,就会触发您的函数。对于 请参阅 Cloud Run 函数文档。
准备工作
启用 Cloud Run Functions API:
向构建服务授予 Cloud Run functions Developer 角色 账号:
打开 Cloud Build 的“设置”页面:
将 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 函数,请按以下步骤操作:
- 在项目根目录中,创建名为
cloudbuild.yaml
或cloudbuild.json
的 Cloud Build 配置文件。 在配置文件中:
- 添加
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 函数文档。- 添加
使用上一步中创建的配置文件启动构建:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
将上述配置文件中的占位符值替换为以下内容:
CONFIG_FILE_PATH
是构建配置文件的路径。SOURCE_DIRECTORY
是源代码的路径或网址。REGION
是受支持的 build 区域之一。
如果您未在
gcloud builds submit
命令中指定CONFIG_FILE_PATH
和SOURCE_DIRECTORY
,则 Cloud Build 会假定配置文件和源代码位于当前工作目录中。
持续部署
您可以将软件自动部署到 Cloud Run 函数,方法是创建 Cloud Build 触发器您可以将触发器配置为您在更新源代码时构建和部署映像。
如需自动部署到 Cloud Run 函数,请执行以下操作:
在您的代码库根目录中,添加包含步骤的配置文件,从而调用
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
是在其中运行该函数的运行时。
使用上一步中创建的配置文件创建一个构建触发器:
每当您将新代码推送到代码库时 构建和部署 Cloud Run 函数。
如需详细了解如何创建 Cloud Build 触发器,请参阅创建和管理构建触发器。
后续步骤
- 了解如何在 Compute Engine 上执行蓝绿部署
- 了解如何在 Cloud Run 上部署
- 了解如何在 GKE 上部署
- 了解如何在 Firebase 上部署
- 了解如何在 App Engine 上部署
- 了解如何排查构建错误。