快速入门:使用 gcloud 命令行工具

本页介绍如何使用 gcloud 命令行工具创建和部署以 Node.js、Python 或 Go 编写的 Cloud Functions 函数。

准备工作

    https://cloud.google.com/functions/quickstart cloudfunctions Cloud Functions no_credentials beta
  1. 登录您的 Google 帐号。

    如果您还没有 Google 帐号,请注册新帐号

  2. 在 GCP Console 的项目选择器页面上,选择或创建 GCP 项目。

    转到项目选择器页面

  3. 确保您的 Google Cloud Platform 项目已启用结算功能。 了解如何确认您的项目已启用结算功能

  4. 安装并初始化 Cloud SDK
  5. 更新 gcloud 组件:
    gcloud components update
  6. 需要命令提示符吗?您可以使用 Google Cloud Shell。Google Cloud Shell 命令行环境已经包含 Google Cloud SDK,因此您无需再进行安装。Google Compute Engine 虚拟机也预装了 Google Cloud SDK。

  7. 准备开发环境。

获取示例代码

  1. 将示例代码库克隆到本地计算机:

    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 文件的形式下载该示例并将其解压缩。

  2. 切换到包含 Cloud Functions 函数示例代码的目录:

    Node.js

    cd nodejs-docs-samples/functions/helloworld/

    Python

    cd python-docs-samples/functions/helloworld/

    Go

    cd golang-samples/functions/helloworld/

  3. 查看示例代码:

    Node.js

    /**
         * HTTP Cloud Function.
         * This function is exported by index.js, and is executed when
         * you make an HTTP request to the deployed function's endpoint.
         *
         * @param {Object} req Cloud Function request context.
         *                     More info: https://expressjs.com/en/api.html#req
         * @param {Object} res Cloud Function response context.
         *                     More info: https://expressjs.com/en/api.html#res
         */
        exports.helloGET = (req, res) => {
          res.send('Hello World!');
        };

    Python

    def hello_get(request):
            """HTTP Cloud Function.
            Args:
                request (flask.Request): The request object.
                <http://flask.pocoo.org/docs/1.0/api/#flask.Request>
            Returns:
                The response text, or any set of values that can be turned into a
                Response object using `make_response`
                <http://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response>.
            """
            return 'Hello World!'

    Go

    
        // Package helloworld provides a set of Cloud Functions samples.
        package helloworld
    
        import (
        	"fmt"
        	"net/http"
        )
    
        // HelloGet is an HTTP Cloud Function.
        func HelloGet(w http.ResponseWriter, r *http.Request) {
        	fmt.Fprint(w, "Hello, World!")
        }
        

部署函数

如需使用 HTTP 触发器部署函数,请在 helloworld 目录中运行以下命令:

Node.js

gcloud functions deploy helloGET --runtime nodejs8 --trigger-http
您可以使用 --runtime 标记的以下值来指定偏好的 Node.js 版本:
  • nodejs6(已弃用)
  • nodejs8
  • nodejs10(Beta 版)

Python

gcloud functions deploy hello_get --runtime python37 --trigger-http

Go

gcloud functions deploy HelloGet --runtime go111 --trigger-http
您可以使用 --runtime 标记的以下值来指定偏好的 Go 版本:
  • go111
  • go113(Beta 版)

测试函数

  1. 当函数完成部署时,请记下 httpsTriggerurl 属性,或使用以下命令查找该属性:

    Node.js

    gcloud functions describe helloGET

    Python

    gcloud functions describe hello_get

    Go

    gcloud functions describe HelloGet

    该属性应如下所示:

    Node.js

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloGET

    Python

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_get

    Go

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloGet

  2. 在浏览器中访问此网址。您应该会看到 Hello World! 消息。

后续步骤