Archiviare i pacchetti Python in Artifact Registry

Questa guida rapida mostra come configurare un repository Python privato di Artifact Registry, caricare un pacchetto e poi installarlo.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  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.

Avvia Cloud Shell

In questa guida rapida utilizzerai Cloud Shell, un ambiente shell per la gestione delle risorse ospitate su Google Cloud.

Cloud Shell include Google Cloud CLI e Python preinstallati. gcloud CLI fornisce l'interfaccia a riga di comando principale per Google Cloud.

Avvia Cloud Shell:

  1. Vai alla console Google Cloud .

    Google Cloud console

  2. Nella barra degli strumenti della console Google Cloud , fai clic su Attiva Cloud Shell:

Una sessione di Cloud Shell si apre in un frame nella parte inferiore della console. Utilizza questa shell per eseguire i comandi gcloud.

Installa i pacchetti richiesti

Twine è uno strumento per pubblicare pacchetti Python. Utilizzerai Twine per caricare un pacchetto su Artifact Registry.

In questa guida rapida utilizzerai l'installazione di Python inclusa in Cloud Shell. Questa installazione predefinita include il backend del keyring di Artifact Registry: per gestire l'autenticazione con Artifact Registry. Se crei un ambiente virtuale o configuri Python al di fuori di Cloud Shell, devi installare il backend keyring per l'autenticazione. Per maggiori dettagli, consulta Autenticazione con keyring.

Per installare Twine, esegui il comando:

pip install twine

Ora puoi configurare Artifact Registry.

Crea un repository

Crea il repository per i tuoi pacchetti.

  1. Esegui il comando seguente per creare un nuovo repository di pacchetti Python nel progetto corrente denominato quickstart-python-repo nella località us-central1.

    gcloud artifacts repositories create quickstart-python-repo \
        --repository-format=python \
        --location=us-central1 \
        --description="Python package repository"
    
  2. Esegui questo comando per verificare che il repository sia stato creato:

    gcloud artifacts repositories list
    
  3. Per semplificare i comandi gcloud, imposta il repository predefinito su quickstart-python-repo e la posizione predefinita su us-central1. Una volta impostati i valori, non devi specificarli nei comandi gcloud che richiedono un repository o una posizione.

    Per impostare il repository, esegui il comando:

    gcloud config set artifacts/repository quickstart-python-repo
    

    Per impostare la località, esegui il comando:

    gcloud config set artifacts/location us-central1
    

    Per ulteriori informazioni su questi comandi, consulta la documentazione di gcloud config set.

Configura l'autenticazione

Il backend del keyring di Artifact Registry trova le tue credenziali utilizzando le Credenziali predefinite dell'applicazione (ADC), una strategia che cerca le credenziali nel tuo ambiente.

In questa guida rapida imparerai a:

  • Genera le credenziali utente per ADC. In un ambiente di produzione, devi utilizzare un account di servizio e fornire le credenziali con la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS.
  • Includi l'URL del repository Artifact Registry nei comandi pip e twine in modo da non dover configurare pip e Twine con l'URL del repository.

Per generare le credenziali per ADC, esegui questo comando:

gcloud auth application-default login

Per informazioni dettagliate sui metodi di autenticazione e sull'aggiunta di repository alla configurazione di pip e Twine, consulta Configurare l'autenticazione per i repository di pacchetti Python.

Ottenere un pacchetto di esempio

Quando crei un progetto Python, i file di distribuzione vengono salvati in una sottodirectory dist del progetto Python. Per semplificare questa guida rapida, scaricherai i file del pacchetto precompilati.

  1. Crea una cartella di progetto Python denominata python-quickstart.

    mkdir python-quickstart
    
  2. Crea una sottodirectory denominata dist e poi passa alla directory.

    mkdir python-quickstart/dist
    cd python-quickstart/dist
    
  3. Scarica i pacchetti Python di esempio utilizzati nel tutorial della Guida per l'utente di Python Packaging Packaging Python Projects.

    pip download sampleproject
    

    Il comando scarica il pacchetto sampleproject e la relativa dipendenza, peppercorn.

Caricare il pacchetto nel repository

Utilizza Twine per caricare i pacchetti nel repository.

  1. Dalla directory dist, passa alla directory principale python-quickstart.

    cd ..
    
  2. Carica i pacchetti nel repository dalla directory dist.

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

    Quando esegui il comando con python3 -m, Python individua twine ed esegue il comando. Se il comando twine si trova nel percorso di sistema, puoi eseguirlo senza python3 -m.

Twine carica sia sampleproject che peppercorn nel repository.

Visualizza il pacchetto nel repository

Per verificare che il pacchetto sia stato aggiunto, elenca i pacchetti nel repository quickstart-python-repo.

Esegui questo comando:

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

Per visualizzare le versioni di un pacchetto, esegui questo comando:

gcloud artifacts versions list --package=PACKAGE

Dove PACKAGE è l'ID pacchetto.

Installa il pacchetto

Esegui questo comando per installare il pacchetto:

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

Risoluzione dei problemi

Per impostazione predefinita, strumenti come pip e Twine non restituiscono messaggi di errore dettagliati. Se si verifica un errore, esegui di nuovo il comando con il flag --verbose per ottenere un output più dettagliato. Per saperne di più, consulta la sezione Risoluzione dei problemi relativi ai pacchetti Python.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Prima di rimuovere il repository, assicurati che tutti i pacchetti che vuoi conservare siano disponibili in un'altra posizione.

Per eliminare il repository:

  1. Per eliminare il repository quickstart-python-repo, esegui questo comando:

    gcloud artifacts repositories delete quickstart-python-repo
    
  2. Se vuoi rimuovere il repository predefinito e le impostazioni di posizione configurate per la configurazione gcloud attiva, esegui i comandi seguenti:

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

Passaggi successivi