View a markdown version of this page

compatibilità con Bundler - CodeArtifact

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

compatibilità con Bundler

Questa guida contiene informazioni sulla compatibilità CodeArtifact di Bundler.

Compatibilità con Bundler

AWS CodeArtifact consiglia Bundler 2.4.11 o versione successiva. Se riscontri problemi con l'installazione, aggiorna la CLI di Bundler alla versione più recente.

Supporto della versione Bundler

Nelle versioni di Bundler precedenti alla 2.4.11, è possibile definire un limite di 500 dipendenze nel Gemfile prima che Bundler decida di interrogare l'indice completo,. specs.4.8.gz Poiché non CodeArtifact supporta l'indice completo, non è possibile specificare più di 500 dipendenze quando si utilizzano versioni di Bundler inferiori alla 2.4.11. CodeArtifact

Per definire più di 500 dipendenze nel tuo Gemfile con CodeArtifact, aggiorna Bundler alla versione 2.4.11 o successiva.

Supporto alle operazioni di Bundler

Bundler risolve le dipendenze di Ruby gem utilizzando uno dei due protocolli: l'API Compact Index o l'API Dependencies. CodeArtifact supporta entrambi. Bundler 2.4.11 e versioni successive preferiscono l'API Compact Index e ricorrono all'API Dependencies se non è disponibile; le versioni precedenti utilizzano solo l'API Dependencies. RubyGems 3.5.19 e versioni successive utilizzano direttamente l'API Compact Index durante l'esecuzione. gem install

CodeArtifact supporta i seguenti endpoint Compact Index:

  • GET /versions: restituisce ogni gemma nel repository con l'elenco completo delle versioni. Raggruppa e RubyGems usa questo endpoint come punto di ingresso per la risoluzione delle dipendenze.

  • GET /names: Restituisce il nome di ogni gemma nel repository, in ordine alfabetico.

  • GET /info/gem-name: Restituisce la versione, la dipendenza e le informazioni richieste per una singola gemma. Ruby-version

Gli /names endpoint /versions e gli endpoint supportano repository che contengono fino a 5.000 gemme. Le richieste relative a repository che contengono più di 5.000 gemme restituiscono un errore HTTP 400.

CodeArtifact supporta anche l'API Bundler Dependencies all'indirizzo. /api/v1/dependencies Una singola richiesta può includere più nomi di gemme; per dettagli su come le richieste con più gemme vengono ponderate rispetto alla quota di richieste di lettura al secondo del tuo account, consulta. Quote in AWS CodeArtifact

Perché /versions i dati /names restituiti per ogni gemma del repository ponderano CodeArtifact anche queste richieste in base al numero di gemme restituite. CI/CDgli ambienti che eseguono gem install operazioni bundle install o operazioni simultanee possono essere limitati anche quando la frequenza di richieste HTTP appare bassa. Se riscontri una limitazione durante la risoluzione delle gem di Ruby, richiedi un aumento della quota di richieste di lettura al secondo da un singolo account. AWS

Se in precedenza avevi aggiunto una versione precedente RubyGems alla 3.5.19 come soluzione alternativa per la CodeArtifact compatibilità, ora puoi rimuovere quel pin ed eseguire l'aggiornamento alla versione più recente.

CodeArtifact non supporta gli indici delle RubyGems specifiche precedenti, tra cui, e. specs.4.8.gz latest_specs.4.8.gz prerelease_specs.4.8.gz Questi sono stati sostituiti dall'API Compact Index.

Test del supporto per Compact Index

Per verificare che la risoluzione di Compact Index funzioni correttamente con il tuo CodeArtifact repository:

  1. Se in precedenza hai aggiunto il pin RubyGems a una versione precedente alla 3.5.19, rimuovi il pin:

    gem update --system
  2. Verifica la tua versione RubyGems e quella di Bundler:

    gem --version # Should be 3.5.19 or higher bundle --version # Should be 2.4.11 or higher
  3. Esegui il test gem install con il tuo CodeArtifact repository:

    gem install <gem-name> --source https://<domain>-<account-id>.d.codeartifact.<region>.amazonaws.com/ruby/<repo>/
  4. Esegui bundle install un test con un output dettagliato per confermare che sia in uso Compact Index:

    bundle install --verbose 2>&1 | grep -i "compact\|/versions\|/info"

    Dovresti vedere le richieste indirizzate a /versions e /info/<gem-name> anziché/api/v1/dependencies.