Execução de código no Cloud Run

Uma das principais vantagens de usar o Cloud Run para hospedar agentes de IA é que ele isola o código usando um ambiente de execução seguro. Ao criar uma ferramenta de sandbox de código no Cloud Run e executá-la no contêiner, é possível executar o código do aplicativo usando qualquer linguagem de programação.

Sandbox seguro de duas camadas

O Cloud Run isola todas as instâncias usando um sandbox de duas camadas que consiste em uma camada com suporte de hardware equivalente a VMs individuais (virtualização x86) e uma camada de kernel de software. Para mais informações, consulte Visão geral do design de segurança.

Quando você implanta o código, o Cloud Run o confina no ambiente de sandbox. Esse isolamento permite executar código não confiável, como o gerado por um modelo de linguagem grande (LLM), com mais segurança. Ao executar código não confiável, restrinja as permissões do IAM no serviço do Cloud Run e use regras de firewall da VPC para impedir que o código faça chamadas à Internet.

Modos de execução de código

O Cloud Run oferece os seguintes modos de execução de código:

  • Execução assíncrona: para evitar a interrupção do fluxo principal do aplicativo, execute tarefas de forma assíncrona usando um job do Cloud Run para tarefas de longa duração ou em segundo plano. Por exemplo, execute um job do Cloud Run que faça upload de código para o Cloud Storage, instale as dependências necessárias e processe e armazene os resultados de volta no Cloud Storage.

  • Execução síncrona: para processos que exigem uma resposta imediata, use um serviço do Cloud Run. Um serviço do Cloud Run tem um tempo limite máximo de uma hora, o que oferece um período significativo para a execução do código. Para limitar as instâncias a processar uma solicitação por vez, defina o valor de simultaneidade como 1. Também é possível recuperar o código para execução como parte do corpo da solicitação, retornar o resultado na resposta e encerrar a instância do contêiner.

    A imagem a seguir mostra os dois modos de execução de código:

    Para execução assíncrona, o código é enviado para o Cloud Storage, que é executado como um job do Cloud Run. O job envia os resultados da execução para o Cloud Storage para serem armazenados. Para a execução síncrona, o agente envia uma solicitação ao serviço do Cloud Run com o código no corpo da solicitação. O serviço tem um tempo limite de uma hora e uma simultaneidade de "1". O serviço do Cloud Run processa o código e o envia para a instância de serviço, que retorna uma resposta ao agente.
    Figura 1. Modos de execução de código no Cloud Run

A seguir