Esta página descreve como implementar um novo serviço ou uma revisão de serviço no Cloud Run diretamente a partir do código fonte através de um único comando da CLI gcloud,
gcloud run deploy
com a flag --source
. Para um exemplo
passo a passo da implementação de um serviço Hello World, consulte os
Inícios rápidos de implementação a partir da origem.
Nos bastidores, este comando usa os
buildpacks do Google Cloud
e o Cloud Build para criar automaticamente imagens de contentores a partir do seu código-fonte
sem ter de instalar o Docker na sua máquina nem configurar buildpacks ou
o Cloud Build. Por predefinição, o Cloud Run usa o tipo de máquina predefinido fornecido pelo Cloud Build.
A execução de gcloud run deploy --source
elimina a necessidade de executar também o comando gcloud builds submit
.
Tenha em atenção que as implementações de origem usam o Artifact Registry para armazenar contentores criados. Se o seu projeto ainda não tiver um repositório do Artifact Registry com o nome cloud-run-source-deploy
na região para a qual está a fazer a implementação, esta funcionalidade cria automaticamente um repositório do Artifact Registry com o nome cloud-run-source-deploy
.
Se existir um Dockerfile no diretório do código-fonte, o código-fonte carregado é criado com esse Dockerfile. Se não existir nenhum Dockerfile no diretório de código-fonte, os buildpacks do Google Cloud detetam automaticamente a linguagem que está a usar e obtêm as dependências do código para criar uma imagem de contentor pronta para produção, usando uma imagem base segura gerida pela Google.
Por predefinição, as correções de segurança só são aplicadas quando o serviço do Cloud Run é implementado. Quando ativa as atualizações de segurança automáticas para um serviço, esse serviço recebe patches automaticamente sem tempo de inatividade. Saiba mais sobre como configurar atualizações de segurança.Idiomas suportados
Além das origens com um Dockerfile, a implementação a partir da origem suporta os seguintes idiomas através dos buildpacks do Google Cloud:
Tempo de execução | Implementação da origem | Configuração do buildpack |
---|---|---|
Ir | Implemente um serviço Go | Configure os buildpacks do Go |
Node.js | Implemente um serviço Node.js | Configure buildpacks do Node.js |
Python | Implemente um serviço Python | Configure os buildpacks do Python |
Java (inclui Kotlin, Groovy e Scala) |
Implemente um serviço Java | Configure os buildpacks Java |
.NET | Implemente um serviço .NET | Configure buildpacks .NET |
Ruby | Implemente um serviço Ruby | Configure os buildpacks do Ruby |
PHP | Implemente um serviço PHP | Configure os buildpacks do PHP |
Limitações desta funcionalidade
- A implementação a partir da origem usa o Artifact Registry e o Cloud Build, pelo que esta funcionalidade só está disponível nas regiões suportadas pelo Artifact Registry e pelo Cloud Build.
- A implementação a partir da origem é uma funcionalidade
de conveniência e não permite a personalização total da compilação. Para ter mais controlo, crie a imagem de contentor com o Cloud Build, por exemplo, usando
gcloud builds submit
e, em seguida, implemente a imagem de contentor usando, por exemplo,gcloud run deploy --image
. - A implementação a partir da origem com os buildpacks do Google Cloud define a data da última modificação dos ficheiros de origem como 1 de janeiro de 1980. Este é o comportamento predefinido dos buildpacks e foi concebido para suportar compilações reproduzíveis. Dependendo da sua framework de idiomas, isto pode afetar o armazenamento em cache no navegador de ficheiros estáticos. Se
a sua aplicação for afetada por esta situação, a Google recomenda que desative os cabeçalhos HTTP
etag
eLast-Modified
na sua aplicação. - A implementação a partir da origem com os buildpacks do Google Cloud usa sempre o
gcr.io/buildpacks/builder:latest
. Se a sua configuração de idioma ou SO preferida não estiver disponível nolatest
, use um criador específico para criar uma imagem da aplicação com o seu criador preferido. Pode implementar o seu serviço a partir da origem usando Kotlin e outras linguagens JVM, como Java. A linguagem que usa tem de estar em conformidade com as seguintes regras:
- Pode criar a aplicação com o Maven ou o Gradle.
- O ficheiro de compilação contém todos os plug-ins necessários para as classes de produtos.
Antes de começar
- Certifique-se de que configurou um novo projeto para o Cloud Run, conforme descrito na página de configuração.
Se estiver ao abrigo de uma política da organização de restrição de domínio que restringe invocações não autenticadas para o seu projeto, tem de aceder ao serviço implementado conforme descrito em Testar serviços privados.
-
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 de ativar a API Cloud Run Admin, a conta de serviço predefinida do Compute Engine é criada automaticamente.
Funções necessárias
O utilizador ou o administrador tem de conceder à conta de implementação e à conta de serviço do Cloud Build as seguintes funções do IAM.
Clique para ver as funções necessárias para a conta do implementador
Para receber as autorizações de que precisa para criar e implementar a partir da origem, peça ao seu administrador que lhe conceda as seguintes funções de IAM:
- Programador de origem do Cloud Run (
roles/run.sourceDeveloper
) no seu projeto - Consumidor de utilização do serviço (
roles/serviceusage.serviceUsageConsumer
) no seu projeto - Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na identidade do serviço do Cloud Run
Clique para ver as funções necessárias para a conta de serviço do Cloud Build
O Cloud Build usa automaticamente a
conta de serviço predefinida do Compute Engine como a conta de serviço predefinida do Cloud Build para compilar o seu código-fonte e o
recurso do Cloud Run, a menos que substitua este comportamento. Para que o Cloud Build compile as suas origens, peça ao administrador para conceder a função
Cloud Run Builder
(roles/run.builder
) à conta de serviço predefinida do Compute Engine no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Substitua PROJECT_NUMBER
pelo seu Google Cloud
número do projeto e PROJECT_ID
pelo seu Google Cloud
ID do projeto. Para ver instruções detalhadas sobre como encontrar o ID e o número do projeto,
consulte o artigo Criar
e gerir projetos.
A concessão da função de criador do Cloud Run à conta de serviço predefinida do Compute Engine demora alguns minutos a propagar.
Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.
Implemente a partir da origem
Para implementar a partir do código fonte, clique no separador com instruções sobre como usar a ferramenta da 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.
Altere 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 implemente o seu serviço:
gcloud run deploy SERVICE --source .
Substitua
SERVICE
pelo nome que quer para o seu serviço.Opcionalmente, se o seu código-fonte usar um dos tempos de execução de linguagem suportados e quiser configurar atualizações automáticas de imagens base para o seu tempo de execução, especifique a flag
--automatic-updates
e a flag--base-image
com a imagem base para o seu serviço, por exemplo,nodejs22
.Responda a todas as instruções para instalar as APIs necessárias respondendo
y
quando lhe for pedido. Só tem de fazer isto uma vez por projeto. Responda a outros pedidos fornecendo a plataforma e a região, se não tiver definido predefinições para estas, conforme descrito na página de configuração.Aguarde pela conclusão da compilação e da implementação. Quando terminar, o Cloud Run apresenta uma mensagem de êxito.
Instale a versão mais recente da CLI Gemini num dos seguintes ambientes de desenvolvimento:
- Terminal
- Cloud Shell
- VS Code com o modo de agente do Gemini Code Assist (consulte o separador "VS Code")
Instale a extensão do Cloud Run:
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
Inicie sessão na CLI Google Cloud:
gcloud auth login
Configure as Credenciais padrão da aplicação:
gcloud auth application-default login
Altere para o diretório de código-fonte.
Inicie a CLI do Gemini:
gemini
Crie e implemente o seu serviço:
/deploy
- Se lhe for pedido que indique o Google Cloud projeto, introduza o nome do projeto.
- Se lhe for pedido que selecione uma ferramenta, selecione
deploy_local_folder
.
Aguarde pela conclusão da compilação e da implementação. Quando terminar, o Cloud Run apresenta uma mensagem de êxito.
Após a implementação, esta revisão do serviço publica 100% do tráfego.
Cloud Code
Para implementar a partir da origem com 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 implementar um serviço do Cloud Run a partir do código fonte.
Para usar a CLI Gemini com a extensão servidor do protocolo Model Context Protocol (MCP) do Cloud Run, siga estes passos:
VS Code
Para implementar um serviço do Cloud Run a partir do código fonte
usando o VS Code com o modo de agente do Gemini Code Assist, veja como
usar o comando /deploy
.
Para disponibilizar o servidor do protocolo Model Context Protocol (MCP) do Cloud Run para utilização no modo de agente do Gemini Code Assist, adicione a seguinte configuração no ficheiro JSON das definições do Gemini:
"mcpServers":{ "cloud-run": { "command": "npx", "args": ["-y", "@google-cloud/cloud-run-mcp"] } }
Automatizar a compilação a partir da origem
Como prática recomendada para evitar alterações sem versão na origem local, a Google recomenda que faça a implementação automaticamente quando as alterações são enviadas para o seu repositório Git. Para facilitar este processo, pode ligar e configurar a implementação contínua no seu serviço do Cloud Run. Ao associar os seus repositórios do GitHub ao Cloud Run, pode configurar compilações e implementar os seus repositórios sem escrever Dockerfiles nem ficheiros de compilação.
Para configurar compilações automatizadas, configure a automatização conforme descrito na página de compilações contínuas, certificando-se de que escolhe a opção para criar a origem com buildpacks.O que se segue?
Depois de implementar um serviço do Cloud Run, pode fazer o seguinte:
- Implementações graduais, reversão de revisões e migração de tráfego
- Veja registos de serviço
- Monitorize os desempenhos dos serviços
- Defina limites de memória
- Defina variáveis de ambiente
- Altere a simultaneidade do serviço
- Faça a gestão do serviço
- Faça a gestão das revisões de serviços
Saiba mais sobre as configurações de implementação de origem:
- Atualizações automáticas de imagens base
- Crie variáveis de ambiente
- Crie uma conta de serviço
- Crie conjuntos de trabalhadores
Pode automatizar as compilações e as implementações dos seus serviços do Cloud Run usando acionadores do Cloud Build: