Nesta página, descrevemos como implantar um novo pool de trabalhadores ou uma revisão de pool de trabalhadores no
Cloud Run diretamente do código-fonte usando um único
comando da CLI gcloud,
gcloud beta run worker-pools deploy com a
flag --source.
gcloud beta run worker-pools deploy
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.
Antes de começar
- Verifique se você configurou um novo projeto para o Cloud Run conforme descrito na página de configuração.
-
Enable the Cloud Run Admin 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.Depois que a API Cloud Run Admin for ativada, a conta de serviço padrão do Compute Engine será criada automaticamente.
Funções exigidas
Para implantar a partir da origem, você ou seu administrador precisa conceder à conta do implantador 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
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 pool de trabalhadores do Cloud Run interagir com APIsGoogle 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.
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:
- Go
- Node.js
- Python
- Java
- Kotlin
- Groovy
- Scala
- .NET
- Ruby
- PHP
Leia mais detalhes sobre as versões de linguagem compatíveis.
Implantar da origem com build
Nesta seção, descrevemos como usar os buildpacks do Google Cloud e o Cloud Build para criar automaticamente imagens de contêiner do código fonte sem instalar o Docker na máquina ou configurar os buildpacks ou o Cloud Build.
Limitações
- 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 beta run worker-pools 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
etageLast-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 pool de trabalhadores da origem usando 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 implantar com build
Antes de implantar da origem com build:
Siga as etapas em Antes de começar.
-
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.
Funções exigidas
Para implantar da origem com build, você ou seu administrador precisam conceder à conta de serviço do Cloud Build os seguintes papéis do IAM.
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 o 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@developer.gserviceaccount.com \ --role=roles/run.builder
Substitua PROJECT_NUMBER pelo número do projeto do Google Cloude PROJECT_ID pelo ID do projeto do 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 pool de trabalhadores do Cloud Run interagir com APIsGoogle 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 com build
Para implantar a partir do código-fonte:
-
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 pool de workers:
Substituagcloud beta run worker-pools deploy WORKERPOOL --source .
WORKERPOOLpelo nome que você quer dar ao pool de workers.Responda a todas as solicitações para instalar as APIs necessárias respondendo ao
yquando 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.
- Ver registros do pool de workers
- Monitorar pools de workers
- Definir limites de memória
- Definir as variáveis de ambiente
- Gerenciar o pool de workers
- Gerenciar revisões do pool de workers
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 pool de workers 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.
A seguir
Depois de implantar um pool de trabalhadores do Cloud Run, é possível fazer o seguinte: