使用 Google Cloud CLI 创建 Cloud Run functions 函数
本页面介绍了如何使用 Google Cloud CLI 创建和部署 Cloud Run functions 函数。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
准备开发环境。
Node.js
Python
Go
Java
C#
Ruby
PHP
需要命令提示符吗?您可以使用 Google Cloud Shell。Google Cloud Shell 命令行环境已经包含 Google Cloud CLI,因此您无需再进行安装。Google Compute Engine 虚拟机也预装了 Google Cloud CLI。
获取示例代码
将示例代码库克隆到您的本地机器:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
PHP
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
切换到包含 Cloud Run functions 函数示例代码的目录:
Node.js
cd nodejs-docs-samples/functions/helloworld/helloworldGet/
Python
cd python-docs-samples/functions/helloworld/
Go
cd golang-samples/functions/functionsv2/helloworld/
Java
cd java-docs-samples/functions/helloworld/helloworld/
C#
cd dotnet-docs-samples/functions/helloworld/HelloWorld/
Ruby
cd ruby-docs-samples/functions/helloworld/get/
PHP
cd php-docs-samples/functions/helloworld_get/
查看示例代码:
Node.js
Python
Go
Java
C#
Ruby
PHP
部署函数
如需部署带有 HTTP 触发器的函数,请在包含示例代码(如果是 Java,则为 pom.xml
文件)的目录中运行以下命令:
Node.js
gcloud functions deploy nodejs-http-function \ --gen2 \ --runtime=nodejs20 \ --region=REGION
\ --source=. \ --entry-point=helloGET \
--trigger-http
使用 --runtime
标志可以指定支持的 Node.js 版本的运行时 ID 来运行您的函数。
Python
gcloud functions deploy python-http-function \ --gen2 \ --runtime=python312 \ --region=REGION
\ --source=. \ --entry-point=hello_get \
--trigger-http
使用 --runtime
标志可以指定支持的 Python 版本的运行时 ID 来运行您的函数。
Go
gcloud functions deploy go-http-function \ --gen2 \ --runtime=go121 \ --region=REGION
\ --source=. \ --entry-point=HelloGet \
--trigger-http
Java
gcloud functions deploy java-http-function \ --gen2 \ --runtime=java17 \ --region=REGION
\ --source=. \ --entry-point=functions.HelloWorld \ --memory=512MB \
--trigger-http
使用 --runtime
标志可以指定支持的 Java 版本的运行时 ID 来运行您的函数。
C#
gcloud functions deploy csharp-http-function \ --gen2 \ --runtime=dotnet6 \ --region=REGION
\ --source=. \ --entry-point=HelloWorld.Function \
--trigger-http
使用 --runtime
标志可以指定支持的 .NET 版本的运行时 ID 来运行您的函数。
Ruby
gcloud functions deploy ruby-http-function \ --gen2 \ --runtime=ruby32 \ --region=REGION
\ --source=. \ --entry-point=hello_get \
--trigger-http
使用 --runtime
标志可以指定支持的 Ruby 版本的运行时 ID 来运行您的函数。
PHP
gcloud functions deploy php-http-function \ --gen2 \ --runtime=php82 \ --region=REGION
\ --source=. \ --entry-point=helloGet \
--trigger-http
使用 --runtime
标志可以指定支持的 PHP 版本的运行时 ID 来运行您的函数。
您可以视情况使用 --allow-unauthenticated
标志在不进行身份验证的情况下访问函数。这对于测试非常有用,但除非您要创建公共 API 或网站,否则我们不建议在生产环境中使用此设置。此外,它可能不适用于您,具体取决于您的公司政策设置。如需详细了解如何调用需要进行身份验证的函数,请参阅进行身份验证以便调用。
区域
在部署 Cloud Run functions 函数时,您必须提供一个区域。请参阅位置查看可用区域的列表。您的 gcloud CLI 配置有一个关联的默认区域,但您可以在 deploy
命令中使用您喜欢的任何受支持的区域。
如需查看与您的 gcloud CLI 配置关联的默认区域,请运行以下命令:
gcloud config list
您可以按如下方式更改默认区域:
gcloud config set functions/region REGION
请注意,即使您将函数部署到默认区域,也仍然必须在 deploy
命令行中包含该区域。
触发函数
当函数完成部署时,请记下
url
属性,或使用以下命令查找该属性:Node.js
gcloud functions describe nodejs-http-function --gen2 --region REGION --format="value(url)"
Python
gcloud functions describe python-http-function --gen2 --region REGION --format="value(url)"
Go
gcloud functions describe go-http-function --gen2 --region REGION --format="value(url)"
Java
gcloud functions describe java-http-function --gen2 --region REGION --format="value(url)"
C#
gcloud functions describe csharp-http-function --gen2 --region REGION --format="value(url)"
Ruby
gcloud functions describe ruby-http-function --gen2 --region REGION --format="value(url)"
PHP
gcloud functions describe php-http-function --gen2 --region REGION --format="value(url)"
修改以下命令以使用您自己的 URI 后,运行该命令以查看
Hello World!
消息:curl -m 70 -X POST URI \ -H "Authorization: Bearer $(gcloud auth print-identity-token)" \ -H "Content-Type: application/json" \ -d '{}'
删除函数
如需删除您在本教程中创建的 Cloud Run functions 函数,请运行以下命令:
Node.js
gcloud functions delete nodejs-http-function --gen2 --region REGION
Python
gcloud functions delete python-http-function --gen2 --region REGION
Go
gcloud functions delete go-http-function --gen2 --region REGION
Java
gcloud functions delete java-http-function --gen2 --region REGION
C#
gcloud functions delete csharp-http-function --gen2 --region REGION
Ruby
gcloud functions delete ruby-http-function --gen2 --region REGION
PHP
gcloud functions delete php-http-function --gen2 --region REGION
您也可以通过 Google Cloud 控制台删除 Cloud Run functions。