使用 Google Cloud CLI 创建 Cloud Functions 函数
本页面介绍了如何使用 Google Cloud CLI 创建和部署第 2 代 Cloud Functions 函数。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a 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.
-
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 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 或网站,否则我们不建议在生产环境中使用此设置。此外,它可能不适用于您,具体取决于您的公司政策设置。如需详细了解如何调用需要进行身份验证的函数,请参阅进行身份验证以便调用。
区域
您必须在部署第 2 代函数时提供区域。请参阅位置查看可用区域的列表。您的 gcloud CLI 配置有一个关联的默认区域,但您可以在 deploy
命令中使用您喜欢的任何受支持的区域。
如需查看与您的 gcloud CLI 配置关联的默认区域,请运行以下命令:
gcloud config list
您可以按如下方式更改默认区域:
gcloud config set functions/region REGION
请注意,即使您将函数部署到默认区域,也仍然必须在 deploy
命令行中包含该区域。
触发函数
当函数完成部署时,请记下
uri
属性,或使用以下命令查找该属性:Node.js
gcloud functions describe nodejs-http-function --gen2 --region REGION --format="value(serviceConfig.uri)"
Python
gcloud functions describe python-http-function --gen2 --region REGION --format="value(serviceConfig.uri)"
Go
gcloud functions describe go-http-function --gen2 --region REGION --format="value(serviceConfig.uri)"
Java
gcloud functions describe java-http-function --gen2 --region REGION --format="value(serviceConfig.uri)"
C#
gcloud functions describe csharp-http-function --gen2 --region REGION --format="value(serviceConfig.uri)"
Ruby
gcloud functions describe ruby-http-function --gen2 --region REGION --format="value(serviceConfig.uri)"
PHP
gcloud functions describe php-http-function --gen2 --region REGION --format="value(serviceConfig.uri)"
修改以下命令以使用您自己的 URI 后,运行该命令以查看
Hello World!
消息:curl -m 70 -X POST URI \ -H "Authorization: Bearer $(gcloud auth print-identity-token)" \ -H "Content-Type: application/json" \ -d '{}'
删除 Cloud Functions 函数
如需删除您在本教程中创建的 Cloud 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 Console 删除 Cloud Functions 函数。