- Entwickler-Tools›
- AWS CodeArtifact›
- Häufig gestellte Fragen
AWS CodeArtifact – Häufig gestellte Fragen
Allgemeines
Was ist AWS CodeArtifact?
AWS CodeArtifact ist ein vollständig verwalteter Artefakt-Repository-Service, der es Unternehmen jeder Größe erleichtert, die in ihrem Software-Entwicklungsprozess verwendeten Software-Pakete sicher zu speichern, zu veröffentlichen und freizugeben. CodeArtifact funktioniert mit häufig verwendeten Paketmanagern und erstellt Tools wie Maven und Gradle (Java), npm und yarn (JavaScript) oder pip and twine (Python), oder NuGet (.NET).
Welche Paketformate können Sie in CodeArtifact speichern?
- npm/Yarn
- pip/twine
- Maven/Gradle
- NuGet
- RubyGems
- SwiftPM
- Generische
- Cargo
Wie viel kostet CodeArtifact?
Mit CodeArtifact müssen Sie keine Vorauszahlungen leisten oder sonstige Verbindlichkeiten eingehen. Sie zahlen nur für die gespeicherten Softwarepakete, die Anzahl der gestellten Anfragen und die aus einer AWS-Region übertragenen Daten. CodeArtifact enthält ein monatliches kostenloses Kontingent für Speicher und Anfragen. Preisinformationen finden Sie auf der Seite mit der Preisinformationen.
In welchen AWS-Regionen ist CodeArtifact verfügbar?
CodeArtifact ist in den folgenden 13 AWS-Regionen verfügbar:
- USA Ost (Nord-Virginia)
- USA Ost (Ohio)
- USA West (Oregon)
- EU (Irland)
- EU (London)
- EU (Frankfurt)
- EU (Stockholm)
- EU (Mailand)
- EU (Paris)
- Asien-Pazifik (Sydney)
- Asien-Pazifik (Tokio)
- Asien-Pazifik (Mumbai)
- Asien-Pazifik (Singapur)
Erste Schritte/Verwendung von CodeArtifact
Was sind die ersten Schritte mit CodeArtifact?
Sie können mit der Verwendung von CodeArtifact beginnen, indem Sie eine neue Domäne und ein neues Repository mithilfe der AWS-Managementkonsoleonsole, SDKs oder CLI erstellen. Sie können dann beliebte Paketmanager und Build-Tools wie z. B. npm oder yarn CLI (JavaScript), maven oder gradle (Java), pip (Python) oder NuGet (NET) verwenden, um Pakete in Ihrem Repository zu veröffentlichen. Sie können Open-Source-Pakete auch aus öffentlichen Repositorys wie z. B. npm registry, Maven Central oder Python Package Index (PyPI), oder NuGet.org über Ihr CodeArtifact-Repository verbrauchen, in dem jedes auf diese Weise verbrauchte Paket gespeichert wird.
Was ist eine CodeArtifact-Domäne?
Eine Domäne ist ein CodeArtifact-spezifisches Konstrukt, das die Gruppierung und Verwaltung mehrerer CodeArtifact-Repositorys ermöglicht, die sich im Besitz einer einzelnen Organisation überall in mehreren AWS-Konten befinden. Eine Organisation kann z. B. ein zentrales Repository für die gemeinsame Nutzung von Paketen zwischen Teams sowie Repositorys auf Projektebene für die Speicherung von Pakete erstellen, die nur von einem einzelnen Team oder einer Anwendung verwendet werden.
Was ist ein CodeArtifact-Repository?
Ein CodeArtifact-Repository enthält eine Reihe von Paketversionen, von denen jede einer Gruppe von Assets zugeordnet wird. Repositorys sind polyglott – ein einzelnes Repository kann Pakete beliebiger unterstützten Typen enthalten. Jedes Repository macht Endpunkte verfügbar, um Pakete mithilfe von Tools wie der npm CLI, der Maven CLI (mvn), pip und NuGet abzurufen und zu veröffentlichen. Für Ressourcenbegrenzungen im AWS CodeArtifact siehe Kontingente im AWS CodeArtifact.
Wie erstelle ich Repositorys in CodeArtifact?
Sie können Repositorys mit dem Konsolen-Assistenten oder programmgesteuert mit AWS SDKs oder CLI erstellen. Weitere Informationen finden Sie unter Erstellen Sie ein Repository in der AWS CodeArtifact-Dokumentation.
Wie veröffentliche ich Artefakte in CodeArtifact?
Sie können Artefakte mithilfe von sprachbezogenen Tools wie z. B. npm oder yarn (JavaScript), maven oder gradle (Java) oder twine (Python) oder NuGet (.NET) veröffentlichen. Das Veröffentlichen einer neuen Paketversion mit npm erfordert beispielsweise zwei Befehle: Führen Sie zuerst den CodeArtifact CLI-Befehl „login“ aus, und führen Sie dann npm publish aus, um das Paket in das Repository hochzuladen. Dieselben Befehle können von AWS CodeBuild ausgeführt werden, um neue Paketversionen als Teil eines Continuous Integration (CI)-Workflows zu veröffentlichen. Weitere Informationen finden Sie hier.
Wie kann ich ein Artefakt aus CodeArtifact abrufen?
Sie können Artefakte mit sprachbezogenen Tools abrufen. Um beispielsweise das npm-Webpack und alle seine Abhängigkeiten zu installieren, führen Sie den CodeArtifact CLI-Befehl „login“ aus und dann führen Sie npm install webpack aus. npm ruft das Webpack aus CodeArtifact ab, führt die Abhängigkeitsauflösung basierend auf den Informationen der Webpack-Datei package.json aus und ruft dann alle erforderlichen Abhängigkeiten aus CodeArtifact rekursiv ab. Weitere Informationen finden Sie hier.
Wie konfiguriere ich ein CodeArtifact-Repository, um Pakete aus externen Paket-Repositorys wie der npm-Registry abzurufen?
Erstellen Sie in der CodeArtifact-Konsole ein Repository mit einer externen Verbindung, um Pakete aus einem öffentlichen Repository wie der npm-Registry abzurufen. Sie können auch die AssociateExternalConnection-API verwenden, um eine Verbindung zwischen einem CodeArtifact-Repository und einem öffentlichen Repository zu erstellen. Wenn Pakete angefordert werden, ruft CodeArtifact die erforderlichen Pakete aus externen Repositorys ab und speichert sie zwischen, falls diese Pakete noch nicht vorhanden sind.
Authentifizierung und Zugriffskontrolle
Wie authentifiziere ich mich bei einem CodeArtifact-Repository über die AWS CLI?
Installieren Sie zunächst die AWS CLI und konfigurieren Sie AWS-Anmeldeinformationen für einen IAM-Benutzer oder eine IAM-Rolle, der/die über die entsprechende Berechtigung für den Zugriff auf CodeArtifact verfügt. Sie können dann die CLI verwenden, um die CodeArtifact-API GetAuthorizationToken aufzurufen. Diese API gibt auth-Tokens aus, die in den HTTP-Autorisierungskopf in Anfragen von Paketmanagern und Build-Tools enthalten werden können. Die CLI stellt den login-Befehl bereit, der GetAuthorizationToken aufruft und automatisch einen Paketmanager so konfiguriert, dass dieses Token für alle Anfragen verwendet werden kann. Dies ähnelt dem von Amazon ECR bereitgestellten get-login-Befehl. Entwickler, die mit ECR über die Docker-CLI interagiert haben, sind daher mit diesem Muster vertraut.
Kann ich den kontoübergreifenden Zugriff auf meine Repositorys aktivieren?
Ja. CodeArtifact-Repositorys unterstützen Ressourcenrichtlinien, um den kontoübergreifenden Zugriff zu ermöglichen. Sie können eine Ressourcenrichtlinie über die Konsole oder AWS CLI hinzufügen.
Kann ich Berechtigungen auf Paketebene aktivieren?
Ja. CodeArtifact unterstützt Schreibberechtigungen auf Paketebene. Sie können diese konfigurieren, indem Sie Anweisungen zu einem Dokument der Repository-Ressourcenrichtlinie hinzufügen, die einen Paket-ARN als Ressource angeben. CodeArtifact unterstützt nur Leseberechtigungen auf Repository-Ebene, d. h., ein bestimmter IAM-Prinzipal kann entweder alle Pakete in einem Repository oder keines von ihnen lesen.
Verschlüsselt CodeArtifact meine Pakete?
Ja. Alle von CodeArtifact gespeicherten Pakete werden während der Übertragung mit TLS und im Ruhezustand mit der symmetrischen AES-256-Schlüsselverschlüsselung verschlüsselt. CodeArtifact unterstützt sowohl die von AWS Key Management Service (KMS)-Kunden verwalteten CMKs als auch die von AWS verwalteten CMKs.
Integrationen
Kann ich AWS CodeArtifact mit AWS CodeBuild verwenden?
Ja. Sie können die CodeArtifact-Repositorys angeben, die in Ihrer CodeBuild-Projektkonfiguration zum Verbrauchen und Veröffentlichen von Paketen verwendet werden sollen. Verfügbare CodeBuild-Bilder enthalten Client-Tools für alle von CodeArtifact unterstützten Pakettypen. CodeBuild konfiguriert das Build-Tool oder den Paketmanager so, dass das angegebene Repository verwendet und ein CodeArtifact-Authentifizierungstoken über die IAM-Rolle des Builds zu Beginn des Builds abgerufen wird. Sie können auch die Build-Artefakte angeben, die nach Abschluss des Builds in Ihrem CodeArtifact-Repository veröffentlicht werden sollen. CodeBuild-Builds können über CloudWatch-Ereignissen ausgelöst werden, die von einem CodeArtifact-Repository ausgesendet werden, wenn sich der Inhalt ändert.
Kann ich AWS CodeArtifact mit AWS CodePipeline verwenden?
Ja. Mit Amazon EventBridge können Sie einen CodePipeline-Build auslösen, wenn sich ein in einem CodeArtifact-Repository gespeichertes Paket ändert, z. B. wenn eine neue Version des Pakets veröffentlicht wird.
Kann ich AWS CloudFormation verwenden, um AWS CodeArtifact Ressourcen zu erstellen?
Ja. Sie können CodeArtifact-Ressourcen wie Domänen und Repositorys mit CloudFormation erstellen. Weitere Details finden Sie in der CodeArtifact-Dokumentation.