Stocker des packages Python dans Artifact Registry

Ce guide de démarrage rapide vous explique comment configurer un dépôt Python Artifact Registry privé, y importer un package, puis l'installer.

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. 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. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  6. 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

  7. Verify that billing is enabled for your Google Cloud project.

  8. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  9. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et gérer des dépôts de packages Python Artifact Registry, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Artifact Registry (roles/artifactregistry.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Lancer Cloud Shell

Dans ce guide de démarrage rapide, vous allez utiliser Cloud Shell, un environnement shell permettant de gérer les ressources hébergées sur Google Cloud.

Cloud Shell est préinstallé avec le Google Cloud CLI et Python. gcloud CLI fournit l'interface de ligne de commande principale pour. Google Cloud

Lancez Cloud Shell :

  1. Accédez à la Google Cloud console.

    Google Cloud Console

  2. Dans la barre d'outils de la Google Cloud console, cliquez sur Activer Cloud Shell :

Une session Cloud Shell s'ouvre dans un cadre situé en bas de la console. Cette interface système vous permet d'exécuter les commandes gcloud.

Installer les packages requis

Twine est un outil permettant de publier des packages Python. Vous l'utiliserez pour importer un package dans Artifact Registry.

Dans ce guide de démarrage rapide, vous utiliserez l'installation Python incluse dans Cloud Shell. Cette installation par défaut inclut le backend de trousseau Artifact Registry: pour gérer l'authentification auprès d'Artifact Registry. Si vous créez un environnement virtuel ou configurez Python en dehors de Cloud Shell, vous devez installer le backend de trousseau pour l'authentification. Pour en savoir plus, consultez S'authentifier avec le trousseau.

Pour installer Twine, exécutez la commande suivante :

pip install twine

Vous êtes maintenant prêt à configurer Artifact Registry.

Créer un dépôt

Créez le dépôt pour vos packages.

  1. Exécutez la commande suivante pour créer un dépôt de packages Python dans le projet actuel à l'emplacement us-central1 nommé quickstart-python-repo.

    gcloud artifacts repositories create quickstart-python-repo \
        --repository-format=python \
        --location=us-central1 \
        --description="Python package repository"
    
  2. Exécutez la commande suivante pour vérifier que votre dépôt a bien été créé :

    gcloud artifacts repositories list
    
  3. Pour simplifier les commandes gcloud, définissez le dépôt par défaut sur quickstart-python-repo et l'emplacement par défaut sur us-central1. Une fois les valeurs définies, vous n'avez pas besoin de les spécifier dans les commandes gcloud nécessitant un dépôt ou un emplacement.

    Pour définir le dépôt, exécutez la commande suivante :

    gcloud config set artifacts/repository quickstart-python-repo
    

    Pour définir l'emplacement, exécutez la commande suivante :

    gcloud config set artifacts/location us-central1
    

    Pour plus d'informations sur ces commandes, consultez la documentation gcloud config set.

Configurer l'authentification

Le backend de trousseau Artifact Registry trouve vos identifiants à l'aide des identifiants par défaut de l'application, une stratégie qui recherche les identifiants dans votre environnement.

Dans ce guide, vous allez :

  • Générer des identifiants utilisateur pour les identifiants par défaut de l'application. Dans un environnement de production, vous devez utiliser un compte de service et fournir des identifiants avec la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS.
  • Inclure l'URL du dépôt Artifact Registry dans les commandes pip et twine afin de ne pas avoir à configurer pip et Twine avec l'URL du dépôt.

Pour générer des identifiants pour les identifiants par défaut de l'application, exécutez la commande suivante :

gcloud auth application-default login

Pour en savoir plus sur les méthodes d'authentification et l'ajout de dépôts à la configuration pip et Twine, consultez Configurer l'authentification auprès des dépôts de packages Python.

Obtenir un exemple de package

Lorsque vous créez un projet Python, les fichiers de distribution sont enregistrés dans un sous-répertoire dist de votre projet Python. Pour simplifier ce guide de démarrage rapide, vous allez télécharger des fichiers de package précompilés.

  1. Créez un dossier de projet Python nommé python-quickstart.

    mkdir python-quickstart
    
  2. Créez un sous-répertoire nommé dist, puis accédez-y.

    mkdir python-quickstart/dist
    cd python-quickstart/dist
    
  3. Téléchargez les exemples de packages Python utilisés dans le tutoriel du guide de l'utilisateur sur l'empaquetage Python : Empaqueter des projets Python.

    pip download sampleproject
    

    La commande télécharge le package sampleproject et sa dépendance, peppercorn.

Importer le package dans le dépôt

Utilisez Twine pour importer vos packages dans votre dépôt.

  1. Dans le répertoire dist, accédez au répertoire parent python-quickstart.

    cd ..
    
  2. Importez les packages dans le dépôt à partir de votre répertoire dist.

    python3 -m twine upload --repository-url https://us-central1-python.pkg.dev/PROJECT_ID/quickstart-python-repo/ dist/*
    

    Lorsque vous exécutez la commande avec python3 -m, Python localise Twine et exécute la commande. Si la commande twine se trouve dans le chemin d'accès de votre système, vous pouvez l'exécuter sans python3 -m.

Twine importe sampleproject et peppercorn dans votre dépôt.

Afficher le package dans le dépôt

Pour vérifier que votre package a bien été ajouté, listez les packages dans le dépôt quickstart-python-repo.

Exécutez la commande suivante :

gcloud artifacts packages list --repository=quickstart-python-repo

Pour afficher les versions d'un package, exécutez la commande suivante :

gcloud artifacts versions list --package=PACKAGE

PACKAGE correspond à l'ID de package.

Installer le package

Exécutez la commande pour installer le package :

pip install --index-url https://us-central1-python.pkg.dev/PROJECT_ID/quickstart-python-repo/simple/ sampleproject

Dépannage

Par défaut, les outils tels que pip et Twine ne renvoient pas de messages d'erreur détaillés. Si vous rencontrez une erreur, réexécutez la commande avec l'option --verbose pour obtenir une sortie plus détaillée. Pour en savoir plus, consultez Dépannage des packages Python.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre Google Cloud compte pour les ressources utilisées sur cette page, procédez comme suit :

Avant de supprimer le dépôt, assurez-vous que tous les packages que vous souhaitez conserver sont disponibles à un autre emplacement.

Pour supprimer le dépôt :

  1. Pour supprimer le dépôt quickstart-python-repo, exécutez la commande suivante :

    gcloud artifacts repositories delete quickstart-python-repo
    
  2. Si vous souhaitez supprimer le dépôt par défaut et les paramètres d'emplacement que vous avez définis pour la configuration gcloud active, exécutez les commandes suivantes :

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

Étape suivante