Déployer des pools de nœuds de calcul à partir du code source

Cette page explique comment déployer un nouveau pool de nœuds de calcul ou une nouvelle révision de pool de nœuds de calcul dans Cloud Run directement à partir du code source à l'aide d'une seule commande de gcloud CLI, gcloud run worker-pools deploy avec l'option --source.

En arrière-plan, cette commande utilise les packs de création Google Cloud et Cloud Build pour créer automatiquement des images de conteneurs à partir du code source sans avoir à installer Docker sur votre machine ni configurer des packs de création ou Cloud Build. Par défaut, Cloud Run utilise le type de machine par défaut fourni par Cloud Build. L'exécution gcloud run worker-pools deploy élimine le besoin d'exécuter également la commande gcloud builds submit.

Notez que les déploiements sources utilisent Artifact Registry pour stocker les conteneurs créés. Si votre projet ne dispose pas encore d'un dépôt Artifact Registry portant le nom cloud-run-source-deploy dans la région où vous effectuez le déploiement, cette fonctionnalité crée automatiquement un dépôt Artifact Registry nommé cloud-run-source-deploy.

Si un Dockerfile est présent dans le répertoire du code source, le code source importé est créé à l'aide de ce Dockerfile. Si le Dockerfile n'est pas présent dans le répertoire du code source, les packs de création Google Cloud détectent automatiquement le langage que vous utilisez et extrait les dépendances du code pour créer une image de conteneur prête pour la production, à l'aide d'une image de base sécurisée et gérée par Google

Avant de commencer

  • Assurez-vous d'avoir configuré un nouveau projet pour Cloud Run, comme décrit sur la page de configuration.
  • Activez l'API Cloud Run Admin.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

    Une fois l'API Cloud Run Admin activée, le compte de service Compute Engine par défaut est créé automatiquement.

Rôles requis

Pour effectuer un déploiement à partir de la source, vous ou votre administrateur devez accorder les rôles IAM suivants au compte déployeur.

Cliquez ici pour afficher les rôles requis pour le compte déployeur

Pour obtenir les autorisations nécessaires pour créer et déployer à partir de la source, 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 pool de nœuds de calcul 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.

Langues disponibles

En plus des sources avec un Dockerfile, le déploiement à partir de la source accepte les langages suivants à l'aide des packs de création Google Cloud :

  • Go
  • Node.js
  • Python
  • Java
  • Kotlin
  • Groovy
  • Scala
  • .NET
  • Ruby
  • PHP

Pour en savoir plus sur les versions de langages acceptées .

Déployer à partir de la source avec la compilation

Cette section explique comment utiliser les packs de création Google Cloud et Cloud Build pour créer automatiquement des images de conteneurs à partir du code source sans avoir à installer Docker sur votre machine ni configurer des packs de création ou Cloud Build.

Limites

  • Le déploiement à partir de la source utilise Artifact Registry et Cloud Build. Cette fonctionnalité n'est donc disponible que dans les régions compatibles avec Artifact Registry et Cloud Build.
  • Le déploiement à partir de la source est une fonctionnalité pratique qui ne permet pas une personnalisation complète de la compilation. Pour mieux contrôler l'image de conteneur, créez-la à l'aide de Cloud Build, par exemple, en utilisant gcloud builds submit, puis déployez l'image de conteneur en utilisant, par exemple, gcloud run worker-pools deploy --image.
  • Le déploiement d'une source avec les packs de création Google Cloud définit la date de la dernière modification des fichiers sources sur le 1er janvier 1980. Il s'agit du comportement par défaut des packs de création, qui est conçu pour être compatible avec les compilations reproductibles. Selon votre framework de langage, cela peut affecter la mise en cache des fichiers statiques côté navigateur. Si votre application est affectée par cela, nous vous recommandons de désactiver les en-têtes HTTP etag et Last-Modified dans votre application.
  • Le déploiement à partir de la source avec les packs de création de Google Cloud utilise toujours gcr.io/buildpacks/builder:latest. Si votre configuration de langage ou de système d'exploitation préférée n'est pas disponible dans latest, utilisez un compilateur spécifique pour créer une image d'application à l'aide de votre compilateur préféré.
  • Vous pouvez déployer votre pool de nœuds de calcul à partir de la source à l'aide de Kotlin et d'autres langages JVM tels que Java. Le langage que vous utilisez doit respecter les règles suivantes :

    • Vous pouvez compiler l'application à l'aide de Maven ou de Gradle.
    • Le fichier de compilation contient tous les plug-ins requis pour produire les classes.

Avant de déployer avec la compilation

Avant de déployer à partir de la source avec la compilation :

  • Suivez les étapes décrites dans la section Avant de commencer.

  • Activez l'API Cloud Build.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

Rôles requis

Pour effectuer un déploiement à partir de la source avec la compilation, vous ou votre administrateur devez accorder les rôles IAM suivants au compte de service Cloud Build.

Cliquez ici pour afficher les rôles requis pour le compte de service Cloud Build

Cloud Build utilise automatiquement le compte de service Compute Engine par défaut comme compte de service Cloud Build par défaut pour créer votre code source et votre ressource Cloud Run, sauf si vous remplacez ce comportement. Pour que Cloud Build puisse créer vos sources, demandez à votre administrateur d'accorder le rôle Compilateur Cloud Run (roles/run.builder) au compte de service Compute Engine par défaut sur votre projet :

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/run.builder
  

Remplacez PROJECT_NUMBER par votre Google Cloud numéro de projet et PROJECT_ID par votre Google Cloud ID de projet. Pour obtenir des instructions détaillées sur la recherche de votre ID et de votre numéro de projet, consultez Créer et gérer des projets.

La propagation de l'attribution du rôle de compilateur Cloud Run au compte de service Compute Engine par défaut prend quelques minutes pour se propager.

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 pool de nœuds de calcul 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.

Déployer avec la compilation

Pour effectuer un déploiement à partir du code source, procédez comme suit :

  1. Dans la Google Cloud console, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Google Cloud Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Accédez à votre répertoire source. Le répertoire source utilise un Dockerfile s'il est présent, bien qu'il ne soit pas obligatoire.

  3. Créez et déployez votre pool de nœuds de calcul :

    gcloud run worker-pools deploy WORKERPOOL --source .
    Remplacez WORKERPOOL par le nom souhaité pour votre pool de nœuds de calcul.

  4. Répondez aux invites pour installer les API requises en répondant y lorsque vous y êtes invité. Vous ne devez procéder à cette opération qu'une fois par projet. Répondez aux autres invites en fournissant la plate-forme et la région, si vous n'avez pas défini les paramètres par défaut pour celles-ci, comme décrit sur la page de configuration.

  5. Attendez la fin de la compilation et du déploiement. Une fois l'opération terminée, Cloud Run affiche un message de réussite.

Automatiser la compilation à partir de la source

Pour éviter les modifications non gérées dans la source locale, nous vous recommandons d'effectuer automatiquement le déploiement lorsque des modifications sont envoyées dans votre dépôt Git. Pour vous faciliter la tâche, vous pouvez connecter et configurer le déploiement continu sur votre pool de nœuds de calcul Cloud Run. En connectant vos dépôts GitHub à Cloud Run, vous pouvez configurer des compilations et déployer vos dépôts sans écrire de Dockerfile ni créer de fichiers.

Étape suivante

Après avoir déployé un pool de nœuds de calcul Cloud Run, vous pouvez effectuer les opérations suivantes :