Déployer des fonctions à partir du code source

Cette page explique comment déployer de nouveaux services et de nouvelles révisions dans Cloud Run directement à partir du code source à l'aide d'une seule commande du SDK Cloud, gcloud run deploy avec l'option --source.

Notez que gcloud run deploy utilise par défaut le déploiement source si vous ne fournissez pas les options --image ou --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. En d'autres termes, la commande unique décrite ci-dessus effectue ce qui nécessite normalement les commandes gcloud builds submit et gcloud run deploy.

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 (chaque fois que vous effectuez un déploiement, tous les correctifs de sécurité nécessaires sont automatiquement récupérés à partir de l'image de base).

Langages acceptés

En plus des sources avec un Dockerfile, le déploiement à partir de la source accepte les langages suivants :

  • Go
  • Node.js
  • Python
  • Java
  • .NET Core

Pour en savoir plus sur les versions de langages acceptées, consultez le dépôt du pack de création des plates-formes Google.

Limitations de cette fonctionnalité

  • La fonctionnalité de déploiement à partir de la source utilise Artifact Registry. Cette fonctionnalité n'est donc disponible que dans les régions compatibles avec Artifact Registry.
  • Le déploiement à partir de la source à l'aide de gcloud run deploy --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 deploy --image).

Avant de commencer

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

Autorisations requises pour déployer

Pour déployer à partir de la source, vous avez besoin d'autorisations pour compiler, stocker l'image de conteneur créée et déployer.

Vous devez disposer de l'un des rôles suivants :

Déploiement

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

  1. Accédez à votre répertoire source. Notez que le répertoire source ne nécessite pas de Dockerfile, mais si un Dockerfile est présent, il sera utilisé.

  2. Créez et déployez votre application :

    gcloud run deploy SERVICE --source .

    Remplacez SERVICE par le nom souhaité pour votre service.

    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.

  3. Attendez la fin de la compilation et du déploiement. Une fois ces étapes terminées, un message semblable à celui-ci s'affiche :

    Service [my-app] revision [my-app-00000-xxx] has been deployed and is serving 100 percent of traffic. Service URL: https://my-app-texampleq-uc.a.run.app

    Après le déploiement, notez que cette révision de service diffuse 100 % du trafic.

Automatiser la compilation à partir de la source

Pour éviter les modifications non gérées dans la source locale, Google recommande 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 service 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.

Pour configurer des compilations automatiques, configurez l'automatisation comme indiqué sur la page des compilations continues en veillant à choisir l'option permettant de créer la source avec Buildpacks.

Étape suivante

Après avoir déployé un nouveau service, vous pouvez effectuer les opérations suivantes :

Vous pouvez automatiser la création et le déploiement de vos services Cloud Run avec les déclencheurs Cloud Build.