Configurer des bacs à sable pour les jobs

Les bacs à sable Cloud Run fournissent un environnement rapide, sécurisé et isolé pour exécuter du code d'agent, effectuer des transformations de données et exécuter des scripts en toute sécurité dans votre job existant. Les bacs à sable sont hautement optimisés pour la latence et s'exécutent dans la même instance que votre conteneur, partageant son processeur et sa mémoire alloués.

Cette page explique comment configurer des bacs à sable sur votre conteneur. Pour en savoir plus sur l'écriture de code pour interagir avec le bac à sable à l'aide de la CLI, consultez Exécution de code dans Cloud Run.

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous n'avez jamais utilisé Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  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. Installez et initialisez la gcloud CLI.
  7. Créez un job Cloud Run job.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer des jobs Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :

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 job Cloud Run communique avec Google Cloud des API, telles que des 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

Pour activer les bacs à sable dans les jobs Cloud Run, utilisez Google Cloud CLI ou une configuration YAML :

gcloud

Pour créer ou mettre à jour le job, spécifiez l'indicateur --sandbox-launcher :

  • Pour créer un job, exécutez la commande suivante :

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

    Remplacez les éléments suivants :

    • JOB : le nom de votre job Cloud Run
    • IMAGE_URL : une référence à l' image de conteneur—par exemple, us-docker.pkg.dev/cloudrun/container/job:latest
  • Pour mettre à jour un job existant, exécutez la commande suivante :

    gcloud beta run jobs update JOB --sandbox-launcher

YAML

  1. Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Mettez à jour votre fichier YAML pour inclure l'attribut sandboxLauncher défini sur true dans la configuration de votre conteneur :

    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
    

    Remplacez les éléments suivants :

    • JOB : le nom de votre job Cloud Run
    • CONTAINER par le nom de votre conteneur
    • IMAGE_URL : une référence à l' image de conteneur—par exemple, us-docker.pkg.dev/cloudrun/container/job:latest
  3. Créez ou mettez à jour le job à l'aide de la commande suivante :

    gcloud run jobs replace job.yaml

    Par défaut, la commande gcloud run jobs replace utilise le fichier job.yaml s'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 tous 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 job, utilisez Google Cloud CLI ou une configuration YAML :

gcloud

Mettez à jour le job à l'aide de l'indicateur --no-sandbox-launcher en exécutant la commande suivante :

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

Remplacez JOB par le nom de votre job.

YAML

  1. Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Mettez à jour votre fichier YAML pour supprimer l'attribut sandboxLauncher dans la configuration de votre conteneur :

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

    Remplacez les éléments suivants :

    • JOB : le nom de votre job Cloud Run
    • CONTAINER par le nom de votre conteneur
    • IMAGE_URL : une référence à l' image de conteneur—par exemple, us-docker.pkg.dev/cloudrun/container/job:latest
  3. Créez ou mettez à jour le job à l'aide de la commande suivante :

    gcloud run jobs replace job.yaml

    Par défaut, la commande gcloud run jobs replace utilise le fichier job.yaml s'il est présent.

Afficher les paramètres du bac à sable

Pour afficher les paramètres actuels du bac à sable de votre job Cloud Run, procédez comme suit :

Console

  1. Dans la Google Cloud console, accédez à la page Jobs de Cloud Run :

    Accéder aux jobs Cloud Run

  2. Cliquez sur le job pour ouvrir la page Informations sur le job.

  3. Dans l'onglet Historique, cliquez sur l'ID du job exécuté dans la liste.

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

  1. Exécutez la commande suivante :

    gcloud run jobs executions describe EXECUTION_NAME --format yaml

    Remplacez EXECUTION_NAME par le nom de l'exécution du job.

  2. Pour vérifier que les conteneurs en bac à sable sont activés, recherchez l'attribut sandboxLauncher: true dans la configuration renvoyée.

Pour exécuter du code non approuvé dans un bac à sable à partir de votre job, consultez Exécution de code dans Cloud Run.