Definir pools de workers de build (implantação de origem)

Quando você implanta o código-fonte no Cloud Run, essa fonte é armazenada em um bucket do Cloud Storage. Em seguida, o Cloud Build cria automaticamente seu código em uma imagem de contêiner e a envia para um registro de imagens. Cada build é executado em seu próprio worker. O Cloud Run importa a imagem criada durante a implantação.

Se você quiser personalizar o pool de workers do build que o Cloud Build usa para um contexto de build protegido pelo VPC Service Controls, deve personalizar o pool de workers. Esta página é relevante para desenvolvedores de plataformas que estão implantando da fonte para o Cloud Run, incluindo ao implantar uma função e configurar pools privados usados pelo Cloud Build.

Antes de começar

Ativar a API Cloud Build

gcloud services enable cloudbuild.googleapis.com

Funções exigidas

Para receber as permissões necessárias para implantar a partir da origem, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

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 as APIs do Google 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.

Proteger o build com pools particulares

Por padrão, o Cloud Build tem acesso ilimitado à Internet durante o processo de build. Se você configurou um perímetro do VPC Service Controls (VPC SC) e quer limitar o acesso do build apenas às dependências armazenadas dentro do perímetro (por exemplo, pacotes npm), é possível usar o recurso Pools de workers particulares do Cloud Build.

Em geral, siga estas etapas para configurar seu pool particular:

  1. Crie seu pool de workers particulares. Consulte Como criar e gerenciar pools particulares.
  2. Configure seu perímetro de VPC Service Controls. Consulte Como usar o VPC Service Controls.

  3. Se seu pool de workers particulares estiver em um projeto diferente do serviço do Cloud Run, você precisará conceder ao Agente de serviço do Cloud Run (service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com) a função de Usuário do WorkerPool do Cloud Build (cloudbuild.workerPoolUser) para que o serviço doCloud Build possa acessar o pool de workers.

    gcloud projects add-iam-policy-binding PRIVATE_POOL_PROJECT_ID \
        --member serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \
        --role roles/cloudbuild.workerPoolUser

    Substitua:

    • PROJECT_NUMBER pelo número do projeto em que o serviço é executado.
    • PRIVATE_POOL_PROJECT_ID pelo ID do projeto em que o pool de workers está localizado. Consulte Como executar buids em um pool particular para mais informações.
  4. Implante o serviço da fonte para criar usando um pool particular:

gcloud

Para especificar um pool particular para criar ao implantar do código-fonte:

gcloud beta run deploy SERVICE \
  --source . \
  --build-worker-pool WORKER_POOL

Substitua:

  • SERVICE pelo nome do serviço.
  • WORKER_POOL pelo nome do pool particular.

Se você estiver implantando uma função, adicione a sinalização --function com o ponto de entrada da função no código-fonte.

Excluir pools de workers de build

É possível excluir pools de workers de build para serviços existentes.

gcloud

Para limpar o pool de workers do Cloud Build para implantações de origem:

gcloud beta run deploy SERVICE \
  --source . \
  --clear-build-worker-pool WORKER_POOL

Substitua:

  • SERVICE pelo nome do serviço.
  • WORKER_POOL pelo nome do pool particular que você quer excluir.