Maison > développement back-end > Tutoriel Python > Transférer des packages Python vers Artifact Registry à l'aide de Cloud Build

Transférer des packages Python vers Artifact Registry à l'aide de Cloud Build

Linda Hamilton
Libérer: 2024-11-27 16:09:10
original
888 Les gens l'ont consulté

Pushing Python Packages to Artifact Registry Using Cloud Build

Google Artifact Registry est une solution puissante pour gérer et héberger les artefacts de packages Python de manière privée, sécurisée et évolutive. Ce guide fournit une procédure étape par étape pour transférer les fichiers .whl du package Python vers Artifact Registry à l'aide de Google Cloud Build et d'un secret (crédits) de Google Secret Manager pour l'authentification.


Conditions préalables

  1. Configuration du registre d'artefacts :

    • Créez un référentiel Python dans votre registre d'artefacts :
     gcloud artifacts repositories create python-packages \
       --repository-format=python \
       --location=us-central1 \
       --description="Python packages repository"
    
    Copier après la connexion
    Copier après la connexion
  2. Configuration secrète :

    • Stockez votre clé en tant que secret dans Google Secret Manager :
     gcloud secrets create creds --data-file=path/to/key.json
    
    Copier après la connexion
    Copier après la connexion
  • Accorder à Cloud Build l'accès au secret :(Facultatif, peut également être effectué à l'aide d'IAM)

     gcloud secrets add-iam-policy-binding creds \
       --member="serviceAccount:$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')@cloudbuild.gserviceaccount.com" \
       --role="roles/secretmanager.secretAccessor"
    
    Copier après la connexion
  1. Autorisations de création de cloud : Assurez-vous que votre compte de service Cloud Build dispose des autorisations nécessaires pour accéder à Artifact Registry et à Secret Manager.

Configuration YAML de Cloud Build

Voici le fichier cloudbuild.yaml complet et fonctionnel :

options:
  machineType: E2_HIGHCPU_8
  substitutionOption: ALLOW_LOOSE
  logging: CLOUD_LOGGING_ONLY

steps:
  # Step 1: Access the secret `creds` and save it as `key.json`
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
    entrypoint: bash
    args:
      - '-c'
      - |
        gcloud secrets versions access latest --secret=creds > /workspace/key.json

  # Step 2: Configure `.pypirc` with the Artifact Registry credentials
  - name: 'python'
    entrypoint: bash
    args:
      - '-c'
      - |
        cat > ~/.pypirc << EOL
        [distutils]
        index-servers = tower-common-repo

        [tower-common-repo]
        repository: https://us-central1-python.pkg.dev/$PROJECT_ID/python-packages/
        username: _json_key_base64
        password: $(base64 -w0 /workspace/key.json)
        EOL

        # Step 3: Build and upload the Python package
        pip install twine build && \
        python -m build && \
        twine upload --repository tower-common-repo dist/* --verbose
Copier après la connexion

Explication étape par étape

  1. Définir les options de construction :

    • Définissez le type de machine, le comportement de substitution et les options de journalisation.
    • Ces configurations garantissent des builds efficaces et des journaux gérables.
  2. Récupérer le secret key.json :

    • Utilisez l'accès aux versions de gcloud secrets pour récupérer le fichier key.json en toute sécurité depuis Secret Manager.
    • Enregistrez le fichier dans un emplacement connu (/workspace/key.json).
  3. Configurer .pypirc :

    • Générez dynamiquement un fichier .pypirc. Ce fichier est requis pour que Twine s'authentifie auprès du registre des artefacts.
    • Le mot de passe est un contenu codé en base64 de key.json.
  4. Construire et pousser le package :

    • Installer les outils nécessaires (ficelle, build).
    • Construisez le package Python (python -m build).
    • Utilisez le téléchargement Twine pour transférer le fichier .whl vers le registre des artefacts.

Déclencher la construction

Enregistrez le fichier cloudbuild.yaml et déclenchez la build ou pouvez vous connecter au référentiel github :

 gcloud artifacts repositories create python-packages \
   --repository-format=python \
   --location=us-central1 \
   --description="Python packages repository"
Copier après la connexion
Copier après la connexion

Points clés

  • Gestion sécurisée des secrets : le secret (key.json) est accessible de manière sécurisée à l'aide de Google Secret Manager.
  • Configuration dynamique : .pypirc est généré lors de la construction, garantissant qu'aucune donnée sensible n'est stockée dans le référentiel.
  • Téléchargement automatisé : le processus automatise la création et le transfert des packages, réduisant ainsi les interventions manuelles.

Validation

Une fois la construction terminée :

  1. Vérifiez le package téléchargé dans Artifact Registry :
 gcloud secrets create creds --data-file=path/to/key.json
Copier après la connexion
Copier après la connexion
  1. Vérifiez les erreurs ou les avertissements dans les journaux de build.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal