View a markdown version of this page

Bundler-Kompatibilität - CodeArtifact

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bundler-Kompatibilität

Dieses Handbuch enthält Informationen CodeArtifact zur Kompatibilität mit Bundler.

Bundler-Kompatibilität

AWS CodeArtifact empfiehlt Bundler 2.4.11 oder höher. Wenn Sie Probleme bei der Installation haben, aktualisieren Sie die Bundler-CLI auf die neueste Version.

Unterstützung für Bundler-Versionen

In Bundler-Versionen vor 2.4.11 gibt es ein Limit von 500 Abhängigkeiten, die im Gemfile definiert werden können, bevor Bundler beschließt, den vollständigen Index abzufragen. specs.4.8.gz Da der vollständige Index CodeArtifact nicht unterstützt wird, funktioniert die Angabe von mehr als 500 Abhängigkeiten nicht, CodeArtifact wenn Bundler-Versionen unter 2.4.11 verwendet werden.

Um mehr als 500 Abhängigkeiten in Ihrem Gemfile mit zu definieren CodeArtifact, aktualisieren Sie Bundler auf Version 2.4.11 oder höher.

Unterstützung für Bundler-Operationen

Bundler löst Ruby-Gem-Abhängigkeiten mithilfe eines von zwei Protokollen auf: der Compact Index API oder der Dependencies API. CodeArtifact unterstützt beide. Bundler 2.4.11 und höher bevorzugen die Compact Index API und greifen auf die Dependencies API zurück, falls sie nicht verfügbar ist. Frühere Versionen verwenden nur die Dependencies API. RubyGems 3.5.19 und höher verwenden die Compact Index API direkt bei der Ausführung. gem install

CodeArtifact unterstützt die folgenden Compact Index-Endpunkte:

  • GET /versions: Gibt jedes Gem im Repository mit seiner vollständigen Versionsliste zurück. Bündeln und RubyGems verwenden Sie diesen Endpunkt als Einstiegspunkt für die Auflösung von Abhängigkeiten.

  • GET /names: Gibt alle Edelsteinnamen im Repository zurück, alphabetisch sortiert.

  • GET /info/gem-name: Gibt die Version, die Abhängigkeit und die erforderlichen Ruby-version Informationen für ein einzelnes Gem zurück.

Die /names Endpunkte /versions und unterstützen Repositorys, die bis zu 5.000 Gems enthalten. Anfragen an Repositorys, die mehr als 5.000 Gems enthalten, geben einen HTTP 400-Fehler zurück.

CodeArtifact unterstützt auch die Bundler Dependencies API unter. /api/v1/dependencies Eine einzelne Anfrage kann mehrere Edelsteinnamen enthalten. Weitere Informationen darüber, wie Multi-Gem-Anfragen mit dem Kontingent für Leseanfragen pro Sekunde Ihres Kontos gewichtet werden, finden Sie unter. Kontingente in AWS CodeArtifact

Da /versions Daten für jeden Edelstein im Repository /names zurückgegeben werden, werden diese Anfragen CodeArtifact auch nach der Anzahl der zurückgegebenen Gems gewichtet. CI/CDUmgebungen, die gleichzeitig ausgeführt werden, bundle install oder gem install Operationen können gedrosselt werden, selbst wenn die HTTP-Anforderungsrate niedrig erscheint. Wenn Sie während der Ruby-Gem-Auflösung eine Drosselung feststellen, fordern Sie von einem einzigen Konto aus eine Erhöhung des Kontingents für Leseanfragen pro Sekunde an. AWS

Wenn Sie zuvor als Workaround aus CodeArtifact Kompatibilitätsgründen RubyGems auf eine Version unter 3.5.19 gepinnt haben, können Sie diese PIN jetzt entfernen und auf die neueste Version aktualisieren.

CodeArtifact unterstützt die älteren RubyGems Spezifikationsindizes, einschließlich, und, nicht. specs.4.8.gz latest_specs.4.8.gz prerelease_specs.4.8.gz Diese wurden durch die Compact Index API ersetzt.

Die Compact Index-Unterstützung wird getestet

Gehen Sie wie folgt vor, um zu überprüfen, ob die Compact-Index-Auflösung mit Ihrem CodeArtifact Repository korrekt funktioniert:

  1. Wenn Sie zuvor RubyGems an eine Version unter 3.5.19 gepinnt haben, entfernen Sie den Pin:

    gem update --system
  2. Überprüfen Sie Ihre Version RubyGems und die Bundler-Version:

    gem --version # Should be 3.5.19 or higher bundle --version # Should be 2.4.11 or higher
  3. Testen Sie gem install mit Ihrem CodeArtifact Repository:

    gem install <gem-name> --source https://<domain>-<account-id>.d.codeartifact.<region>.amazonaws.com/ruby/<repo>/
  4. Testen Sie bundle install mit ausführlicher Ausgabe, um sicherzustellen, dass Compact Index verwendet wird:

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

    Sie sollten /info/<gem-name> eher Anfragen an /versions und als /api/v1/dependencies sehen.