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:
-
Desenvolvedor de origem do Cloud Run (
roles/run.sourceDeveloper
) -
Usuário da conta de serviço (
roles/iam.serviceAccountUser
)
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:
- Crie seu pool de workers particulares. Consulte Como criar e gerenciar pools particulares.
Configure seu perímetro de VPC Service Controls. Consulte Como usar o VPC Service Controls.
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.
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.