Le sandbox di Cloud Run forniscono un ambiente veloce, sicuro e isolato per eseguire codice non attendibile o strumenti di esecuzione, come gli agenti AI, all'interno del servizio esistente nell'ambiente di seconda generazione. 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
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Installa e inizializza gcloud CLI.
- Esegui il deployment di un servizio Cloud Run nell' ambiente di esecuzione di seconda generazione.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Developer (
roles/run.developer) sul servizio Cloud Run - Utente account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
Se esegui il deployment di un servizio o funzione dal codice sorgente, devi disporre anche di altri ruoli concessi al tuo progetto e al account di servizio Cloud Build.
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 servizio Cloud Run interagisce con le APIGoogle Cloud , 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.
Quando abiliti le sandbox, il servizio Cloud Run viene eseguito nell'ambiente di esecuzione di seconda generazione. Per abilitare le sandbox nei servizi Cloud Run, utilizza Google Cloud CLI o una configurazione YAML:
gcloud
Per eseguire il deployment o l'aggiornamento del servizio, specifica il flag --sandbox-launcher:
Per eseguire il deployment di un nuovo servizio, esegui il comando seguente:
gcloud beta run deploy SERVICE --image IMAGE_URL --sandbox-launcher
Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- IMAGE_URL: un riferimento all'immagine container, ad
esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Per aggiornare un servizio esistente, esegui il comando seguente:
gcloud beta run services update SERVICE --sandbox-launcher
YAML
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna il file YAML in modo da includere l'attributo
sandboxLauncherimpostato sutrueall'interno della configurazione del container:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true port: 8080Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- CONTAINER: il nome del container.
- IMAGE_URL: un riferimento all'immagine container, ad
esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Crea o aggiorna il servizio utilizzando il comando seguente:
gcloud run services replace service.yaml
Per impostazione predefinita, il comando
gcloud run services replaceutilizza il fileservice.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 servizio, utilizza Google Cloud CLI o una configurazione YAML:
gcloud
Aggiorna il servizio utilizzando il flag --no-sandbox-launcher eseguendo il comando seguente:
gcloud beta run services update SERVICE --no-sandbox-launcher
Sostituisci SERVICE con il nome del servizio.
YAML
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna il file YAML in modo da rimuovere l'attributo
sandboxLauncherall'interno della configurazione del container:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL port: 8080Sostituisci quanto segue:
- SERVICE: il nome del servizio Cloud Run.
- CONTAINER: il nome del container.
- IMAGE_URL: un riferimento all'immagine container, ad
esempio,
us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Crea o aggiorna il servizio utilizzando il comando seguente:
gcloud run services replace service.yaml
Per impostazione predefinita, il comando
gcloud run services replaceutilizza il fileservice.yaml, se presente.
Visualizza le impostazioni della sandbox
Per visualizzare le impostazioni della sandbox correnti per il servizio Cloud Run:
Console
Nella Google Cloud console, vai alla pagina Servizi di Cloud Run:
Fai clic sul servizio per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Cronologia delle revisioni.
Nella scheda Container, individua l'impostazione Avvio sandbox per verificare se i container in sandbox sono abilitati o disabilitati.
gcloud
Utilizza il seguente comando:
gcloud beta run services describe SERVICE
Sostituisci SERVICE con il nome del servizio.
Per verificare che i container in sandbox siano abilitati, individua l'attributo
sandboxLauncher: truenella configurazione restituita.
Per eseguire codice non attendibile in una sandbox dal tuo servizio, consulta Esecuzione del codice in Cloud Run.