Tech & Data

Poetry : Configurer des repositories privées GCP

Franck Cussac

Franck Cussac

Senior Data Engineer

Nom Prénom

Poste

May 12, 2025

10 min

Difficulté:

🌶️

🌶️

Nous avions déjà écrit un article sur les fonctionnalités qu’offre Poetry sur le cycle de vie de votre code. Cette fois-ci nous allons nous concentrer sur la configuration d’un repository Python privé déployé sur GCP avec Artifact Registry.

Créer un repository Python privé sur GCP

Dans cet article nous allons créer notre repository Python sur GCP via le service managé Artifact Registry. Pour cela nous utiliserons Terraform :

CODE:https://gist.github.com/franck-cussac/00075253719ba99e965e9985434659c2.js

Configurer Poetry pour publier dans GCP Artifact Registry

Ajouter un repository privé GCP à Poetry

Pour publier un package Python avec Poetry, il existe la commande suivante :

poetry publish --build

L’option --build indique à Poetry de construire le package avant de publier. Par défaut, Poetry publie dans Pypi, le repository public officiel de Python.

Pour pousser dans un repository privé, la configuration doit se faire sur Poetry au global et non pas dans un projet spécifique. Pour cela Poetry fourni une commande :

poetry config repositories.<repo-name><repo-url>

À la place de <repo-name< vous pouvez mettre ce que vous voulez. Cela sera le nom pour faire référence à votre repository privé dans Poetry. Dans notre exemple nous le remplacerons par hymaia-repo

Dans GCP, l’url du repository se construit comme suit :https://<region>-python.pkg.dev/<project>/<repository_id>/

Cela nous donne :

poetry config repositories.hymaia-repo https://europe-west1-python.pkg.dev/hymaia/hymaia-pypi/

Nous pouvons maintenant reprendre notre commande de publish et ajouter un paramètre pour le repository :

poetry publish --build --repository hymaia-repo

Sauf qu’à présent, on se retrouve avec une erreur :

HTTP Error 401: Unauthorized | b'The request does not have valid authentication credentials.\n'

Cette erreur indique que nous n’avons pas d’identifications valides pour GCP.

S’authentifier à un repository Python GCP

Lorsqu’on travaille avec GCP ou un Cloud Provider de manière générale, on a l’habitude d’utiliser un service managé IAM (ou GIA en français, merci wikipédia) pour s’authentifier. C’est pourquoi tous les outils fournis par GCP sont prévus pour fonctionner ainsi. La CLI gcloud, par exemple, nous permet de récupérer notre token d’authentification IAM via la commande suivante :

gcloud auth application-default login

Cette commande récupère un token d’authentification qui devra être celui utilisé par défaut. Plus concrètement, si vous travaillez sur Linux, cela crée ou met à jour le fichier ~/.config/gcloud/application_default_credentials.json Les autres applications fonctionnant avec le IAM de GCP savent donc par convention où récupérer le token pour s’authentifier.

Dans notre cas, l’application qui doit travailler avec GCP est Poetry. Mais Poetry n’a rien à voir avec GCP, alors comment peut-il savoir comment s’y authentifier ? Même chose si nous travaillons avec AWS ou Azure. Chaque Cloud Provider a sa méthode d’authentification IAM et ce n’est pas à Poetry de les gérer. Poetry étant un outil de l’écosystème Python, le seul mode d’authentification qu’il connait est celui du standard de repository Python : password lookup

S’authentifier à GCP avec Python

Une fonctionnalité récente

Avant mai 2023 et la version 1.5.x, il n’était pas possible de configurer Poetry pour qu’il utilise l’authentification IAM de GCP pour publier dans Artifact Registry.

En Python il existe une bibliothèque officiellement supportée par Google pour récupérer automatiquement les tokens d’authentifications IAM : keyrings.google-artifactregistry-auth

Côté Poetry, dans les version 1.1.x, la stratégie d’authentification à un repository est fixée sur le password lookup. Ce qui signifie qu’à l’époque, impossible d’utiliser la bibliothèque de Google pour son authentification IAM. Une issue github a donc été ouverte pour fallback en cas d’échec de ce mode d’authentification. Cette issue en a entraîné une autre côté GCP pour supporter Poetry dans google-artifactregistry-auth.

On s’est retrouvé avec une première évolution côté Poetry pour accepter d’autres modes d’authentification et une seconde côté GCP pour se conformer à la façon dont Poetry gère l’authentification. Un bel exemple de 2 projets open source qui collaborent.

Ajouter le mode d’authentification GCP IAM à Poetry

Pour prendre en compte un nouveau mode d’authentification, Poetry a juste besoin d’avoir la bibliothèque correspondante d’ajoutée à son environnement Python. C’est exactement la même chose quand vous ajoutez une dépendance à votre projet. Pour cela, vous pouvez utiliser la commande :

poetry self add keyrings.google-artifactregistry-auth

Maintenant on peut relancer notre commande de publication :

poetry publish --build --repository hymaia-repo

Et cette fois-ci c’est tout bon !

Récupérer un package Python dans GCP Artifact Registry

Lorsqu’on publie un package, c’est souvent pour le récupérer dans d’autres projets. Pour cela la procédure est encore plus simple :

1. Configurer un nouveau repository privé

poetry source add hymaia-repo https://europe-west1-python.pkg.dev/hymaia/hymaia-pypi/simple --priority=explicit

2. Ajouter la dépendance en précisant le repository

poetry add my-package --source=hymaia-repo

Évidemment il faut toujours être bien authentifié à GCP en mode default-application et avoir installé dans l’environnement virtuel de Poetry keyrings.google-artifactregistry-auth comme pour la publication d’une dépendance.

Et c’est fini !

Pour aller plus loin

Ces formations pourraient aussi vous intéresser

Data-dictionnaire

Data-dictionnaire

Tech & Data

Poetry Python

Poetry : qu'est-ce que c'est et pourquoi l'utiliser ?

Poetry est un outil de gestion de dependances et de packaging pour Python. Il unifie la declaration des dependances, la creation d'environnements virtuels et la publication de packages dans un seul workflow.

Data-dictionnaire

Data-dictionnaire

Tech & Data

Cloud

Qu'est-ce que le Cloud Computing ?

Le Cloud Computing permet d'accéder à des ressources informatiques (serveurs, stockage, bases de données, IA) via Internet, sans posséder ni gérer l'infrastructure physique sous-jacente.

Ces contenus pourraient
aussi vous intéresser

Article

Article

Tech & Data

5 min

🌶️

Débutants

Leboncoin x hymaïa : Former les Product & Engineering Managers aux enjeux Data & IA

Comment leboncoin forme ses Product & Engineering Managers aux enjeux Data & IA.

28.01.2026

Voir
Article

Article

Tech & Data

15 min

🌶️

🌶️

Confirmés

Tracking des accès à la donnée dans AWS

Surveiller les accès à vos données AWS avec CloudTrail, EventBridge, Lambda et Firehose.

24.06.2025

Voir
Article

Article

Tech & Data

10 min

🌶️

🌶️

Experts

Serverless Inference : Quand AWS SageMaker rencontre AWS Lambda

Combiner AWS SageMaker et Lambda pour des prédictions ML en temps réel, sans gérer de serveurs.

12.05.2025

Voir
Vidéo

Vidéo

Tech & Data

Les secrets d'une équipe Data Science réussie : automatisation, diversité et innovation

Quels sont les challenges d'un Lead AI dans une scale-up qui veut faire de l'IA son cheval de bataille stratégique ?

Quels sont les challenges d'un Lead AI dans une scale-up qui veut faire de l'IA son cheval de bataille stratégique ?

Au cours de cette interview, Remi Takase, Lead AI de Mirakl, nous expliquera son quotidien, ses questionnements et ses challenges passés et à venir.

08.07.2025

Voir
Vidéo

Vidéo

Tech & Data

Café Data avec Gaël Varoquaux

Gaël Varoquaux est le co-fondateur de scikit-learn, le projet open-source le plus utilisé pour faire du Machine Learning en Python. Directeur de recherche à l’Inria, il est aussi membre du récent comité scientifique pour l’Intelligence Artificielle Générative. Il nous accorde une interview exclusive durant laquelle il nous partage ses convictions sur l'avenir de l'IA et sur la place de l'open-source.e

Au programme :

  • Sa vision Produit autour de scikit-learn et son avenir - et plus généralement la place de l’open-source dans la tech et l’IA
  • Ses travaux de recherche à l’Inria - en particulier les applications du Machine Learning sur des questions de santé et de société
  • Ses messages et convictions sur les challenges à venir en IA - messages qu’il porte auprès du comité de l'intelligence artificielle générative

08.07.2025

Voir
Vidéo

Vidéo

Tech & Data

Kubernetes en 1h pour les dev

01.07.2025

Voir
Ready ?

Prêt à accélérer votre Transformation ?

Nos experts vous accompagnent à chaque étape de votre parcours Data & IA. Discutons ensemble de vos enjeux et objectifs.