Configurar sandboxes para jobs

As sandboxes do Cloud Run oferecem um ambiente rápido, seguro e isolado para executar o código do agente, realizar transformações de dados e executar scripts com segurança no job atual. 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 mais 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 Cloud, 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. Crie um job do Cloud Run.

Funções exigidas

Para receber as permissões necessárias para configurar os jobs 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 job do Cloud Run interage com Google Cloud APIs, 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.

Ativar sandboxes

Para ativar as sandboxes nos jobs do Cloud Run, use a Google Cloud CLI ou uma configuração YAML:

gcloud

Para criar ou atualizar o job, especifique a flag --sandbox-launcher:

  • Para criar um job, execute o seguinte comando:

    gcloud beta run jobs create JOB --image IMAGE_URL --sandbox-launcher

    Substitua:

    • JOB: o nome do seu job do Cloud Run.
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest
  • Para atualizar um job atual, execute o seguinte comando:

    gcloud beta run jobs update JOB --sandbox-launcher

YAML

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

    gcloud run jobs describe JOB_NAME --format export > job.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: Job
    metadata:
      name: JOB
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - name: CONTAINER
                image: IMAGE_URL
                sandboxLauncher: true
    

    Substitua:

    • JOB: o nome do seu job do Cloud Run.
    • CONTAINER: o nome do contêiner;
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

    O comando gcloud run jobs replace usa o arquivo job.yaml por padrão, se presente.

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

Desativar sandboxes

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

gcloud

Atualize o job usando a flag --no-sandbox-launcher executando o seguinte comando:

gcloud beta run jobs update JOB --no-sandbox-launcher

Substitua JOB pelo nome do seu job.

YAML

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

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Atualize o arquivo YAML para remover o atributo sandboxLauncher na configuração do contêiner:

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

    Substitua:

    • JOB: o nome do seu job do Cloud Run.
    • CONTAINER: o nome do contêiner;
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

    O comando gcloud run jobs replace usa o arquivo job.yaml por padrão, se presente.

Ver configurações de sandbox

Para ver as configurações atuais da sandbox do job do Cloud Run, faça o seguinte:

Console

  1. No Google Cloud console, acesse a página Jobs do Cloud Run:

    Acessar jobs do Cloud Run

  2. Clique no job para abrir a página Detalhes do job.

  3. Na guia Histórico, clique no ID do job executado na lista.

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

gcloud

  1. Use o comando a seguir:

    gcloud run jobs executions describe EXECUTION_NAME --format yaml

    Substitua EXECUTION_NAME pelo nome da execução do job.

  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 job, consulte Execução de código no Cloud Run.