Configura le sandbox per i pool di worker

Le sandbox di Cloud Run forniscono un ambiente rapido, sicuro e isolato per eseguire i workflow degli agent all'interno del pool di worker, eseguire payload non attendibili e gestire gli eventi in modo isolato. Le sandbox sono altamente ottimizzate per la latenza e vengono eseguite nella stessa istanza del container, condividendo la CPU e la memoria allocate.

Questa pagina descrive come configurare le sandbox sul container. Per informazioni dettagliate sulla scrittura di codice per interagire con la sandbox utilizzando la CLI, consulta Esecuzione del codice in Cloud Run.

Prima di iniziare

  1. 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

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

  3. Installa e inizializza gcloud CLI.
  4. Esegui il deployment di un pool di worker Cloud Run.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment dei pool di worker Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo pool di worker Cloud Run interagisce con Google Cloud API, come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Abilita le sandbox

Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu non apporti aggiornamenti espliciti per modificarla.

Per abilitare le sandbox nei pool di worker Cloud Run, utilizza Google Cloud CLI o una configurazione YAML:

gcloud

Per eseguire il deployment o l'aggiornamento del pool di worker, specifica il flag --sandbox-launcher:

  • Per eseguire il deployment di un nuovo pool di worker, esegui il comando seguente:

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

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del tuo pool di worker Cloud Run.
    • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • Per aggiornare un pool di worker esistente, esegui il comando seguente:

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

YAML

  1. Se stai creando un nuovo pool di worker, salta questo passaggio. Se stai aggiornando un pool di worker esistente, scarica la relativa configurazione YAML:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Aggiorna il file YAML in modo da includere l'attributo sandboxLauncher impostato su true all'interno della configurazione del container:

    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
    

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del tuo pool di worker Cloud Run.
    • CONTAINER: il nome del container.
    • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  3. Crea o aggiorna il pool di worker utilizzando il comando seguente:

    gcloud run worker-pools replace worker-pool.yaml

    Per impostazione predefinita, il comando gcloud run worker-pools replace utilizza il file worker-pool.yaml, se presente.

Le sandbox condividono la CPU e la memoria allocate al container host. Assicurati che i limiti di CPU e memoria del container principale possano ospitare sia l'applicazione sia le sandbox attive che esegui contemporaneamente.

Disabilita le sandbox

Per disabilitare la possibilità di avviare una sandbox nel pool di worker, utilizza Google Cloud CLI o una configurazione YAML:

gcloud

Aggiorna il pool di worker utilizzando il flag --no-sandbox-launcher eseguendo il comando seguente:

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

Sostituisci WORKER_POOL con il nome del tuo pool di worker.

YAML

  1. Se stai creando un nuovo pool di worker, salta questo passaggio. Se stai aggiornando un pool di worker esistente, scarica la relativa configurazione YAML:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. Aggiorna il file YAML per rimuovere l'attributo sandboxLauncher all'interno della configurazione del container:

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

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del tuo pool di worker Cloud Run.
    • CONTAINER: il nome del container.
    • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  3. Crea o aggiorna il pool di worker utilizzando il comando seguente:

    gcloud run worker-pools replace worker-pool.yaml

    Per impostazione predefinita, il comando gcloud run worker-pools replace utilizza il file worker-pool.yaml, se presente.

Visualizza le impostazioni della sandbox

Per visualizzare le impostazioni della sandbox correnti per il pool di worker Cloud Run:

Console

  1. Nella Google Cloud console, vai alla pagina Pool di worker di Cloud Run:

    Vai ai pool di worker Cloud Run

  2. Fai clic sul pool di worker per aprire la pagina Dettagli pool di worker.

  3. Fai clic sulla scheda Revisioni.

  4. Nella scheda Container, individua l'impostazione Avvio sandbox per verificare se i container in sandbox sono abilitati o disabilitati.

gcloud

  1. Utilizza il seguente comando:

    gcloud run worker-pools describe WORKER_POOL

    Sostituisci WORKER_POOL con il nome del tuo pool di worker.

  2. Per verificare che i container in sandbox siano abilitati, individua l'attributo sandboxLauncher: true nella configurazione restituita.

Per eseguire codice non attendibile in una sandbox dal pool di worker, consulta Esecuzione del codice in Cloud Run.