Guía de inicio rápido: Usa la herramienta de línea de comandos de gcloud

En esta página, se muestra cómo crear y, luego, implementar una función de Cloud Functions escrita con Node.js, Python o Go mediante la herramienta de línea de comandos de gcloud.

Antes de comenzar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Select or create a Google Cloud Platform project.

    Go to the Manage resources page

  3. Asegúrate de tener habilitada la facturación para tu proyecto.

    Aprende a habilitar la facturación

  4. {% dynamic if "no_credentials" in setvar.task_params %} {% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %} {% dynamic if not setvar.redirect_url %} {% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %} {% dynamic endif %}{% dynamic endif %} {% dynamic if setvar.in_henhouse_no_auth_whitelist %} {% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %} {% dynamic endif %} {% dynamic elif setvar.in_henhouse_service_account_whitelist %} {% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %} {% dynamic endif %}{% dynamic endif %} {% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %} {% dynamic setvar service_account_roles %} {% dynamic endsetvar %} {% dynamic endif %} {% dynamic setvar console %} {% dynamic if "no_steps" not in setvar.task_params %}
  5. {% dynamic endif %} {% dynamic if setvar.api_list %} {% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %} Configurar un proyecto de GCP Console.

    Configurar un proyecto

    Haz clic para realizar alguna de las siguientes acciones:

    • Crear o seleccionar un proyecto.
    • Habilitar las {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %} necesarias para el proyecto.
    • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
    • Crear una cuenta de servicio.
    • Descargar una clave privada como JSON.
    • {% dynamic endif %}

    Puedes visualizar y administrar estos recursos en GCP Console en cualquier momento.

    {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %} Habilita las {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %} necesarias. {% dynamic endif %}

    Habilita las {% dynamic if "," in setvar.api_list %} API{% dynamic else %} API{% dynamic endif %}

    {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
  6. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}
  7. Instala y, luego, inicializa el SDK de Cloud.
  8. Actualiza y, luego, instala los componentes de gcloud:

    Node.js 6

    gcloud components update

    Node.js 8 (Beta)

    gcloud components update &&
    gcloud components install beta

    Python (Beta)

    gcloud components update &&
    gcloud components install beta

    Go (Beta)

    gcloud components update &&
    gcloud components install beta
  9. ¿Necesitas un símbolo del sistema? Puedes usar Google Cloud Shell. Se trata de un entorno de línea de comandos que ya incluye el SDK de Google Cloud, por lo que no es necesario que lo instales. El SDK de Google Cloud también viene preinstalado en las máquinas virtuales de Google Compute Engine.

  10. Prepara tu entorno de programación.

Obtén la app de muestra

  1. Clona el repositorio de la app de muestra en tu máquina local como se muestra a continuación:

    Node.js

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

    De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.

    Python (Beta)

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

    De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.

    Go (Beta)

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git

    De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.

  2. Ve al directorio que contiene el código de muestra de Cloud Functions, como sigue:

    Node.js

    cd nodejs-docs-samples/functions/helloworld/

    Python (Beta)

    cd python-docs-samples/functions/helloworld/

    Go (Beta)

    cd golang-samples/functions/helloworld/

  3. Ve el código de muestra:

    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 (Beta)

    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 (Beta)

    // Package helloworld provides a set of Cloud Function 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!")
    }
    

Implementa una función

Para implementar la función con un activador de HTTP, ejecuta el siguiente comando en el directorio de helloworld:

Node.js 6

gcloud functions deploy helloGET --runtime nodejs6 --trigger-http

Node.js 8 (Beta)

gcloud functions deploy helloGET --runtime nodejs8 --trigger-http

Python (Beta)

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

Go (Beta)

gcloud functions deploy HelloGet --runtime go111 --trigger-http

Prueba la función

  1. Cuando la función termine de implementarse, toma nota de la propiedad url de httpsTrigger o búscala con el siguiente comando:

    Node.js

    gcloud functions describe helloGET

    Python (Beta)

    gcloud functions describe hello_get

    Go (Beta)

    gcloud functions describe HelloGet

    Se verá de la siguiente manera:

    Node.js

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

    Python (Beta)

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

    Go (Beta)

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

  2. Visita esta URL en tu navegador. Deberías ver un mensaje de Hello World! .

Pasos siguientes

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Functions