Crie uma app Go no App Engine

ID da região

O REGION_ID é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após fevereiro de 2020, REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criadas antes desta data, o ID da região é opcional no URL.

Saiba mais acerca dos IDs de regiões.

Este guia ajuda a começar a usar o App Engine e a familiarizar-se com o desenvolvimento, a implementação e a gestão de uma app Go.

Depois de criar a sua app, pode ler outros tutoriais para saber como fazer a integração com outros Google Cloud serviços e adicionar mais funcionalidades à sua app.

Custos

Não existem custos associados à execução deste guia. A execução desta app de exemplo sozinha não excede a sua quota gratuita.

Configure o ambiente de programação

Pode usar o seu computador local e usar ferramentas com as quais já está familiarizado ou o Cloud Shell. O Cloud Shell tem a CLI gcloud já instalada, o seu ambiente já configurado e muitas outras funcionalidades.

Máquina local

Instale o Go e configure a CLI gcloud, conforme descrito no artigo Configurar o ambiente de desenvolvimento.

Cloud Shell

Inicie o Cloud Shell, que tem todas as ferramentas de que precisa pré-instaladas:

Abra o Cloud Shell

Crie um Google Cloud projeto

É necessário um projeto para usar o Google Cloud, e este constitui a base para usar todos os serviços doGoogle Cloud .

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Crie a sua app do App Engine e os recursos associados. Tem de escolher uma localização, que não pode ser alterada mais tarde.
    gcloud app create
  15. Devido a alterações no comportamento predefinido da forma como o Cloud Build usa as contas de serviço em novos projetos e alterações à política organizacional segura por predefinição, pode ter de conceder funções adicionais à sua conta de serviço de implementação. Para mais informações sobre a concessão de funções específicas, consulte o guia de resolução de problemas.
  16. Escreva um serviço Web básico para o App Engine

    Saiba como escrever um serviço Web e declarar definições de tempo de execução.

    Estruture os seus ficheiros

    O seu serviço tem a seguinte estrutura de ficheiros:

    • go-app/: diretório para o seu serviço Go.
      • app.yaml: as definições de configuração do seu serviço.
      • main.go: o código da sua candidatura.

    Crie o ficheiro app.yaml

    Todos os projetos do App Engine têm um ficheiro de configuração app.yaml que especifica as definições do ambiente de tempo de execução do seu serviço. O seu serviço não vai ser implementado sem este ficheiro.

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

      mkdir go-app

    2. Na pasta go-app/, crie um ficheiro denominado app.yaml e adicione o seguinte conteúdo:

      runtime: go125  # or another supported version
      

      Esta é a configuração mais simples para uma app do App Engine. Indica ao App Engine que está a usar o Go. O ficheiro app.yaml pode especificar outras versões do Go, definições de rede, definições de escalabilidade e muito mais. Para mais informações, consulte a referência app.yaml.

    Crie o ficheiro main.go

    Este exemplo usa o pacote net/http para criar um servidor HTTP que imprime "Olá, mundo!".

    Para configurar o seu ficheiro main.go:

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

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

      package main
      

      Para implementar com êxito um serviço, tem de definir uma declaração package main no início de, pelo menos, um dos seus ficheiros de origem Go.

    3. Importe os seguintes pacotes:

      import (
      	"fmt"
      	"log"
      	"net/http"
      	"os"
      )
      
    4. Defina o seu controlador 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 reúne a resposta do servidor HTTP. Ao escrever nele, envia dados para o navegador. O objeto http.Request é uma estrutura de dados que representa o pedido HTTP recebido.

    5. Registe o seu controlador 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 seu programa executável, pelo que inicia a aplicação. Começa com uma chamada à função http.HandleFunc que indica ao pacote http que processe todos os pedidos à raiz da Web ("/") com a função indexHandler.

      Se a variável de ambiente PORT não estiver definida, a porta 8080 é usada como predefinição. Quando a sua app está a ser executada no App Engine, a variável de ambiente PORT é definida automaticamente. No entanto, quando testa a app localmente, pode definir PORT para qualquer valor preferencial.

    Implemente o seu serviço Web no App Engine

    1. No diretório go-app onde se encontra o ficheiro app.yaml, implemente o serviço Web no App Engine através do seguinte comando:

      gcloud app deploy

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

      gcloud app browse

    Parabéns! Acabou de criar e implementar um serviço no App Engine.

    Serviços e versões

    O primeiro serviço que implementar para a sua aplicação é o serviço predefinido. Pode especificar o nome do seu serviço no ficheiro app.yaml, mas se o nome for omitido, é tratado como default. Pode implementar vários serviços além do serviço predefinido.

    Pode atualizar o seu serviço em qualquer altura executando o comando gcloud app deploy. Cada vez que implementa, é criada uma nova versão e o tráfego é encaminhado automaticamente para a versão mais recente.

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

    1. Veja os seus serviços do App Engine na Google Cloud consola:

      Veja os serviços

      Deve ver um serviço listado com o nome default. O serviço predefinido é acessível publicamente no seguinte URL:

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

    2. Veja as suas versões:

      Ver versões

      Deve ver uma versão com indicação de data/hora, correspondente à sua implementação.

    Para saber como enviar pedidos para serviços e versões específicos, consulte o artigo Como os pedidos são encaminhados.

    Passos seguintes

    Parabéns! Acaba de configurar e implementar a sua aplicação Web no App Engine.

    Saiba como adicionar outras funcionalidades à sua aplicação explorando as seguintes páginas: