Criar e implantar um serviço em Go

Saiba como criar um aplicativo Hello World simples, empacotá-lo em uma imagem de contêiner, fazer upload da imagem do contêiner no Container Registry e, em seguida, implantar a imagem do contêiner no Cloud Run. É possível usar outros idiomas além dos mostrados.


Para orientações passo a passo sobre esta tarefa diretamente no editor do Cloud Shell, clique em Orientações:

Orientações


As seções a seguir guiam você pelas mesmas etapas que você encontra clicando em Orientações.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o 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. Instale e inicialize o SDK do Cloud..

Como gravar o aplicativo de amostra

Para escrever um aplicativo em Go:

  1. Crie um novo diretório com o nome helloworld e altere o diretório nele:

    mkdir helloworld
    cd helloworld
    
  2. Inicialize um arquivo go.mod para declarar o módulo go:

    module github.com/GoogleCloudPlatform/golang-samples/run/helloworld
    
    go 1.13
    

    Você pode criar o arquivo go.mod diretamente no formato conforme mostrado acima ou inicializá-lo a partir do diretório do projeto com:

    go mod init
    
  3. Crie um novo arquivo chamado main.go e cole o código a seguir nele:

    
    // Sample run-helloworld is a minimal Cloud Run service.
    package main
    
    import (
    	"fmt"
    	"log"
    	"net/http"
    	"os"
    )
    
    func main() {
    	log.Print("starting server...")
    	http.HandleFunc("/", handler)
    
    	// Determine port for HTTP service.
    	port := os.Getenv("PORT")
    	if port == "" {
    		port = "8080"
    		log.Printf("defaulting to port %s", port)
    	}
    
    	// Start HTTP server.
    	log.Printf("listening on port %s", port)
    	if err := http.ListenAndServe(":"+port, nil); err != nil {
    		log.Fatal(err)
    	}
    }
    
    func handler(w http.ResponseWriter, r *http.Request) {
    	name := os.Getenv("NAME")
    	if name == "" {
    		name = "World"
    	}
    	fmt.Fprintf(w, "Hello %s!\n", name)
    }
    

    Esse código cria um servidor da Web básico que realiza detecções na porta definida pela variável de ambiente PORT.

O app está concluído e pronto para ser implantado.

Como implantar no Cloud Run a partir da fonte

Importante: este guia de início rápido pressupõe que você tenha papéis de proprietário ou editor no projeto que está usando para este guia. Caso contrário, consulte as permissões de implantação do Cloud Run, as permissões do Cloud Build e as permissões do Artifact Registry.

Para implantar a imagem do contêiner, siga estas etapas:

  1. Implante a partir da origem usando o seguinte comando:

    gcloud run deploy

    Se for solicitada a ativação da API, responda y para ativá-la.

    1. Quando for solicitado o local do código-fonte, pressione Enter para implantar a pasta atual.

    2. Quando for solicitado o nome do serviço, pressione Enter para aceitar o nome padrão, helloworld.

    3. Se for solicitado que você ative a API Artifact Registry, responda pressionando 'y'.

    4. Quando a região for solicitada, selecione a região que preferir, por exemplo, us-central1.

    5. Você receberá uma solicitação para permitir chamadas não autenticadas: responda y.

    Aguarde alguns instantes até a conclusão da implantação. Em caso de sucesso, a linha de comando exibe o URL de serviço.

  2. Consulte o contêiner implantado abrindo o URL de serviço em um navegador da Web.

Locais do Cloud Run

O Cloud Run é regional, o que significa que a infraestrutura que executa seus serviços do Cloud Run está localizada em uma região específica e é gerenciada pelo Google para estar disponível de maneira redundante em todas as zonas da região.

Atender aos seus requisitos de latência, disponibilidade ou durabilidade são os principais fatores para selecionar a região em que seus serviços do Cloud Run são executados. Geralmente, é possível selecionar a região mais próxima de seus usuários, mas considere a localização dos outros produtos do Google Cloud usados pelo serviço do Cloud Run. O uso de produtos do Google Cloud em vários locais pode afetar a latência e o custo do serviço.

O Cloud Run está disponível nas regiões a seguir:

Sujeitas aos preços do nível 1

  • asia-east1 (Taiwan)
  • asia-northeast1 (Tóquio)
  • asia-northeast2 (Osaka)
  • europe-north1 (Finlândia) Ícone de folha Baixo CO2
  • europe-west1 (Bélgica) Ícone de folha CO baixo 2
  • europe-west4 (Países Baixos)
  • us-central1 (Iowa)Ícone de folha Baixo CO2
  • us-east1 (Carolina do Sul)
  • us-east4 (Norte da Virgínia)
  • us-west1 (Oregon) Ícone de folha Baixo CO2

Sujeitas aos preços do nível 2

  • asia-east2 (Hong Kong)
  • asia-northeast3 (Seul, Coreia do Sul)
  • asia-southeast1 (Singapura)
  • asia-southeast2 (Jacarta)
  • asia-south1 (Mumbai, Índia)
  • asia-south2 (Déli, Índia)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Varsóvia, Polônia)
  • europe-west2 (Londres, Reino Unido)
  • europe-west3 (Frankfurt, Alemanha)
  • europe-west6 (Zurique, Suíça) Ícone de folha Baixo CO2
  • northamerica-northeast1 (Montreal) Ícone de folha Baixo CO2
  • northamerica-northeast2 (Toronto)
  • southamerica-east1 (São Paulo, Brasil) Ícone de folha Baixo CO2
  • us-west2 (Los Angeles)
  • us-west3 (Las Vegas)
  • us-west4 (Salt Lake City)

Se você já criou um serviço do Cloud Run, poderá ver a região no painel do Cloud Run no Console do Cloud.

Parabéns! Você acabou de implantar uma imagem de contêiner a partir do código-fonte no Cloud Run. O Cloud Run escalona de maneira automática e horizontal a imagem de contêiner para processar as solicitações recebidas e reduz o escalonamento quando a demanda diminui. Você paga apenas pela CPU, memória e rede consumidas durante o processamento da solicitação.

Limpar

Como remover seu projeto de teste

Ainda que o Cloud Run não gere custos quando o serviço não estiver em uso, é possível que receba cobranças pelo armazenamento da imagem do contêiner no Artifact Registry. É possível excluir sua imagem ou excluir seu projeto do Cloud para evitar cobranças. A exclusão do projeto do Cloud interrompe o faturamento de todos os recursos usados nesse projeto.

  1. No Console do Cloud, acesse a página Gerenciar recursos:

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir

Para mais informações sobre como criar um contêiner a partir do código-fonte e enviá-lo para um repositório, consulte: