Les bacs à sable Cloud Run fournissent un environnement rapide, sécurisé et isolé pour exécuter du code non approuvé ou des outils, tels que des agents d'IA, dans votre service existant dans l'environnement de deuxième génération. Les bacs à sable sont hautement optimisés pour la latence et s'exécutent dans la même instance que votre conteneur, partageant le processeur et la mémoire qui lui sont alloués.
Cette page explique comment configurer des bacs à sable sur votre conteneur. Pour en savoir plus sur l'écriture de code permettant d'interagir avec le bac à sable à l'aide de la CLI, consultez Exécution de code dans Cloud Run.
Avant de commencer
-
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.
- Installez et initialisez la gcloud CLI.
- Déployez un service Cloud Run service dans l' environnement d'exécution de deuxième génération.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer et déployer des services Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Développeur Cloud Run (
roles/run.developer) sur le service Cloud Run - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur l'identité du service
Si vous déployez un service ou une fonction à partir du code source, vous devez également disposer de rôles supplémentaires sur votre projet et votre compte de service Cloud Build.
Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre service Cloud Run communique avec Google Cloud des API, telles que les bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.
Activer les bacs à sable
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Lorsque vous activez les bacs à sable, votre service Cloud Run se déploie dans l'environnement d'exécution de deuxième génération. Pour activer les bacs à sable dans les services Cloud Run, utilisez la Google Cloud CLI ou une configuration YAML :
gcloud
Pour déployer ou mettre à jour le service, spécifiez l'option --sandbox-launcher :
Pour déployer un nouveau service, exécutez la commande suivante :
gcloud beta run deploy SERVICE --image IMAGE_URL --sandbox-launcher
Remplacez les éléments suivants :
- SERVICE : nom de votre service Cloud Run.
- IMAGE_URL : référence à l'image de conteneur, par
exemple
us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL suit le formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Pour mettre à jour un service existant, exécutez la commande suivante :
gcloud beta run services update SERVICE --sandbox-launcher
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour votre fichier YAML pour inclure l'attribut
sandboxLauncherdéfini surtruedans la configuration de votre conteneur :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: 8080Remplacez les éléments suivants :
- SERVICE : nom de votre service Cloud Run.
- CONTAINER : nom de votre conteneur.
- IMAGE_URL : référence à l'image de conteneur, par
exemple
us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL suit le formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
Par défaut, la commande
gcloud run services replaceutilise le fichierservice.yamls'il est présent.
Les bacs à sable partagent le processeur et la mémoire alloués au conteneur hôte. Assurez-vous que les limites de processeur et de mémoire de votre conteneur principal peuvent prendre en charge à la fois votre application et les bacs à sable actifs que vous exécutez en même temps.
Désactiver les bacs à sable
Pour désactiver la possibilité de lancer un bac à sable dans votre service, utilisez la Google Cloud CLI ou une configuration YAML :
gcloud
Mettez à jour le service à l'aide de l'option --no-sandbox-launcher en exécutant la commande suivante :
gcloud beta run services update SERVICE --no-sandbox-launcher
Remplacez SERVICE par le nom de votre service.
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour votre fichier YAML pour supprimer l'attribut
sandboxLauncherdans la configuration de votre conteneur :apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL port: 8080Remplacez les éléments suivants :
- SERVICE : nom de votre service Cloud Run.
- CONTAINER : nom de votre conteneur.
- IMAGE_URL : référence à l'image de conteneur, par
exemple
us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL suit le formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
Par défaut, la commande
gcloud run services replaceutilise le fichierservice.yamls'il est présent.
Afficher les paramètres du bac à sable
Pour afficher les paramètres actuels du bac à sable de votre service Cloud Run :
Console
Dans la Google Cloud console, accédez à la page Services de Cloud Run :
Cliquez sur le service pour ouvrir la page Informations sur le service.
Cliquez sur l'onglet Historique des révisions.
Dans l'onglet Conteneurs, recherchez le paramètre Lanceur de bac à sable pour voir si les conteneurs en bac à sable sont activés ou désactivés.
gcloud
Exécutez la commande suivante :
gcloud beta run services describe SERVICE
Remplacez SERVICE par le nom de votre service.
Pour vérifier que les conteneurs en bac à sable sont activés, recherchez l'attribut
sandboxLauncher: truedans la configuration renvoyée.
Pour exécuter du code non approuvé dans un bac à sable à partir de votre service, consultez Exécution de code dans Cloud Run.