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 deren 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 oder manuell konfigurieren. AWS CLI Die Konfiguration NuGet mit dem Credential Provider 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 manuell aktualisiert werden muss, während die Nuget- oder Dotnet-CLI verwendet wird, ruft der Anmeldeinformationsanbieter regelmäßig ein neues Token ab, bevor das aktuelle Token abläuft.

Wichtig

Um den Anbieter für Anmeldeinformationen zu verwenden, stellen Sie sicher, dass alle vorhandenen AWS CodeArtifact Anmeldeinformationen aus Ihrer nuget.config Datei gelöscht werden, die möglicherweise manuell oder durch Ausführen von to configure zuvor hinzugefügt wurden. aws codeartifact login NuGet

Installieren und konfigurieren Sie den CodeArtifact NuGet Credential Provider

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

    dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
  2. Verwenden Sie den codeartifact-creds install Befehl, um den Credential Provider 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 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 S3-Bucket herunter.

    Informationen zum Anzeigen und Herunterladen früherer Versionen finden Sie unter. CodeArtifact NuGet Versionen des Credential Providers

  2. Entpacken Sie die Datei.

  3. Kopieren Sie die AWS. CodeArtifact. NuGetCredentialProviderOrdner aus dem Netfx-Ordner zu %user_profile%/.nuget/plugins/netfx/ unter Windows oder ~/.nuget/plugins/netfx unter Linux oder macOS.

  4. Kopieren Sie die AWS. CodeArtifact. NuGetCredentialProviderOrdner aus dem Netcore-Ordner zu %user_profile%/.nuget/plugins/netcore/ unter Windows oder ~/.nuget/plugins/netcore unter Linux oder macOS.

Nachdem Sie ein Repository erstellt und den Anmeldeinformationsanbieter konfiguriert haben, können Sie die Tools nuget oder dotnet CLI verwenden, um Pakete zu installieren und zu veröffentlichen. Weitere Informationen finden Sie unter Verbrauchen Sie NuGet Pakete 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 im 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 %appdata%\NuGet\NuGet.Config für Windows ~/.config/NuGet/NuGet.Config und/oder ~/.nuget/NuGet/NuGet.Config für Mac/Linux befindet. Weitere Informationen zu NuGet Konfigurationen finden Sie unter Allgemeine Konfigurationen. NuGet

Konfigurieren Sie Nuget oder Dotnet mit dem Befehl login
  1. Konfigurieren Sie Ihre AWS Anmeldeinformationen für die 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 für die Verwendung mit abzurufen. NuGet

    Anmerkung

    Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie keine Daten angeben--domain-owner. Weitere Informationen finden Sie unter Kontenübergreifende Domänen.

    dotnet
    Wichtig

    Linux- und macOS-Benutzer: Da die 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 Login-Befehl 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 Standardzeitraum für die Autorisierung nach dem Aufruf login beträgt 12 Stunden. Sie login müssen 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 Tokens.

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

Methode 3: Konfigurieren Sie Nuget oder Dotnet ohne den Login-Befehl

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.

Konfigurieren Sie Nuget oder Dotnet manuell, um eine Verbindung zu Ihrem Repository herzustellen. CodeArtifact

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

    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 mithilfe des get-authorization-token AWS CLI Befehls ein Autorisierungstoken, um eine Verbindung zu Ihrem Repository herzustellen.

    aws codeartifact get-authorization-token --domain my_domain

    Beispielausgabe:

    { "authorizationToken": "eyJ2I...viOw", "expiration": 1601616533.0 }
  3. Erstellen Sie die vollständige Repository-Endpunkt-URL, indem /v3/index.json Sie sie an die get-repository-endpoint in Schritt 3 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 auf 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 dem folgenden Befehl das --store-password-in-clear-text Flag 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 bestehende 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.

Verbrauchen Sie NuGet Pakete von CodeArtifact

Sobald Sie NuGet mit konfiguriert haben CodeArtifact, können Sie NuGet Pakete nutzen, 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 verwendendotnet, führen Sie den folgenden Befehl aus und ersetzen Sie PackageName durch den Namen des Pakets, das Sie nutzen möchten, und packageSourceNamedurch den Quellnamen für Ihr CodeArtifact Repository in Ihrer Konfigurationsdatei. NuGet Wenn Sie den login Befehl zur NuGet Konfiguration Ihrer Konfiguration verwendet haben, lautet der Quellname domain_name/repo_name.

Anmerkung

Wenn ein Paket angefordert wird, speichert der NuGet Client im Cache, welche Versionen dieses Pakets existieren. Aufgrund dieses Verhaltens kann eine Installation für ein Paket 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 mit der dotnet-CLI installieren und verwalten in der Microsoft-Dokumentation.

Sie können NuGet Pakete von NuGet.org über ein CodeArtifact Repository konsumieren, indem Sie das Repository mit einer externen Verbindung zu NuGet.org konfigurieren. Pakete, die von NuGet.org konsumiert 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 keins 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 Credential Provider

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

CodeArtifact NuGet Befehle des Credential Providers

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 für die Verwendung des bereitgestellten Profils. AWS

  • configure unset profile: Entfernt das konfigurierte Profil, falls es gesetzt 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 Logs des Credential Providers

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

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

  • Irgendwelche Authentifizierungsfehler

  • Wenn der angegebene Endpunkt keine CodeArtifact URL ist

Legen Sie die Logdatei des CodeArtifact NuGet Credential Providers 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 Versionen des Credential Providers

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)

Aktualisierte Abhängigkeiten

26.06.2024

Laden Sie v1.0.2 herunter

1.0.1

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

05.03.2022

Laden Sie v1.0.1 herunter

1.0.0

Erste Version des CodeArtifact NuGet Credential Providers

20.11.2020

Laden Sie v1.0.0 herunter