

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 Cargo
<a name="using-cargo"></a>

Diese Themen beschreiben, wie Sie Cargo, den Rust-Paketmanager, mit verwenden CodeArtifact.

**Anmerkung**  
CodeArtifact unterstützt nur Cargo 1.74.0 und höher. Cargo 1.74.0 ist die früheste Version, die die Authentifizierung in einem CodeArtifact Repository unterstützt.

**Topics**
+ [Cargo konfigurieren und verwenden](configure-use-cargo.md)
+ [Unterstützung von Cargo Command](cargo-commands.md)

# Konfigurieren und verwenden Sie Cargo mit CodeArtifact
<a name="configure-use-cargo"></a>

Sie können Cargo verwenden, um Kisten aus CodeArtifact Repositorys zu veröffentlichen und herunterzuladen oder um Kisten von [crates.io](https://crates.io/), der Crate-Registry der Rust-Community, abzurufen. In diesem Thema wird beschrieben, wie Cargo so konfiguriert wird, dass es sich bei einem Repository authentifiziert und es verwendet. CodeArtifact 

## Konfigurieren Sie Cargo mit CodeArtifact
<a name="configure-cargo"></a>

Um Cargo zum Installieren und Veröffentlichen von Crates zu verwenden AWS CodeArtifact, müssen Sie sie zunächst mit Ihren CodeArtifact Repository-Informationen konfigurieren. Folgen Sie den Schritten in einem der folgenden Verfahren, um Cargo mit Ihren CodeArtifact Repository-Endpunktinformationen und Anmeldeinformationen zu konfigurieren.

### Konfigurieren Sie Cargo mithilfe der Konsolenanweisungen
<a name="configure-cargo-console"></a>

Sie können die Konfigurationsanweisungen in der Konsole verwenden, um Cargo mit Ihrem CodeArtifact Repository zu verbinden. Die Konsolenanweisungen bieten eine auf Ihr CodeArtifact Repository zugeschnittene Cargo-Konfiguration. Sie können diese benutzerdefinierte Konfiguration verwenden, um Cargo einzurichten, ohne Ihre CodeArtifact Informationen suchen und eingeben zu müssen.

1. Öffnen Sie die AWS CodeArtifact Konsole unter [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1. Wählen Sie im Navigationsbereich **Repositories** und dann ein Repository aus, um eine Verbindung zu Cargo herzustellen.

1. Wählen Sie **Verbindungsanweisungen anzeigen**.

1. Wählen Sie Ihr Betriebssystem.

1. Wählen Sie **Cargo**.

1. Folgen Sie den generierten Anweisungen, um Cargo mit Ihrem CodeArtifact Repository zu verbinden.

### Konfigurieren Sie Cargo manuell
<a name="configure-cargo-manual"></a>

Wenn Sie die Konfigurationsanweisungen von der Konsole aus nicht verwenden können oder wollen, können Sie die folgenden Anweisungen verwenden, um Cargo manuell mit Ihrem CodeArtifact Repository zu verbinden. 

------
#### [ macOS and Linux ]

Um Cargo mit zu konfigurieren CodeArtifact, müssen Sie Ihr CodeArtifact Repository in der Cargo-Konfiguration als Registry definieren und Anmeldeinformationen angeben.
+ *my\$1registry*Ersetzen Sie es durch Ihren Registrierungsnamen.
+ Ersetze es *my\$1domain* durch deinen CodeArtifact Domainnamen.
+ *111122223333*Ersetzen Sie es durch die AWS Konto-ID des Inhabers der Domain. Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie nichts angeben`--domain-owner`. Weitere Informationen finden Sie unter [Kontenübergreifende Domänen](domain-overview.md#domain-overview-cross-account).
+ Ersetze es *my\$1repo* durch deinen CodeArtifact Repository-Namen.

Kopieren Sie die Konfiguration, um Cargo-Pakete zu veröffentlichen und in Ihr Repository herunterzuladen, und speichern Sie sie in der `~/.cargo/config.toml` Datei für eine Konfiguration auf Systemebene oder `.cargo/config.toml` für eine Konfiguration auf Projektebene:

```
[registries.my_registry]
index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/"
credential-provider = "cargo:token-from-stdout aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text"

[registry]
default = "my_registry"

[source.crates-io]
replace-with = "my_registry"
```

------
#### [ Windows: Download packages only ]

Um Cargo mit zu konfigurieren CodeArtifact, müssen Sie Ihr CodeArtifact Repository in der Cargo-Konfiguration als Registrierung definieren und Anmeldeinformationen angeben.
+ *my\$1registry*Ersetzen Sie es durch Ihren Registrierungsnamen.
+ Ersetze es *my\$1domain* durch deinen CodeArtifact Domainnamen.
+ *111122223333*Ersetzen Sie es durch die AWS Konto-ID des Inhabers der Domain. Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie nichts angeben`--domain-owner`. Weitere Informationen finden Sie unter [Kontenübergreifende Domänen](domain-overview.md#domain-overview-cross-account).
+ Ersetze es *my\$1repo* durch deinen CodeArtifact Repository-Namen.

Kopieren Sie die Konfiguration, um nur Cargo-Pakete aus Ihrem Repository herunterzuladen, und speichern Sie sie in der `%USERPROFILE%\.cargo\config.toml` Datei für eine Konfiguration auf Systemebene oder `.cargo\config.toml` für eine Konfiguration auf Projektebene:

```
[registries.my_registry]
index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/"
credential-provider = "cargo:token-from-stdout aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text"

[registry]
default = "my_registry"

[source.crates-io]
replace-with = "my_registry"
```

------
#### [ Windows: Publish and download packages ]

1. Um Cargo mit zu konfigurieren CodeArtifact, müssen Sie Ihr CodeArtifact Repository in der Cargo-Konfiguration als Registrierung definieren und Anmeldeinformationen angeben.
   + *my\$1registry*Ersetzen Sie es durch Ihren Registrierungsnamen.
   + Ersetze es *my\$1domain* durch deinen CodeArtifact Domainnamen.
   + *111122223333*Ersetzen Sie es durch die AWS Konto-ID des Inhabers der Domain. Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie nichts angeben`--domain-owner`. Weitere Informationen finden Sie unter [Kontenübergreifende Domänen](domain-overview.md#domain-overview-cross-account).
   + Ersetze es *my\$1repo* durch deinen CodeArtifact Repository-Namen.

   Kopieren Sie die Konfiguration, um Cargo-Pakete zu veröffentlichen und in Ihr Repository herunterzuladen, und speichern Sie sie in der `%USERPROFILE%\.cargo\config.toml` Datei für eine Konfiguration auf Systemebene oder `.cargo\config.toml` für eine Konfiguration auf Projektebene.

   Es wird empfohlen, den Anmeldeinformationsanbieter zu verwenden`cargo:token`, der die in Ihrer Datei gespeicherten Anmeldeinformationen verwendet. `~/.cargo/credentials.toml` `cargo publish`Bei der Verwendung kann ein Fehler auftreten, `cargo:token-from-stdout` da der Cargo-Client das Autorisierungstoken `cargo publish` währenddessen nicht richtig kürzt.

   ```
   [registries.my_registry]
   index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/"
   credential-provider = "cargo:token"
   
   [registry]
   default = "my_registry"
   
   [source.crates-io]
   replace-with = "my_registry"
   ```

1. Um Cargo-Pakete mit Windows in Ihrem Repository zu veröffentlichen, müssen Sie den CodeArtifact `get-authorization-token` Befehl und den `login` Cargo-Befehl verwenden, um ein Autorisierungstoken und Ihre Anmeldeinformationen abzurufen.
   + *my\$1registry*Ersetzen Sie es durch Ihren Registrierungsnamen, wie unter definiert. `[registries.my_registry]`
   + *my\$1domain*Ersetzen Sie es durch Ihren CodeArtifact Domainnamen.
   + *111122223333*Ersetzen Sie es durch die AWS Konto-ID des Inhabers der Domain. Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie nichts angeben`--domain-owner`. Weitere Informationen finden Sie unter [Kontenübergreifende Domänen](domain-overview.md#domain-overview-cross-account).

   ```
   aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text | cargo login --registry my_registry
   ```
**Anmerkung**  
Das generierte Autorisierungstoken ist 12 Stunden gültig. Sie müssen ein neues erstellen, wenn seit der Erstellung eines Tokens 12 Stunden vergangen sind.

------

Der `[registries.my_registry]` Abschnitt im vorherigen Beispiel definiert eine Registrierung mit `my_registry` `index` und stellt `credential-provider` Informationen bereit.
+ `index`gibt die URL des Indexes für Ihre Registrierung an. Dabei handelt es sich um den CodeArtifact Repository-Endpunkt, der mit a endet`/`. Das `sparse+` Präfix ist für Registries erforderlich, die keine Git-Repositorys sind.
**Anmerkung**  
Um einen Dual-Stack-Endpunkt zu verwenden, verwenden Sie den Endpunkt. `codeartifact.region.on.aws`
+ `credential-provider`gibt den Anmeldeinformationsanbieter für die angegebene Registrierung an. Wenn `credential-provider` nicht gesetzt, `registry.global-credential-providers` werden die angegebenen Anbieter verwendet. Wenn Sie `credential-provider` auf setzen`cargo:token-from-stdout`, ruft der Cargo-Client beim Veröffentlichen oder Herunterladen aus Ihrem CodeArtifact Repository automatisch ein neues Autorisierungstoken ab, sodass Sie das Autorisierungstoken nicht alle 12 Stunden manuell aktualisieren müssen.

Der `[registry]` Abschnitt definiert die verwendete Standardregistrierung.
+ `default`gibt den Namen der Registrierung an`[registries.my_registry]`, der in definiert ist und standardmäßig beim Veröffentlichen oder Herunterladen aus Ihrem CodeArtifact Repository verwendet werden soll.

Der `[source.crates-io]` Abschnitt definiert die Standardregistrierung, die verwendet wird, wenn keine angegeben ist.
+ `replace-with = "my_registry"`ersetzt die öffentliche Registrierung crates.io durch Ihr unter definiertes CodeArtifact Repository. `[registries.my_registry]` Diese Konfiguration wird empfohlen, wenn Sie Pakete über die externe Verbindung anfordern müssen, z. B. crates.io.

  Um alle Vorteile nutzen zu können CodeArtifact, wie z. B. die Kontrolle des Paketursprungs, die Angriffe zur Konfusion von Abhängigkeiten verhindert, wird empfohlen, den Quellcode zu ersetzen. Beim Austausch der Quelle werden alle Anfragen CodeArtifact per Proxy an die externe Verbindung weitergeleitet und das Paket von der externen Verbindung in Ihr Repository kopiert. Ohne den Ersatz der Quelle ruft der Cargo-Client das Paket direkt auf der Grundlage der Konfiguration in Ihrer `Cargo.toml` Datei in Ihrem Projekt ab. Wenn eine Abhängigkeit nicht mit markiert ist`registry=my_registry`, ruft der Cargo-Client sie direkt von crates.io ab, ohne mit Ihrem Repository zu kommunizieren. CodeArtifact 
**Anmerkung**  
Wenn Sie anfangen, den Quellenersatz zu verwenden und dann Ihre Konfigurationsdatei so aktualisieren, dass der Quellenersatz nicht verwendet wird, können Fehler auftreten. Das gegenteilige Szenario kann ebenfalls zu Fehlern führen. Es wird daher empfohlen, die Konfiguration für Ihr Projekt nicht zu ändern.

## Frachtkisten installieren
<a name="install-cargo-crates"></a>

[Gehen Sie wie folgt vor, um Cargo-Kisten aus einem CodeArtifact Repository oder von crates.io zu installieren.](https://crates.io/)

### Installiere Frachtkisten von CodeArtifact
<a name="install-cargo-crates-aca"></a>

Sie können die Cargo (`cargo`) CLI verwenden, um schnell eine bestimmte Version einer Cargo-Kiste aus Ihrem CodeArtifact Repository zu installieren.

**Um Cargo-Kisten aus einem CodeArtifact Repository zu installieren mit `cargo`**

1. Falls nicht, folgen Sie den Schritten unter So konfigurieren Sie die `cargo` CLI so, dass Ihr CodeArtifact Repository mit den richtigen Anmeldeinformationen verwendet wird. [Konfigurieren und verwenden Sie Cargo mit CodeArtifact](#configure-use-cargo)

1. Verwenden Sie den folgenden Befehl, um Cargo Crates von CodeArtifact zu installieren:

   ```
   cargo add my_cargo_package@1.0.0
   ```

   Weitere Informationen finden Sie unter [Cargo Add](https://doc.rust-lang.org/cargo/commands/cargo-add.html) in *The Cargo Book*.

## Frachtkisten veröffentlichen auf CodeArtifact
<a name="publish-cargo-crates"></a>

Gehen Sie wie folgt vor, um Cargo-Kisten mithilfe der `cargo` CLI in einem CodeArtifact Repository zu veröffentlichen.

1. Falls nicht, folgen Sie den Schritten unter So konfigurieren Sie die `cargo` CLI so, dass Ihr CodeArtifact Repository mit den richtigen Anmeldeinformationen verwendet wird. [Konfigurieren und verwenden Sie Cargo mit CodeArtifact](#configure-use-cargo)

1. Verwenden Sie den folgenden Befehl, um Cargo-Kisten in einem CodeArtifact Repository zu veröffentlichen:

   ```
   cargo publish
   ```

   Weitere Informationen finden Sie unter [Cargo Publish](https://doc.rust-lang.org/cargo/commands/cargo-publish.html) in *The Cargo Book*.

# Unterstützung von Cargo Command
<a name="cargo-commands"></a>

In den folgenden Abschnitten werden die Cargo-Befehle zusammengefasst, die von CodeArtifact Repositorys unterstützt werden, zusätzlich zu bestimmten Befehlen, die nicht unterstützt werden.

**Contents**
+ [Unterstützte Befehle, für die der Zugriff auf die Registrierung erforderlich ist](#supported-commands-access-the-registry)
+ [Nicht unterstützte Befehle](#unsupported-commands)

## Unterstützte Befehle, für die der Zugriff auf die Registrierung erforderlich ist
<a name="supported-commands-access-the-registry"></a>

In diesem Abschnitt werden Cargo-Befehle aufgeführt, bei denen der Cargo-Client Zugriff auf die Registry benötigt, mit der er konfiguriert wurde. Es wurde verifiziert, dass diese Befehle korrekt funktionieren, wenn sie in einem CodeArtifact Repository aufgerufen werden.


****  

| Befehl | Description | 
| --- | --- | 
|   [Build](https://doc.rust-lang.org/cargo/commands/cargo-build.html)   |  Erstellt lokale Pakete und deren Abhängigkeiten.  | 
|   [überprüfen](https://doc.rust-lang.org/cargo/commands/cargo-check.html)   |  Überprüft lokale Pakete und ihre Abhängigkeiten auf Fehler.  | 
|   [holen](https://doc.rust-lang.org/cargo/commands/cargo-fetch.html)   |  Ruft die Abhängigkeiten eines Pakets ab.  | 
|   [veröffentlichen](https://doc.rust-lang.org/cargo/commands/cargo-publish.html)   |  Veröffentlicht ein Paket in der Registrierung.  | 

## Nicht unterstützte Befehle
<a name="unsupported-commands"></a>

Diese Cargo-Befehle werden von CodeArtifact Repositorys nicht unterstützt.


****  

| Befehl | Description | 
| --- | --- | 
|   [Besitzer](https://doc.rust-lang.org/cargo/commands/cargo-owner.html)   |  Verwaltet die Besitzer der Kiste im Register.  | 
|   [search](https://doc.rust-lang.org/cargo/commands/cargo-search.html)   |  Sucht in der Registrierung nach Paketen.  | 