Guia de início rápido: como usar a ferramenta de linha de comando gcloud

Nesta página, mostramos como criar e implantar uma função do Cloud usando a ferramenta de linha de comando gcloud.

Antes de começar

  1. Faça login na sua conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar a página do seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative as APIs Cloud Functions and Cloud Build.

    Ative as APIs

  5. Instale e inicie o SDK do Cloud.
  6. Atualize os componentes gcloud:
    gcloud components update
  7. Precisa de um prompt de comando? Use o Google Cloud Shell. O Google Cloud Shell é um ambiente de linha de comando que já inclui o SDK do Google Cloud. Dessa maneira, você não precisa instalá-lo. O SDK do Google Cloud também vem pré-instalado em máquinas virtuais do Google Compute Engine.

  8. Prepare seu ambiente de desenvolvimento.

Como conseguir o exemplo de código

  1. Clone o repositório de amostra na máquina local:

    Node.js

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

    Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.

    Python

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

    Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.

    Go

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

    Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.

    Java

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

    Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.

    C#

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

    Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.

  2. Altere para o diretório que contém o código de amostra do Cloud Functions:

    Node.js

    cd nodejs-docs-samples/functions/helloworld/

    Python

    cd python-docs-samples/functions/helloworld/

    Go

    cd golang-samples/functions/helloworld/

    Java

    cd java-docs-samples/functions/helloworld/helloworld/

    C#

    cd dotnet-docs-samples/functions/helloworld/HelloWorld/

  3. Confira o código de amostra:

    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.
            <https://flask.palletsprojects.com/en/1.1.x/api/#incoming-request-data>
        Returns:
            The response text, or any set of values that can be turned into a
            Response object using `make_response`
            <https://flask.palletsprojects.com/en/1.1.x/api/#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!")
    }
    

    Java

    
    package functions;
    
    import com.google.cloud.functions.HttpFunction;
    import com.google.cloud.functions.HttpRequest;
    import com.google.cloud.functions.HttpResponse;
    import java.io.BufferedWriter;
    import java.io.IOException;
    
    public class HelloWorld implements HttpFunction {
      // Simple function to return "Hello World"
      @Override
      public void service(HttpRequest request, HttpResponse response)
          throws IOException {
        BufferedWriter writer = response.getWriter();
        writer.write("Hello World!");
      }
    }

    C#

    using Google.Cloud.Functions.Framework;
    using Microsoft.AspNetCore.Http;
    using System.Threading.Tasks;
    
    namespace HelloWorld
    {
        public class Function : IHttpFunction
        {
            public async Task HandleAsync(HttpContext context)
            {
                await context.Response.WriteAsync("Hello World!");
            }
        }
    }

Implantar uma função

Para implantar a função com um gatilho HTTP, execute o seguinte comando no diretório que contém a função:

Node.js

gcloud functions deploy helloGET \
--runtime nodejs10 --trigger-http --allow-unauthenticated
É possível usar os seguintes valores para a sinalização --runtime para especificar sua versão preferencial do Node.js:
  • nodejs10
  • nodejs12

Python

gcloud functions deploy hello_get \
--runtime python37 --trigger-http --allow-unauthenticated
É possível usar os seguintes valores da sinalização --runtime para especificar a versão preferencial do Python:
  • python37
  • python38

Go

gcloud functions deploy HelloGet \
--runtime go111 --trigger-http --allow-unauthenticated
É possível usar os seguintes valores para a sinalização --runtime para especificar a versão preferencial do Go:
  • go111
  • go113

Java

gcloud functions deploy java-helloworld \
--entry-point functions.HelloWorld \
--runtime java11 \
--memory 512MB --trigger-http --allow-unauthenticated

C#

gcloud functions deploy csharp-helloworld \
--entry-point HelloWorld.Function \
--runtime dotnet3 --trigger-http --allow-unauthenticated

A sinalização --allow-unauthenticated permite que você acesse a função sem autenticação. Para exigir autenticação, omita a sinalização.

Testar a função

  1. Quando a implantação da função for concluída, anote o url de httpsTrigger ou encontre-o usando o seguinte comando:

    Node.js

    gcloud functions describe helloGET

    Python

    gcloud functions describe hello_get

    Go

    gcloud functions describe HelloGet

    Java

    gcloud functions describe java-helloworld

    C#

    gcloud functions describe csharp-helloworld

    A aparência será semelhante a esta:

    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

    Java

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/java-helloworld

    C#

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/csharp-helloworld

  2. Acesse o URL pelo seu navegador. Você verá uma mensagem Hello World!.

Excluir a função

Para excluir a função, execute o seguinte comando:

Node.js

gcloud functions delete helloGET

Python

gcloud functions delete hello_get

Go

gcloud functions delete HelloGet

Java

gcloud functions delete java-helloworld

C#

gcloud functions delete csharp-helloworld

A seguir