Cloud Run 函数在由操作系统版本、插件软件包、语言支持以及支持和调用函数的 Ruby Functions 框架库组成的环境中运行。此环境由语言版本进行标识,称为运行时 ID。
函数准备
您可以直接在 Google Cloud 控制台中准备函数,也可以在本地机器上编写函数并上传该函数。如需准备本地机器以用于 Ruby 开发,请参阅设置 Ruby 开发环境。
选择运行时
Cloud Run functions 函数支持支持的语言运行时和基础映像页面上列出的多个 Ruby 版本。您可以在部署期间为您的函数选择首选 Ruby 运行时。
gcloud
如需使用 Cloud Run 函数通过 gcloud CLI 部署 HTTP 函数,请参阅使用 Google Cloud CLI 进行部署。
控制台
如果您使用的是 Google Cloud 控制台,请在创建和部署函数时选择运行时。如需详细说明,请参阅 Google Cloud 控制台快速入门。
源代码结构
为了让 Cloud Run functions 找到函数的定义,源代码必须遵循特定结构。如需了解详情,请参阅编写 Cloud Run 函数。
指定依赖项
以 Ruby 编写的 Cloud Run 函数使用 bundler 访问依赖项。
Cloud Functions 框架是所有函数都必需的依赖项。虽然 Cloud Run functions 会在创建函数时代表您安装该框架,但为清楚起见,我们建议您将其添加为显式依赖项。
如果函数依赖于专用依赖项,我们建议您将 functions-framework
镜像到您的私有注册表。将镜像的 functions-framework
作为依赖项添加到函数中,以避免从公共互联网安装软件包。
每个函数必须提供一个 Gemfile
,用于指定 functions_framework
gem 以及函数所需的任何其他 gem。Gemfile
必须与包含函数代码的 app.rb
文件位于同一目录中。此外,您的函数必须提供锁定文件,以指定所有传递依赖项及其确切版本。此文件 Gemfile.lock
和 Gemfile
也位于同一目录中。
部署您的函数时,Cloud Run 会使用 bundler
下载并安装 Gemfile
和 Gemfile.lock
中声明的依赖项。
Gemfile
会列出函数所需的软件包以及所有可选版本限制条件。如需了解详情,请参阅 Gemfile 参考文档。
下面给出了一个示例 Gemfile
:
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "google-cloud-storage", "~> 1.29"
封装本地依赖项
您还可以将依赖项与函数一起进行打包和部署。如果依赖项不能使用 rubygems 软件包管理器使用,则此方法非常有用。
如需在本地打包 gem,请将其加入函数目录结构的目录中,并在依赖项的 Gemfile
条目中提供路径。gem 目录必须包含有效的 gemspec
文件,并且必须位于函数的目录层次结构中,以便其代码与函数一起部署。例如,您可以使用如下所示的目录结构:
myfunction/ ├── Gemfile ├── Gemfile.lock ├── app.rb └── my_private_gem/ ├── lib/ | └── my_private_gem.rb └── my_private_gem.gemspec
Gemfile
条目可能如下所示:
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "my_private_gem", path: "./my_private_gem"
如需详细了解如何引用本地 gem 路径,请参阅 Gemfile 参考文档。