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 Google Cloud serviços e adicionar mais recursos a ele.
Custos
Não há custos associados à execução deste guia. A execução deste app de exemplo sozinho não excede sua cota sem custo financeiro.
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:
Crie um projeto do Google Cloud
Um projeto é necessário para usar Google Cloud, e forma a base para usar todos os Google Cloud serviços.
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init - 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
- Devido a mudanças no comportamento padrão de como o Cloud Build usa contas de serviço em novos projetos e mudanças nas políticas da organização seguras por padrão, talvez seja necessário conceder papéis adicionais à sua conta de serviço de implantação. Para mais informações sobre como conceder papéis específicos, consulte o guia de solução de problemas.
Gravar 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.
Estruture 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
Crie 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.
Crie uma nova pasta chamada
go-apppara seu serviço Go:mkdir go-app
Na pasta
go-app/, crie um arquivo chamadoapp.yamle adicione o conteúdo a seguir:runtime: go126 # or another supported versionEssa é 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.yamlpode 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 sobreapp.yaml.
Crie 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:
Na pasta
go-app/, crie um arquivomain.go.Adicione a instrução
package mainpara tratar seu código como um programa executável:package mainPara implantar um serviço com sucesso, é preciso definir uma instrução
package mainno início de pelo menos um dos arquivos de origem Go.Importe os pacotes a seguir:
Defina seu gerenciador HTTP:
O objeto
http.ResponseWritermonta a resposta do servidor HTTP. Ao gravar nele, você envia dados para o navegador. O objetohttp.Requesté uma estrutura de dados que representa a solicitação HTTP de entrada.Registre seu gerenciador HTTP:
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çãohttp.HandleFuncque orienta o pacotehttpa gerenciar todas as solicitações para a raiz da Web ("/") com a funçãoindexHandler.Se a variável de ambiente
PORTnão estiver definida, a porta8080será usada como padrão. Quando o aplicativo estiver em execução no App Engine, a variável de ambientePORTserá definida para você. Porém, ao testar seu aplicativo localmente, será possível definirPORTcom qualquer valor de sua preferência.
Implantar seu serviço no App Engine
No diretório
go-app, onde o arquivoapp.yamlestá localizado, implante o serviço da Web no App Engine usando o seguinte comando:gcloud app deploy
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:
Veja os serviços do App Engine no Google Cloud console do GCP:
Você verá um serviço listado, chamado
default. Ele é acessível publicamente no seguinte URL:https://PROJECT_ID.REGION_ID.r.appspot.comVeja 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:
- Saiba mais como gravar registros de aplicativos e interpretar registros do sistema em Como ler e gravar registros de aplicativos.
- Para saber mais sobre como o App Engine funciona, consulte Ambiente de execução do Go.
- Leia sobre como processar e como rotear solicitações.