Guia de início rápido: criar e implantar um app da Web em Go no Cloud Run
Saiba como usar um único comando para criar e implantar um aplicativo da Web "Hello World" com base em um exemplo de código para Google Cloud usando o Cloud Run.
Ao seguir as etapas deste guia de início rápido, o Cloud Run cria automaticamente um Dockerfile para você quando implanta do código-fonte.
Antes de começar
- 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.
-
Install the 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 gcloud CLI, execute o seguinte comando:
gcloud init
-
Create or select 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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Se você estiver usando um projeto atual para este guia, verifique se tem as permissões necessárias para concluir este guia. Se você criou um novo projeto, já tem as permissões necessárias.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the 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 gcloud CLI, execute o seguinte comando:
gcloud init
-
Create or select 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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Se você estiver usando um projeto atual para este guia, verifique se tem as permissões necessárias para concluir este guia. Se você criou um novo projeto, já tem as permissões necessárias.
-
Verify that billing is enabled for your Google Cloud project.
- Para definir o projeto padrão do serviço do Cloud Run:
Substitua PROJECT_ID pelo ID do projeto Google Cloud .gcloud config set project PROJECT_ID
Se você precisa seguir uma política da organização de restrição de domínio que restringe invocações não autenticadas para seu projeto, será necessário acessar o serviço implantado, conforme descrito em Como testar serviços particulares.
-
Enable the Cloud Run Admin API and Cloud Build APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com Depois que a API Cloud Run Admin for ativada, a conta de serviço padrão do Compute Engine será criadas automaticamente.
- Consulte os preços do Cloud Run ou estime os custos com a calculadora de preços.
-
Administrador do Cloud Run (
roles/run.admin
) no projeto -
Desenvolvedor de origem do Cloud Run (
roles/run.sourceDeveloper
) no projeto -
Leitor de registros (
roles/logging.logsViewer
) no projeto -
Administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin
) no projeto -
Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na identidade de serviço. Por padrão, essa é a conta de serviço padrão do Compute Engine. Crie um novo diretório com o nome
helloworld
e altere o diretório nele:mkdir helloworld cd helloworld
Inicialize um arquivo
go.mod
no diretório do projeto para declarar o módulo go:go mod init github.com/GoogleCloudPlatform/golang-samples/run/helloworld
Crie um novo arquivo chamado
main.go
e cole o código a seguir nele:Esse código cria um servidor da Web básico que realiza detecções na porta definida pela variável de ambiente
PORT
.No diretório do código-fonte, implante a pasta atual usando o seguinte comando:
gcloud run deploy --source .
Quando o nome do serviço for solicitado, pressione "Enter" para aceitar o nome padrão, por exemplo,
helloworld
.Se for solicitado que você ative APIs adicionais no projeto, por exemplo, a API Artifact Registry, responda pressionando
y
:Quando a região for solicitada, selecione a região que preferir, por exemplo,
europe-west1
.Se você for solicitado a criar um repositório na região especificada, responda pressionando
y
.Se for solicitado que você permita acesso público, siga estas etapas: responda
y
. Se houver um domínio, você não vai receber essa solicitação e a política de restrição da organização que impede isso. Para mais detalhes, consulte a seção Antes de começar.
Aguarde alguns instantes até a conclusão da implantação. Em caso de sucesso, a linha de comando exibe o URL de serviço.
Consulte o contêiner implantado abrindo o URL de serviço em um navegador da Web.
asia-east1
(Taiwan)asia-northeast1
(Tóquio)asia-northeast2
(Osaka)asia-south1
(Mumbai, Índia)europe-north1
(Finlândia)Baixo CO2
europe-north2
(Estocolmo)Baixo CO2
europe-southwest1
(Madri)Baixo CO2
europe-west1
(Bélgica)Baixo CO2
europe-west4
(Países Baixos)Baixo CO2
europe-west8
(Milão)europe-west9
(Paris)Baixo CO2
me-west1
(Tel Aviv)northamerica-south1
(México)us-central1
(Iowa)Baixo CO2
us-east1
(Carolina do Sul)us-east4
(Norte da Virgínia)us-east5
(Columbus)us-south1
(Dallas)Baixo CO2
us-west1
(Oregon)Baixo CO2
africa-south1
(Johannesburgo)asia-east2
(Hong Kong)asia-northeast3
(Seul, Coreia do Sul)asia-southeast1
(Singapura)asia-southeast2
(Jacarta)asia-south2
(Déli, Índia)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Varsóvia, Polônia)europe-west10
(Berlim)Baixo CO2
europe-west12
(Turim)europe-west2
(Londres, Reino Unido)Baixo CO2
europe-west3
(Frankfurt, Alemanha)europe-west6
(Zurique, Suíça)Baixo CO2
me-central1
(Doha)me-central2
(Damã)northamerica-northeast1
(Montreal)Baixo CO2
northamerica-northeast2
(Toronto)Baixo CO2
southamerica-east1
(São Paulo, Brasil)Baixo CO2
southamerica-west1
(Santiago, Chile)Baixo CO2
us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)No Google Cloud console, acesse o Cloud Run:
Localize o serviço que você quer excluir na lista de serviços e clique na caixa de seleção para marcá-lo.
Clique em Excluir. Isso excluirá todas as revisões do serviço.
- SERVICE: nome do serviço.
- REGION: Google Cloud região do serviço.
Funções exigidas
Para conseguir as permissões necessárias para concluir este guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Conceder acesso ao projeto à conta de serviço do Cloud Build
O Cloud Build usa automaticamente a conta de serviço padrão do Compute Engine como a conta de serviço padrão do Cloud Build para criar seu código-fonte e o recurso do Cloud Run, a menos que você substitua esse comportamento.
Para que o Cloud Build crie suas origens, conceda à conta de serviço do Cloud Build o papel Builder do Cloud Run (roles/run.builder
) no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Substitua PROJECT_ID
pelo ID do projeto Google Cloude SERVICE_ACCOUNT_EMAIL_ADDRESS
pelo endereço de e-mail da conta de serviço do Cloud Build. Se você estiver usando a
conta de serviço padrão do Compute Engine como a conta de serviço do Cloud Build, use o seguinte formato para o endereço de e-mail da conta de serviço:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua PROJECT_NUMBER
pelo número do seu projeto Google Cloud.
Para instruções detalhadas sobre como encontrar o ID e o número do projeto, consulte Criar e gerenciar projetos.
A concessão da função de builder do Cloud Run leva alguns minutos para se propagar.
Crie o aplicativo de exemplo
Para escrever um aplicativo em Go:
O app está concluído e pronto para ser implantado.
Implantar no Cloud Run da origem
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 o papel de desenvolvedor de origem do Cloud Run para ter acesso às permissões necessárias para implantar um recurso do Cloud Run a partir da origem.
A implantação a partir da origem cria automaticamente uma imagem de contêiner com base no código-fonte e a implanta.
Para implantar a partir da origem:
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 Google Cloud
produtos 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
Sujeitas aos preços do nível 2
Se você já criou um serviço do Cloud Run, é possível visualizar a região no painel do Cloud Run no console doGoogle Cloud .
Limpar
Para evitar cobranças extras na sua conta do Google Cloud , exclua todos os recursos implantados com este guia de início rápido.
Excluir o repositório
O Cloud Run não cobra quando o serviço implantado não está em uso. No entanto, ainda é possível receber cobranças pelo armazenamento da imagem do contêiner no Artifact Registry. Para excluir repositórios do Artifact Registry, siga as etapas em Excluir repositórios na documentação do Artifact Registry.
Excluir o serviço
Os serviços do Cloud Run não geram custos até receberem solicitações. Para excluir o serviço do Cloud Run, siga uma destas etapas:
Console
Para excluir um serviço, realize as etapas a seguir:
gcloud
Para excluir um serviço, execute o seguinte comando:
gcloud run services delete SERVICE --region REGION
Substitua:
Excluir o projeto de teste
A exclusão do projeto Google Cloud interrompe o faturamento de todos os recursos nele. Para liberar todos os recursos Google Cloud no seu projeto, siga estas etapas:
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
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: