Configurar sandboxes para pools de workers

As sandboxes do Cloud Run oferecem um ambiente rápido, seguro e isolado para executar fluxos de trabalho de agentes no pool de workers, executar payloads não confiáveis e processar eventos isoladamente. As sandboxes são altamente otimizadas para latência e são executadas na mesma instância do contêiner, compartilhando a CPU e a memória alocadas.

Esta página descreve como configurar sandboxes no contêiner. Para detalhes sobre como escrever código para interagir com a sandbox usando a CLI, consulte Execução de código no Cloud Run.

Antes de começar

  1. Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Instale e inicialize a CLI gcloud.
  7. Implante um pool de workers do Cloud Run .

Funções exigidas

Para receber as permissões necessárias para configurar e implantar pools de workers do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:

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 workers do Cloud Run interagir com Google Cloud APIs, como 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.

Ativar sandboxes

Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

Para ativar sandboxes em pools de workers do Cloud Run, use a Google Cloud CLI ou uma configuração YAML:

gcloud

Para implantar ou atualizar o pool de workers, especifique o sinalizador --sandbox-launcher:

  • Para implantar um novo pool de workers, execute o seguinte comando:

    gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL --sandbox-launcher

    Substitua:

    • WORKER_POOL: o nome do pool de workers do Cloud Run.
    • IMAGE_URL: uma referência à imagem de contêiner que contém o pool de workers, como us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • Para atualizar um pool de workers existente, execute o seguinte comando:

    gcloud beta run worker-pools update WORKER_POOL --sandbox-launcher

YAML

  1. Se você estiver criando um novo pool de workers, pule esta etapa. Se você estiver atualizando um pool de workers existente, faça o download da configuração YAML correspondente:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Atualize o arquivo YAML para incluir o atributo sandboxLauncher definido como true na configuração do contêiner:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER
            image: IMAGE_URL
            sandboxLauncher: true
    

    Substitua:

    • WORKER_POOL: o nome do pool de workers do Cloud Run.
    • CONTAINER: o nome do contêiner.
    • IMAGE_URL: uma referência à imagem de contêiner que contém o pool de workers, como us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  3. Crie ou atualize o pool de workers usando o seguinte comando:

    gcloud run worker-pools replace worker-pool.yaml

    O comando gcloud run worker-pools replace usa o arquivo worker-pool.yaml por padrão, se presente.

As sandboxes compartilham a CPU e a memória alocadas para o contêiner do host. Verifique se os limites de CPU e memória do contêiner principal podem acomodar seu aplicativo e todas as sandboxes ativas que você executa ao mesmo tempo.

Desativar sandboxes

Para desativar a capacidade de iniciar uma sandbox no pool de workers, use a Google Cloud CLI ou uma configuração YAML:

gcloud

Atualize o pool de workers usando o sinalizador --no-sandbox-launcher executando o seguinte comando:

gcloud beta run worker-pools update WORKER_POOL --no-sandbox-launcher

Substitua WORKER_POOL pelo nome do pool de workers.

YAML

  1. Se você estiver criando um novo pool de workers, pule esta etapa. Se você estiver atualizando um pool de workers existente, faça o download da configuração YAML correspondente:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Atualize o arquivo YAML para remover o atributo sandboxLauncher na configuração do contêiner:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER
            image: IMAGE_URL
    

    Substitua:

    • WORKER_POOL: o nome do pool de workers do Cloud Run.
    • CONTAINER: o nome do contêiner.
    • IMAGE_URL: uma referência à imagem de contêiner que contém o pool de workers, como us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  3. Crie ou atualize o pool de workers usando o seguinte comando:

    gcloud run worker-pools replace worker-pool.yaml

    O comando gcloud run worker-pools replace usa o arquivo worker-pool.yaml por padrão, se presente.

Conferir as configurações da sandbox

Para conferir as configurações atuais da sandbox do pool de workers do Cloud Run, faça o seguinte:

Console

  1. No Google Cloud console, acesse a página Pools de workers do Cloud Run:

    Acessar pools de workers do Cloud Run

  2. Clique no pool de workers para abrir a página Detalhes do pool de workers.

  3. Clique na guia Revisões.

  4. Na guia Contêineres, localize a configuração do Iniciador da sandbox para conferir se os contêineres em sandbox estão ativados ou desativados.

gcloud

  1. Use o comando a seguir:

    gcloud run worker-pools describe WORKER_POOL

    Substitua WORKER_POOL pelo nome do pool de workers.

  2. Para verificar se os contêineres em sandbox estão ativados, localize o atributo sandboxLauncher: true na configuração retornada.

Para executar código não confiável em uma sandbox do pool de workers, consulte Execução de código no Cloud Run.