Veja nesta página como implantar novos serviços e novas
revisões no Cloud Run diretamente do código-fonte usando apenas um
comando da CLI gcloud run deploy
, com a
sinalização --source
. Para ver 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. Ou
seja, o comando único descrito acima faz o que exigiria os comandos
gcloud builds submit
e gcloud run deploy
.
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. Toda vez que você implanta, as correções de segurança necessárias são selecionadas automaticamente a partir da imagem base.
Idiomas compatíveis
Além de fontes com um Dockerfile, é possível implantar da fonte com as seguintes linguagens:
- Go
- Node.js
- Python
- Java
- Kotlin
- .NET
- Ruby
- PHP
Leia mais detalhes sobre as versões de linguagem com suporte nos buildpacks do Google Cloud.
Limitações deste recurso
- A implantação da origem usa o Artifact Registry. Portanto, esse recurso só está disponível em regiões compatíveis com o Artifact Registry.
- A implantação a partir da origem usando
gcloud run deploy --source
é 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 (usandogcloud 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 pacotes de compilação
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.
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.
Permissões necessárias para implantar
Para implantar a partir da origem, é necessário ter permissões para criar, armazenar a imagem do contêiner criada e implantar.
Você precisa ter UM dos seguintes papéis:
- Papel de proprietário
- Papel de editor
O conjunto de papéis a seguir:
- Papel de editor do Cloud Build
- Papel de administrador do Artifact Registry
- Papel de administrador de armazenamento
- Papel de administrador do Cloud Run
- Papel Usuário da conta de serviço
Como implantar
Para implantar a partir do código-fonte:
Mude para o diretório de origem. Observe que o diretório de origem não requer um Dockerfile. No entanto, se um Dockerfile estiver presente, ele será usado.
Crie e implante seu aplicativo:
gcloud run deploy SERVICE --source .
Substitua
SERVICE
pelo nome do serviço.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, uma mensagem semelhante a esta será exibida:
Service [my-app] revision [my-app-00000-xxx] has been deployed and is serving 100 percent of traffic. Service URL: https://my-app-texampleq-uc.a.run.app
Após a implantação, observe que essa revisão de serviço atende a 100% do tráfego.
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 novo serviço, é possível realizar estas ações:
- 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
Automatize as compilações e as implantações dos serviços do Cloud Run usando os gatilhos do Cloud Build: