Como criar um aplicativo Go no App Engine

ID da região

O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. Para apps criados após fevereiro de 2020, o REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criados antes dessa data, o ID da região é opcional no URL.

Saiba mais sobre IDs de região.

Com este guia, você começa a usar o App Engine e se familiarizar com o desenvolvimento, a implantação e o gerenciamento de um aplicativo Go.

Depois de criar seu aplicativo, leia outros tutoriais para saber como integrá-lo a outros serviços do Google Cloud e adicionar mais recursos a ele.

Custos

Não há custos associados à execução deste guia. A execução do aplicativo de exemplo não excede sua cota gratuita.

Como configurar o ambiente de desenvolvimento

Use sua máquina local e as ferramentas com que já está familiarizado ou o Cloud Shell. O Cloud Shell já tem a Google Cloud CLI instalada, o ambiente já configurado e muitos outros recursos.

Máquina local

Instale o Go e configure a CLI gcloud conforme descrito em Como configurar o ambiente de desenvolvimento.

Cloud Shell

Inicie o Cloud Shell, que tem todas as ferramentas necessárias pré-instaladas:

Abrir o Cloud Shell

Como criar um projeto do Google Cloud

É necessário ter um projeto para usar o Google Cloud. Ele é a base de uso de todos os serviços do Google Cloud.

  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 a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative a Cloud Build API.

    Ative a API

  5. Instale a CLI do Google Cloud.
  6. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  7. 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

  8. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  9. Ative a Cloud Build API.

    Ative a API

  10. Instale a CLI do Google Cloud.
  11. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  12. Crie seu aplicativo do App Engine e os recursos associados a ele. Escolha um local, que não poderá ser alterado depois.
    gcloud app create

Como criar um serviço da Web básico para o App Engine

Saiba como criar um serviço da Web e declarar as configurações do ambiente de execução.

Como estruturar seus arquivos

Seu serviço terá a seguinte estrutura de arquivos:

  • go-app/: diretório do serviço Go 1.11.
    • app.yaml: as configurações do seu serviço.
    • main.go: o código do aplicativo

Como criar o arquivo app.yaml

Cada projeto do App Engine tem um arquivo de configuração app.yaml que especifica as configurações do ambiente de execução do serviço. Sem esse arquivo, não é possível implantar o serviço.

  1. Crie uma nova pasta chamada go-app para seu serviço Go:

    mkdir go-app

  2. Na pasta go-app/, crie um arquivo chamado app.yaml e adicione o conteúdo a seguir:

    runtime: go115  # or another supported version
    

    Essa é a configuração mais simples para um aplicativo do App Engine. Ela indica ao App Engine que você está usando o Go. O arquivo app.yaml pode especificar outras versões do Go, configurações de rede, configurações de dimensionamento e muito mais. Para mais informações, consulte a referência sobre app.yaml.

Como criar o arquivo main.go

Este exemplo usa o pacote net/http para criar um servidor HTTP que exibe a frase "Hello, World!".

Para configurar seu arquivo main.go, faça o seguinte:

  1. Na pasta go-app/, crie um arquivo main.go.

  2. Adicione a instrução package main para tratar seu código como um programa executável:

    package main
    

    Para implantar um serviço com sucesso, é preciso definir uma instrução package main no início de pelo menos um dos arquivos de origem Go.

  3. Importe os pacotes a seguir:

    import (
    	"fmt"
    	"log"
    	"net/http"
    	"os"
    )
    
  4. Defina seu gerenciador HTTP:

    
    // indexHandler responds to requests with our greeting.
    func indexHandler(w http.ResponseWriter, r *http.Request) {
    	if r.URL.Path != "/" {
    		http.NotFound(w, r)
    		return
    	}
    	fmt.Fprint(w, "Hello, World!")
    }
    

    O objeto http.ResponseWriter monta a resposta do servidor HTTP. Ao gravar nele, você envia dados para o navegador. O objeto http.Request é uma estrutura de dados que representa a solicitação HTTP de entrada.

  5. Registre seu gerenciador HTTP:

    
    func main() {
    	http.HandleFunc("/", indexHandler)
    
    	port := os.Getenv("PORT")
    	if port == "" {
    		port = "8080"
    		log.Printf("Defaulting to port %s", port)
    	}
    
    	log.Printf("Listening on port %s", port)
    	if err := http.ListenAndServe(":"+port, nil); err != nil {
    		log.Fatal(err)
    	}
    }
    

    A função main é o ponto de entrada do programa executável. Portanto, ela inicia o aplicativo. Ela começa com uma chamada para a função http.HandleFunc que orienta o pacote http a gerenciar todas as solicitações para a raiz da Web ("/") com a função indexHandler.

    Se a variável de ambiente PORT não estiver definida, a porta 8080 será usada como padrão. Quando o aplicativo estiver em execução no App Engine, a variável de ambiente PORT será definida para você. Porém, ao testar seu aplicativo localmente, será possível definir PORT com qualquer valor de sua preferência.

Como implantar o serviço da Web no App Engine

  1. No diretório go-app, onde o arquivo app.yaml está localizado, implante o serviço da Web no App Engine usando o seguinte comando:

    gcloud app deploy

  2. Para iniciar o navegador e visualizar o serviço da Web em https://PROJECT_ID.REGION_ID.r.appspot.com, execute o seguinte comando:

    gcloud app browse

Parabéns! Você acabou de criar e implantar um serviço no App Engine.

Serviços e versões

O primeiro serviço que você implantar para o aplicativo será o serviço padrão. É possível especificar o nome do serviço no arquivo app.yaml, mas se ele for omitido, será tratado como default. Também é possível implantar vários serviços além do serviço padrão.

Atualize o serviço a qualquer momento executando o comando gcloud app deploy. A cada implantação, uma nova versão é criada, e o tráfego é roteado automaticamente para a versão mais recente.

Para confirmar a criação do serviço e a implantação da versão:

  1. Veja os serviços do App Engine no console do Google Cloud:

    Ver os serviços

    Você verá um serviço listado, chamado default. Ele é acessível publicamente no seguinte URL:

    https://PROJECT_ID.REGION_ID.r.appspot.com

  2. Veja as versões:

    Ver as versões

    Você verá uma versão com carimbo de data/hora, correspondente à implantação.

Para saber como enviar solicitações para serviços e versões específicos, consulte Como as solicitações são encaminhadas.

Próximas etapas

Parabéns! Você acabou de configurar e implantar o aplicativo da Web no App Engine.

Saiba como adicionar outros recursos ao aplicativo explorando as seguintes páginas: