Nesta página, descrevemos como implantar um novo serviço ou uma revisão de serviço no
Cloud Run diretamente do código-fonte usando um único
comando da CLI gcloud,
gcloud run deploy
com a
sinalização --source
. Para conferir um exemplo
de como implantar um serviço Hello World, consulte
Implantar usando os guias de início rápido da origem.
Nos bastidores, esse comando usa os
buildpacks do Google Cloud
e o Cloud Build para criar automaticamente imagens de contêiner a partir do código
fonte sem instalar o Docker na máquina ou configurar os buildpacks ou o
Cloud Build. Por padrão, o Cloud Run usa o
tipo de máquina padrão fornecido pelo Cloud Build.
Executar gcloud run deploy --source
elimina a necessidade de executar também o
comando gcloud builds submit
.
Observe que as implantações de origem usam o Artifact Registry para
armazenar contêineres criados. Se o projeto ainda não tiver um repositório do
Artifact Registry com o nome cloud-run-source-deploy
na região em que você está
implantando, esse recurso cria automaticamente um repositório do Artifact Registry
com o nome cloud-run-source-deploy
de dados.
Se houver um Dockerfile no diretório de código-fonte, o código-fonte enviado será criado usando esse Dockerfile. Se nenhum Dockerfile estiver presente no diretório do código-fonte, os buildpacks do Google Cloud detectarão automaticamente a linguagem usada e buscarão as dependências do código para criar uma imagem de contêiner pronta para produção, usando uma imagem de base segura gerenciada pelo Google.
Por padrão, as correções de segurança só são aplicadas quando o serviço do Cloud Run é implantado. Quando você ativa as atualizações automáticas de segurança em um serviço, ele recebe patches automaticamente sem inatividade. Saiba mais sobre configurando atualizações de segurança.Idiomas compatíveis
Além de fontes com um Dockerfile, é possível implantar da fonte com as seguintes linguagens usando os buildpacks do Google Cloud:
Ambiente de execução | Implantação de origem | Configuração do buildpack |
---|---|---|
Go | Implantar um serviço Go | Configurar buildpacks do Go |
Node.js | Implantar um serviço Node.js | Configurar buildpacks do Node.js |
Python | Implantar um serviço Python | Configurar buildpacks do Python |
Java (inclui Kotlin, Groovy e Scala) |
Implantar um serviço Java | Configurar buildpacks Java |
.NET | Implantar um serviço .NET | Configurar buildpacks do .NET |
Ruby | Implantar um serviço Ruby | Configurar buildpacks do Ruby |
PHP | Implantar um serviço PHP | Configurar buildpacks do PHP |
Limitações deste recurso
- A implantação da origem usa o Artifact Registry e o Cloud Build. Portanto, esse recurso só está disponível em regiões compatíveis com o Artifact Registry e o Cloud Build.
- A implantação a partir da origem é um recurso prático e não permite a personalização completa do build. Para ter mais controle,
crie a imagem do contêiner usando o Cloud Build (usando
gcloud builds submit
, por exemplo) e, em seguida, implante a imagem do contêiner (usandogcloud run deploy --image
, por exemplo). - A implantação de origem com buildpacks do Google Cloud define a data da última modificação dos arquivos de origem como 1º de janeiro de 1980. Esse é o comportamento padrão dos buildpacks e foi projetado para ser compatível com
builds reproduzíveis. Dependendo do
framework da linguagem, isso pode afetar o armazenamento em cache de arquivos estáticos no navegador. Se
o aplicativo for afetado por isso, o Google recomenda desativar os cabeçalhos HTTP
etag
eLast-Modified
. - A implantação de origem com buildpacks do Google Cloud sempre usa
gcr.io/buildpacks/builder:latest
. Se a configuração de idioma ou SO de sua preferência não estiver disponível emlatest
, use um builder específico para criar uma imagem de aplicativo usando o builder que você preferir. É possível implantar o serviço a partir da origem usando o Kotlin e outras linguagens da JVM, como Java. A linguagem usada precisa obedecer às seguintes regras:
- É possível criar o aplicativo usando Maven ou Gradle.
- O arquivo de build contém todos os plug-ins necessários para as classes de produto.
Antes de começar
- Verifique se você configurou um novo projeto para o Cloud Run conforme descrito na página de configuração.
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.Depois que a API Cloud Run Admin for ativada, a conta de serviço padrão do Compute Engine será criadas automaticamente.
Funções exigidas
Você ou seu administrador precisa conceder à conta do implantador e à conta de serviço do Cloud Build os seguintes papéis do IAM.
Clique para conferir os papéis necessários para a conta do implantador
Para receber as permissões necessárias para criar e implantar a partir da origem, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Desenvolvedor de origem do Cloud Run (
roles/run.sourceDeveloper
) no seu projeto - Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer
) no seu projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na identidade de serviço do Cloud Run
Clique para conferir os papéis necessários para a 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
recurso do Cloud Run, a menos que você substitua esse comportamento. Para que o Cloud Build crie suas origens, peça ao administrador para conceder o papel
Criador do Cloud Run
(roles/run.builder
) à conta de serviço padrão do Compute Engine
no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@ \ --role=roles/run.builder
Substitua PROJECT_NUMBER
pelo número do projeto Google Cloude PROJECT_ID
pelo ID do 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 do papel de builder do Cloud Run à conta de serviço padrão do Compute Engine leva alguns minutos para se propagar.
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com APIs doGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
Implantar a partir da origem
Para fazer a implantação do código-fonte, clique na guia para ver instruções sobre como usar a ferramenta de sua escolha.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Mude para o diretório de origem. O diretório de origem usa um Dockerfile se estiver presente, embora não seja obrigatório.
Crie e implante seu serviço:
gcloud run deploy SERVICE --source .
Substitua
SERVICE
pelo nome do serviço.Como opção, se o código-fonte usar um dos ambientes de execução de linguagem compatíveis e você quiser configurar atualizações automáticas de imagem de base para o ambiente de execução, especifique a flag
--automatic-updates
e a flag--base-image
com a imagem de base do serviço, por exemplo,nodejs22
.Responda a todas as solicitações para instalar as APIs necessárias respondendo ao
y
quando solicitado. Você só precisa fazer isso uma vez para um projeto. Responda a outras solicitações fornecendo a plataforma e a região, se você não tiver definido os padrões delas, conforme descrito na página de configuração.Aguarde a conclusão da criação e da implantação. Quando terminar, o Cloud Run vai mostrar uma mensagem de sucesso.
Instale a versão mais recente da CLI do Gemini em um dos seguintes ambientes de desenvolvimento:
- Terminal
- Cloud Shell
- VS Code usando o modo Agente do Gemini Code Assist (consulte a guia "VS Code")
Instale a extensão do Cloud Run:
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
Faça login na Google Cloud CLI:
gcloud auth login
Configure as Application Default Credentials:
gcloud auth application-default login
Mude para o diretório do código-fonte.
Inicie a CLI do Gemini:
gemini
Crie e implante seu serviço:
/deploy
- Se for solicitado que você forneça o projeto Google Cloud , insira o nome do projeto.
- Se for solicitado, selecione
deploy_local_folder
.
Aguarde a conclusão da criação e da implantação. Quando terminar, o Cloud Run vai mostrar uma mensagem de sucesso.
Após a implantação, essa revisão de serviço atende a 100% do tráfego.
Cloud Code
Para implantar do código-fonte usando o Cloud Code, leia os guias do IntelliJ e do Visual Studio Code.
CLI do Gemini
Use o comando /deploy
na ferramenta CLI do Gemini para implantar um serviço do Cloud Run com base no código-fonte.
Para usar a CLI do Gemini com a extensão servidor do protocolo de contexto de modelo (MCP) do Cloud Run, siga estas etapas:
VS Code
Para implantar um serviço do Cloud Run do código-fonte
usando o VS Code com o modo agente do Gemini Code Assist, consulte como
usar o comando /deploy
.
Para disponibilizar o servidor do protocolo de contexto de modelo (MCP) do Cloud Run para uso no modo Agente do Gemini Code Assist, adicione a seguinte configuração ao arquivo JSON de configurações do Gemini:
"mcpServers":{ "cloud-run": { "command": "npx", "args": ["-y", "@google-cloud/cloud-run-mcp"] } }
Como automatizar a criação a partir da fonte
Como prática recomendada para evitar alterações sem versão na fonte local, o Google recomenda que você implante automaticamente quando as alterações forem enviadas ao seu repositório Git. Para facilitar esse processo, é possível conectar e configurar a implantação contínua no serviço do Cloud Run. Ao conectar seus repositórios do GitHub ao Cloud Run, é possível configurar versões e implantar seus repositórios sem escrever Dockerfiles ou arquivos de criação.
Para configurar versões automatizadas, configure a automação conforme descrito na página de versões contínuas, certificando-se de escolher a opção de criar a fonte com os buildpacks.A seguir
Depois de implantar um serviço do Cloud Run, é possível fazer o seguinte:
- Reversões, lançamentos graduais e migração de tráfego
- Visualizar registros de serviço
- Monitorar o desempenho do serviço
- Definir limites de memória
- Definir as variáveis de ambiente
- Alterar a simultaneidade do serviço
- Gerenciar o serviço
- Gerenciar revisões de serviço
Saiba mais sobre as configurações de implantação de origem:
- Atualizações automáticas de imagem de base
- Variáveis de ambiente de build
- Criar conta de serviço
- Pools de workers do build
Automatize as compilações e as implantações dos serviços do Cloud Run usando os gatilhos do Cloud Build: