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.
Pakete zwischen Repositorys kopieren
Sie können Paketversionen von einem Repository in ein anderes kopieren in CodeArtifact. Dies kann in Szenarien wie Workflows zur Paketwerbung oder beim Teilen von Paketversionen zwischen Teams oder Projekten hilfreich sein. Das Quell- und das Ziel-Repositorium müssen sich in derselben Domäne befinden, um Paketversionen kopieren zu können.
Erforderliche IAM-Berechtigungen zum Kopieren von Paketen
Um Paketversionen hineinkopieren zu können CodeArtifact, muss der aufrufende Benutzer über die erforderlichen IAM-Berechtigungen verfügen, und die ressourcenbasierte Richtlinie, die den Quell- und Ziel-Repositorys zugeordnet ist, muss über die erforderlichen Berechtigungen verfügen. Weitere Informationen zu ressourcenbasierten Berechtigungsrichtlinien und Repositorys finden Sie unter. CodeArtifact Repository-Richtlinien
Der anrufende Benutzer copy-package-versions muss die ReadFromRepository Berechtigung für das Quell-Repository und die CopyPackageVersions Berechtigung für das Ziel-Repository haben.
Das Quell-Repository muss über die ReadFromRepository Berechtigung verfügen und das Ziel-Repository muss über die CopyPackageVersions Berechtigung verfügen, die dem IAM-Konto oder dem Benutzer zugewiesen ist, der Pakete kopiert. Die folgenden Richtlinien sind Beispiele für Repository-Richtlinien, die mit dem put-repository-permissions-policy Befehl zum Quell-Repository oder Ziel-Repository hinzugefügt werden können. 111122223333Ersetzen Sie durch die ID des aufrufenden Kontoscopy-package-versions.
Anmerkung
Der Aufruf ersetzt put-repository-permissions-policy die aktuelle Repository-Richtlinie, falls eine existiert. Sie können den get-repository-permissions-policy Befehl verwenden, um zu überprüfen, ob eine Richtlinie existiert. Weitere Informationen finden Sie unterLesen Sie eine Richtlinie. Wenn eine Richtlinie existiert, sollten Sie ihr diese Berechtigungen hinzufügen, anstatt sie zu ersetzen.
Beispiel für eine Berechtigungsrichtlinie für das Quell-Repository
Beispiel für eine Berechtigungsrichtlinie für das Ziel-Repository
Paketversionen kopieren
Verwenden Sie den copy-package-versions Befehl in CodeArtifact , um eine oder mehrere Paketversionen von einem Quell-Repository in ein Ziel-Repository in derselben Domain zu kopieren. Im folgenden Beispiel werden die Versionen 6.0.2 und 4.0.0 eines my-package aus dem Repository benannten npm-Pakets in das my_repo Repository kopiert. repo-2
aws codeartifact copy-package-versions --domainmy_domain--domain-owner111122223333--source-repositorymy_repo\ --destination-repositoryrepo-2--packagemy-package--format npm \ --versions6.0.2 4.0.0
Sie können mehrere Versionen desselben Paketnamens in einem einzigen Vorgang kopieren. Um Versionen verschiedener Paketnamen zu kopieren, müssen Sie copy-package-versions für jede einzelne Version aufrufen.
Der vorherige Befehl erzeugt die folgende Ausgabe, vorausgesetzt, beide Versionen konnten erfolgreich kopiert werden.
{ "successfulVersions": { "6.0.2": { "revision": "REVISION-1-SAMPLE-6C81EFF7DA55CC", "status": "Published" }, "4.0.0": { "revision": "REVISION-1-SAMPLE-6C81EFF7DA55CC", "status": "Published" } }, "failedVersions": {} }
Kopiert ein Paket aus Upstream-Repositorys
Normalerweise sucht es copy-package-versions nur in dem durch die --source-repository Option angegebenen Repository nach Versionen, die kopiert werden sollen. Sie können jedoch Versionen sowohl aus dem Quell-Repository als auch aus den Upstream-Repositorys kopieren, indem Sie die --include-from-upstream Option verwenden. Wenn Sie das CodeArtifact SDK verwenden, rufen Sie die CopyPackageVersions API mit dem includeFromUpstream Parameter auf true auf. Weitere Informationen finden Sie unter Arbeiten mit Upstream-Repositorys in CodeArtifact.
Kopieren Sie ein NPM-Paket mit Gültigkeitsbereich
Um eine NPM-Paketversion in einen Bereich zu kopieren, verwenden Sie die --namespace Option, um den Bereich anzugeben. Um das Paket zu kopieren, verwenden Sie @types/react --namespace types beispielsweise. Das @ Symbol muss bei der Verwendung weggelassen werden--namespace.
aws codeartifact copy-package-versions --domainmy_domain--domain-owner111122223333--source-repositoryrepo-1\ --destination-repositoryrepo-2--format npm --namespacetypes\ --packagereact--versions0.12.2
Kopieren Sie die Maven-Paketversionen
Um Maven-Paketversionen zwischen Repositorys zu kopieren, geben Sie das zu kopierende Paket an, indem Sie die Maven-Gruppen-ID mit der --namespace Option und die Maven-Artifact-ID mit der Option übergeben. --name Zum Beispiel, um eine einzelne Version von zu kopieren: com.google.guava:guava
aws codeartifact copy-package-versions --domainmy_domain--domain-owner111122223333\ --source-repositorymy_repo--destination-repositoryrepo-2--format maven --namespacecom.google.guava\ --packageguava--versions27.1-jre
Wenn die Paketversion erfolgreich kopiert wurde, sieht die Ausgabe ähnlich wie folgt aus.
{ "successfulVersions": { "27.1-jre": { "revision": "REVISION-1-SAMPLE-6C81EFF7DA55CC", "status": "Published" } }, "failedVersions": {} }
Versionen, die im Quell-Repository nicht existieren
Wenn Sie eine Version angeben, die im Quell-Repository nicht existiert, schlägt das Kopieren fehl. Wenn einige Versionen im Quell-Repository existieren und andere nicht, schlägt das Kopieren aller Versionen fehl. Im folgenden Beispiel ist Version 0.2.0 des array-unique npm-Pakets im Quell-Repository vorhanden, Version 5.6.7 jedoch nicht:
aws codeartifact copy-package-versions --domainmy_domain--domain-owner111122223333\ --source-repositorymy_repo--destination-repositoryrepo-2--format npm \ --packagearray-unique--versions0.2.0 5.6.7
Die Ausgabe in diesem Szenario wird der folgenden ähneln.
{ "successfulVersions": {}, "failedVersions": { "0.2.0": { "errorCode": "SKIPPED", "errorMessage": "Version 0.2.0 was skipped" }, "5.6.7": { "errorCode": "NOT_FOUND", "errorMessage": "Could not find version 5.6.7" } } }
Der SKIPPED Fehlercode wird verwendet, um anzuzeigen, dass die Version nicht in das Ziel-Repository kopiert wurde, weil eine andere Version nicht kopiert werden konnte.
Versionen, die bereits im Ziel-Repository existieren
Wenn eine Paketversion in ein Repository kopiert wird, in dem sie bereits existiert, werden die Paketressourcen und die Metadaten auf Paketversionsebene in den beiden Repositorys CodeArtifact verglichen.
Wenn die Assets und Metadaten der Paketversion in den Quell- und Ziel-Repositorys identisch sind, wird kein Kopiervorgang durchgeführt, der Vorgang wird jedoch als erfolgreich betrachtet. Das bedeutet, dass es copy-package-versions idempotent ist. In diesem Fall wird die Version, die sowohl im Quell- als auch im Ziel-Repositorium bereits vorhanden war, nicht in der Ausgabe von aufgeführt. copy-package-versions
Im folgenden Beispiel array-unique sind zwei Versionen des npm-Pakets im Quell-Repository vorhanden. repo-1 Version 0.2.1 ist auch im Ziel-Repository vorhanden dest-repo und Version 0.2.0 nicht.
aws codeartifact copy-package-versions --domainmy_domain--domain-owner111122223333\ --source-repositorymy_repo--destination-repositoryrepo-2--format npm --packagearray-unique\ --versions0.2.1 0.2.0
Die Ausgabe in diesem Szenario wird der folgenden ähneln.
{ "successfulVersions": { "0.2.0": { "revision": "Yad+B1QcBq2kdEVrx1E1vSfHJVh8Pr61hBUkoWPGWX0=", "status": "Published" } }, "failedVersions": {} }
Version 0.2.0 ist unter aufgeführtsuccessfulVersions, da sie erfolgreich vom Quell- in das Ziel-Repository kopiert wurde. Version 0.2.1 wird in der Ausgabe nicht angezeigt, da sie bereits im Ziel-Repository vorhanden war.
Wenn sich die Assets oder Metadaten der Paketversion im Quell- und Ziel-Repositorium unterscheiden, schlägt der Kopiervorgang fehl. Sie können den --allow-overwrite Parameter verwenden, um ein Überschreiben zu erzwingen.
Wenn einige Versionen im Ziel-Repository existieren und andere nicht, schlägt das Kopieren aller Versionen fehl. Im folgenden Beispiel ist Version 0.3.2 des array-unique npm-Pakets sowohl im Quell- als auch im Ziel-Repositorium vorhanden, aber der Inhalt der Paketversion ist unterschiedlich. Version 0.2.1 ist im Quell-Repository vorhanden, aber nicht im Ziel-Repository.
aws codeartifact copy-package-versions --domainmy_domain--domain-owner111122223333\ --source-repositorymy_repo--destination-repositoryrepo-2--format npm --packagearray-unique\ --versions0.3.2 0.2.1
Die Ausgabe in diesem Szenario wird der folgenden ähneln.
{ "successfulVersions": {}, "failedVersions": { "0.2.1": { "errorCode": "SKIPPED", "errorMessage": "Version 0.2.1 was skipped" }, "0.3.2": { "errorCode": "ALREADY_EXISTS", "errorMessage": "Version 0.3.2 already exists" } } }
Version 0.2.1 ist als gekennzeichnetSKIPPED, weil sie nicht in das Ziel-Repository kopiert wurde. Sie wurde nicht kopiert, da das Kopieren von Version 0.3.2 fehlgeschlagen ist, weil sie bereits im Ziel-Repository vorhanden war, aber im Quell- und Ziel-Repository nicht identisch war.
Angabe einer Paketversion (Revision)
Eine Paketversionsrevision ist eine Zeichenfolge, die einen bestimmten Satz von Assets und Metadaten für eine Paketversion angibt. Sie können eine Paketversionsrevision angeben, um Paketversionen zu kopieren, die sich in einem bestimmten Status befinden. Um eine Paketversionsrevision anzugeben, verwenden Sie den --version-revisions Parameter, um eine oder mehrere durch Kommas getrennte Paketversion und die Paketversionsrevisionspaare an den copy-package-versions Befehl zu übergeben.
Anmerkung
Sie müssen den --version-revisions Parameter --versions oder mit angeben. copy-package-versions Sie können nicht beides angeben.
Das folgende Beispiel kopiert nur die Version 0.3.2 des Pakets, my-package wenn sie im Quell-Repository mit der Paketversionsrevision REVISION-1-SAMPLE-6C81EFF7DA55CC vorhanden ist.
aws codeartifact copy-package-versions --domainmy_domain--domain-owner111122223333--source-repositoryrepo-1\ --destination-repositoryrepo-2--format npm --namespacemy-namespace\ --packagemy-package--version-revisions0.3.2=REVISION-1-SAMPLE-6C81EFF7DA55CC
Das folgende Beispiel kopiert zwei Versionen des Paketsmy-package, 0.3.2 und 0.3.13. Das Kopieren ist nur erfolgreich, wenn im Quell-Repository Version 0.3.2 von eine Revision REVISION-1-SAMPLE-6C81EFF7DA55CC und Version my-package 0.3.13 eine Revision hat. REVISION-2-SAMPLE-55C752BEE772FC
aws codeartifact copy-package-versions --domainmy_domain--domain-owner111122223333--source-repositoryrepo-1\ --destination-repositoryrepo-2--format npm --namespacemy-namespace\ --packagemy-package--version-revisions0.3.2=REVISION-1-SAMPLE-6C81EFF7DA55CC,0.3.13=REVISION-2-SAMPLE-55C752BEE772FC
Um die Revisionen einer Paketversion zu finden, verwenden Sie den describe-package-version Befehl oder. list-package-versions
Weitere Informationen finden Sie unter Revision der Paketversion und CopyPackageVersion in der CodeArtifact -API-Referenz.
Kopieren Sie npm-Pakete
Weitere Informationen zum copy-package-versions Verhalten mit npm-Paketen finden Sie unter npm-Tags und die API. CopyPackageVersions