View a markdown version of this page

Verwendung CodeArtifact mit der Nuget- oder Dotnet-CLI - 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.

Verwendung CodeArtifact mit der Nuget- oder Dotnet-CLI

Sie können CLI-Tools wie nuget und verwendendotnet, um Pakete zu veröffentlichen und zu konsumieren CodeArtifact. Dieses Dokument enthält Informationen zur Konfiguration der CLI-Tools und ihrer Verwendung zum Veröffentlichen oder Verwenden von Paketen.

Konfigurieren Sie die Nuget- oder Dotnet-CLI

Sie können die Nuget- oder Dotnet-CLI mit dem CodeArtifact NuGet Credential Provider, mit dem oder manuell konfigurieren. AWS CLI Die Konfiguration NuGet mit dem Anmeldeinformationsanbieter wird dringend empfohlen, um die Einrichtung zu vereinfachen und die Authentifizierung fortzusetzen.

Methode 1: Konfiguration mit dem CodeArtifact NuGet Credential Provider

Der CodeArtifact NuGet Credential Provider vereinfacht die Authentifizierung und Konfiguration CodeArtifact mit NuGet CLI-Tools. CodeArtifact Authentifizierungstoken sind maximal 12 Stunden gültig. Um zu vermeiden, dass das Token bei Verwendung der Nuget- oder Dotnet-CLI manuell aktualisiert werden muss, ruft der Anmeldeinformationsanbieter regelmäßig ein neues Token ab, bevor das aktuelle Token abläuft.

Wichtig

Um den Anmeldeinformationsanbieter zu verwenden, stellen Sie sicher, dass alle vorhandenen AWS CodeArtifact Anmeldeinformationen aus Ihrer nuget.config Datei gelöscht werden, die möglicherweise manuell hinzugefügt wurden oder zuvor zur Konfiguration ausgeführt wurden. aws codeartifact login NuGet

Installieren und konfigurieren Sie den CodeArtifact NuGet Credential Provider

dotnet
  1. Laden Sie die neueste Version des AWS.CodeArtifact.NuGet.CredentialProvider Tools NuGet.org mit dem folgenden dotnet Befehl herunter.

    dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
  2. Verwenden Sie den codeartifact-creds install Befehl, um den Anmeldeinformationsanbieter in den NuGet Plugins-Ordner zu kopieren.

    dotnet codeartifact-creds install
  3. (Optional): Legen Sie das AWS Profil fest, das Sie mit dem Anmeldeinformationsanbieter verwenden möchten. Wenn nicht festgelegt, verwendet der Anmeldeinformationsanbieter das Standardprofil. Weitere Informationen zu AWS CLI Profilen finden Sie unter Benannte Profile.

    dotnet codeartifact-creds configure set profile profile_name
nuget

Führen Sie die folgenden Schritte aus, um den CodeArtifact NuGet Credential Provider mithilfe der NuGet CLI aus einem Amazon S3-Bucket zu installieren und zu konfigurieren. Der Anmeldeinformationsanbieter verwendet das AWS CLI Standardprofil. Weitere Informationen zu Profilen finden Sie unter Benannte Profile.

  1. Laden Sie die neueste Version des CodeArtifact NuGet Credential Providers (codeartifact-nuget-credentialprovider.zip) aus einem Amazon S3-Bucket herunter.

    Informationen zum Anzeigen und Herunterladen früherer Versionen finden Sie unterCodeArtifact NuGet Credential Provider-Versionen.

  2. Entpacken Sie die Datei.

  3. Kopieren Sie den AWS.CodeArtifact.NuGetCredentialProvider Ordner aus dem Ordner netfx in den Ordner %user_profile%/.nuget/plugins/netfx/ unter Windows oder ~/.nuget/plugins/netfx unter Linux oder macOS.

  4. Kopieren Sie den AWS.CodeArtifact.NuGetCredentialProvider Ordner aus dem Netcore-Ordner in %user_profile%/.nuget/plugins/netcore/ den Ordner Windows oder ~/.nuget/plugins/netcore Linux oder macOS.

Nachdem Sie ein Repository erstellt und den Anmeldeinformationsanbieter konfiguriert haben, können Sie die nuget oder dotnet CLI-Tools verwenden, um Pakete zu installieren und zu veröffentlichen. Weitere Informationen erhalten Sie unter Verbrauchen Sie Pakete NuGet von CodeArtifact und Veröffentlichen Sie NuGet Pakete in CodeArtifact.

Methode 2: Konfigurieren Sie Nuget oder Dotnet mit dem Login-Befehl

Der codeartifact login Befehl in AWS CLI fügt Ihrer NuGet Konfigurationsdatei einen Repository-Endpunkt und ein Autorisierungstoken hinzu, sodass Nuget oder Dotnet eine Verbindung zu Ihrem CodeArtifact Repository herstellen können. Dadurch wird die NuGet Konfiguration auf Benutzerebene geändert, die sich unter %appdata%\NuGet\NuGet.Config für Windows und/oder für befindet. ~/.config/NuGet/NuGet.Config ~/.nuget/NuGet/NuGet.Config Mac/Linux Weitere Informationen zu NuGet Konfigurationen finden Sie unter Allgemeine NuGet Konfigurationen.

Konfigurieren Sie Nuget oder Dotnet mit dem Login-Befehl
  1. Konfigurieren Sie Ihre AWS Anmeldeinformationen für die Verwendung mit dem AWS CLI, wie unter beschrieben. Erste Schritte mit CodeArtifact

  2. Stellen Sie sicher, dass das NuGet CLI-Tool (nugetoderdotnet) ordnungsgemäß installiert und konfiguriert wurde. Anweisungen finden Sie in der Nuget - oder Dotnet-Dokumentation.

  3. Verwenden Sie den CodeArtifact login Befehl, um Anmeldeinformationen zur Verwendung mit abzurufen. NuGet

    Anmerkung

    Wenn du auf ein Repository in einer Domain zugreifst, die dir gehört, musst du das nicht angeben--domain-owner. Weitere Informationen finden Sie unter Cross-account Domänen.

    dotnet
    Wichtig

    Linux- und macOS-Benutzer: Da Verschlüsselung auf Nicht-Windows-Plattformen nicht unterstützt wird, werden Ihre abgerufenen Anmeldeinformationen als Klartext in Ihrer Konfigurationsdatei gespeichert.

    aws codeartifact login --tool dotnet --domain my_domain --domain-owner 111122223333 --repository my_repo
    nuget
    aws codeartifact login --tool nuget --domain my_domain --domain-owner 111122223333 --repository my_repo

Der Anmeldebefehl wird:

  • Rufen Sie CodeArtifact mithilfe Ihrer AWS Anmeldeinformationen ein Autorisierungstoken ab.

  • Aktualisieren Sie Ihre NuGet Konfiguration auf Benutzerebene mit einem neuen Eintrag für Ihre NuGet Paketquelle. Die Quelle, die auf Ihren CodeArtifact Repository-Endpunkt verweist, wird aufgerufendomain_name/repo_name.

Der standardmäßige Autorisierungszeitraum nach dem Aufruf login beträgt 12 Stunden und login muss aufgerufen werden, um das Token regelmäßig zu aktualisieren. Weitere Hinweise zu dem mit dem login Befehl erstellten Autorisierungstoken finden Sie unterMit dem Login-Befehl erstellte Token.

Nachdem Sie ein Repository erstellt und die Authentifizierung konfiguriert haben, können Sie die nugetdotnet, oder msbuild CLI-Clients verwenden, um Pakete zu installieren und zu veröffentlichen. Weitere Informationen erhalten Sie unter Verbrauchen Sie Pakete NuGet von CodeArtifact und Veröffentlichen Sie NuGet Pakete in CodeArtifact.

Methode 3: Konfigurieren Sie Nuget oder Dotnet ohne den Anmeldebefehl

Für die manuelle Konfiguration müssen Sie Ihrer NuGet Konfigurationsdatei einen Repository-Endpunkt und ein Autorisierungstoken hinzufügen, damit Nuget oder Dotnet eine Verbindung zu Ihrem CodeArtifact Repository herstellen können.

Konfiguriere Nuget oder Dotnet manuell, um eine Verbindung zu deinem Repository herzustellen. CodeArtifact

  1. Ermitteln Sie Ihren CodeArtifact Repository-Endpunkt mithilfe des get-repository-endpoint AWS CLI Befehls.

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format nuget

    Beispielausgabe:

    { "repositoryEndpoint": "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/" }
  2. Holen Sie sich von Ihrem Paketmanager ein Autorisierungstoken, um eine Verbindung zu Ihrem Repository herzustellen, indem Sie den get-authorization-token AWS CLI Befehl verwenden.

    aws codeartifact get-authorization-token --domain my_domain

    Beispielausgabe:

    { "authorizationToken": "eyJ2I...viOw", "expiration": 1601616533.0 }
  3. Erstellen Sie die vollständige URL des Repository-Endpunkts, indem /v3/index.json Sie sie an die get-repository-endpoint in Schritt 1 zurückgegebene URL anhängen.

  4. Konfigurieren Sie Nuget oder Dotnet so, dass der Repository-Endpunkt aus Schritt 1 und das Autorisierungstoken aus Schritt 2 verwendet werden.

    Anmerkung

    Die Quell-URL muss mit 0 enden, damit Nuget oder Dotnet erfolgreich eine Verbindung zu einem Repository herstellen können. /v3/index.json CodeArtifact

    dotnet

    Linux- und macOS-Benutzer: Da Verschlüsselung auf Nicht-Windows-Plattformen nicht unterstützt wird, müssen Sie das --store-password-in-clear-text Flag dem folgenden Befehl hinzufügen. Beachten Sie, dass dadurch Ihr Passwort als Klartext in Ihrer Konfigurationsdatei gespeichert wird.

    dotnet nuget add source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json --name packageSourceName --password eyJ2I...viOw --username aws
    Anmerkung

    Verwenden Sie den dotnet nuget update source Befehl, um eine vorhandene Quelle zu aktualisieren.

    nuget
    nuget sources add -name domain_name/repo_name -Source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json -password eyJ2I...viOw -username aws

    Beispielausgabe:

    Package source with Name: domain_name/repo_name added successfully.
    Anmerkung

    Um einen Dualstack-Endpunkt zu verwenden, verwenden Sie den codeartifact.region.on.aws Endpunkt.

Verbrauchen Sie Pakete NuGet von CodeArtifact

Sobald Sie NuGet mit konfiguriert haben CodeArtifact, können Sie NuGet Pakete konsumieren, die in Ihrem CodeArtifact Repository oder einem seiner Upstream-Repositorys gespeichert sind.

Um eine Paketversion aus einem CodeArtifact Repository oder einem seiner Upstream-Repositorys mit nuget oder zu konsumierendotnet, führen Sie den folgenden Befehl aus und ersetzen packageName Sie ihn durch den Namen des Pakets, das Sie verwenden möchten, und packageSourceName durch den Quellnamen für Ihr CodeArtifact Repository in Ihrer NuGet Konfigurationsdatei. Wenn Sie den login Befehl zur NuGet Konfiguration Ihrer Konfiguration verwendet haben, lautet domain_name/repo_name der Quellname.

Anmerkung

Wenn ein Paket angefordert wird, speichert der NuGet Client im Cache, welche Versionen dieses Pakets existieren. Aufgrund dieses Verhaltens kann die Installation eines Pakets fehlschlagen, das zuvor angefordert wurde, bevor die gewünschte Version verfügbar wurde. Um diesen Fehler zu vermeiden und ein vorhandenes Paket erfolgreich zu installieren, können Sie entweder den NuGet Cache vor einer Installation mit nuget locals all --clear oder leeren oder vermeidendotnet nuget locals all --clear, dass der Cache während der restore Befehle install und verwendet wird, indem Sie die -NoCache Option für nuget oder die --no-cache Option für angebendotnet.

dotnet
dotnet add package packageName --source packageSourceName
nuget
nuget install packageName -Source packageSourceName

Um eine bestimmte Version eines Pakets zu installieren

dotnet
dotnet add package packageName --version 1.0.0 --source packageSourceName
nuget
nuget install packageName -Version 1.0.0 -Source packageSourceName

Weitere Informationen finden Sie unter Pakete mit der CLI nuget.exe verwalten oder Pakete mithilfe der dotnet-CLI installieren und verwalten in der Microsoft-Dokumentation.

Sie können NuGet Pakete NuGet.org über ein CodeArtifact Repository konsumieren, indem Sie das Repository mit einer externen Verbindung zu konfigurieren NuGet.org. Pakete, aus NuGet.org denen Sie abgerufen werden, werden aufgenommen und in Ihrem CodeArtifact Repository gespeichert. Weitere Hinweise zum Hinzufügen externer Verbindungen finden Sie unterEin CodeArtifact Repository mit einem öffentlichen Repository Connect.

Veröffentlichen Sie NuGet Pakete in CodeArtifact

Sobald Sie NuGet mit konfiguriert haben, können Sie nuget oder verwenden CodeArtifact, um Paketversionen in Repositorys dotnet zu CodeArtifact veröffentlichen.

Um eine Paketversion in ein CodeArtifact Repository zu übertragen, führen Sie den folgenden Befehl mit dem vollständigen Pfad zu Ihrer .nupkg Datei und dem Quellnamen für Ihr CodeArtifact Repository in Ihrer NuGet Konfigurationsdatei aus. Wenn Sie den login Befehl zur NuGet Konfiguration Ihrer Konfiguration verwendet haben, lautet der Quellnamedomain_name/repo_name.

Anmerkung

Sie können ein NuGet Paket erstellen, wenn Sie keines zum Veröffentlichen haben. Weitere Informationen finden Sie in der Microsoft-Dokumentation unter Workflow zur Paketerstellung.

dotnet
dotnet nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg --source packageSourceName
nuget
nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg -Source packageSourceName

CodeArtifact NuGet Referenz zum Anbieter von Anmeldeinformationen

Der CodeArtifact NuGet Credential Provider macht es einfach, Ihre Repositorys zu konfigurieren und sich NuGet bei ihnen zu authentifizieren. CodeArtifact

CodeArtifact NuGet Credential Provider-Befehle

Dieser Abschnitt enthält die Liste der Befehle für den CodeArtifact NuGet Credential Provider. Diesen Befehlen muss ein Präfix dotnet codeartifact-creds wie im folgenden Beispiel vorangestellt werden.

dotnet codeartifact-creds command
  • configure set profile profile: Konfiguriert den Anmeldeinformationsanbieter so, dass er das bereitgestellte Profil verwendet. AWS

  • configure unset profile: Entfernt das konfigurierte Profil, falls es festgelegt ist.

  • install: Kopiert den Anmeldeinformationsanbieter in den plugins Ordner.

  • install --profile profile: Kopiert den Anbieter für Anmeldeinformationen in den plugins Ordner und konfiguriert ihn so, dass er das angegebene Profil verwendet. AWS

  • uninstall: Deinstalliert den Anmeldeinformationsanbieter. Dadurch werden die Änderungen an der Konfigurationsdatei nicht entfernt.

  • uninstall --delete-configuration: Deinstalliert den Anmeldeinformationsanbieter und entfernt alle Änderungen an der Konfigurationsdatei.

CodeArtifact NuGet Anmeldeinformationsanbieter-Protokolle

Um die Protokollierung für den CodeArtifact NuGet Credential Provider zu aktivieren, müssen Sie die Protokolldatei in Ihrer Umgebung einrichten. Die Protokolle des Anmeldeinformationsanbieters enthalten hilfreiche Debugging-Informationen wie:

  • Das AWS Profil, das zum Herstellen von Verbindungen verwendet wird

  • Eventuelle Authentifizierungsfehler

  • Wenn der angegebene Endpunkt keine CodeArtifact URL ist

Legen Sie die CodeArtifact NuGet Credential Provider-Protokolldatei fest

export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file

Nachdem die Protokolldatei eingerichtet wurde, hängt jeder codeartifact-creds Befehl seine Protokollausgabe an den Inhalt dieser Datei an.

CodeArtifact NuGet Credential Provider-Versionen

Die folgende Tabelle enthält Informationen zum Versionsverlauf und Download-Links für den CodeArtifact NuGet Credential Provider.

Version Änderungen Datum der Veröffentlichung Link herunterladen (S3)

1.0.2 (aktuell)

Abhängigkeiten wurden aktualisiert

06/26/2024

Laden Sie v1.0.2 herunter

1.0.1

Unterstützung für Net5-, Net6- und SSO-Profile hinzugefügt

03/05/2022

Laden Sie v1.0.1 herunter

1.0.0

Erste Version des CodeArtifact NuGet Credential Providers

11/20/2020

Laden Sie v1.0.0 herunter