

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan CodeArtifact dengan Cargo
<a name="using-cargo"></a>

Topik-topik ini menjelaskan cara menggunakan Cargo, manajer paket Rust, dengan CodeArtifact.

**catatan**  
CodeArtifact hanya mendukung Cargo 1.74.0 dan lebih tinggi. Cargo 1.74.0 adalah versi paling awal yang mendukung otentikasi pada repositori. CodeArtifact 

**Topics**
+ [Konfigurasikan dan gunakan Cargo](configure-use-cargo.md)
+ [Dukungan perintah kargo](cargo-commands.md)

# Konfigurasikan dan gunakan Cargo dengan CodeArtifact
<a name="configure-use-cargo"></a>

Anda dapat menggunakan Cargo untuk menerbitkan dan mengunduh peti dari CodeArtifact repositori atau untuk mengambil peti dari [crates.io, registri peti komunitas Rust](https://crates.io/). Topik ini menjelaskan cara mengonfigurasi Cargo untuk mengautentikasi dengan dan menggunakan CodeArtifact repositori.

## Konfigurasikan Cargo dengan CodeArtifact
<a name="configure-cargo"></a>

Untuk menggunakan Cargo untuk menginstal dan menerbitkan peti dari AWS CodeArtifact, Anda harus terlebih dahulu mengkonfigurasinya dengan informasi CodeArtifact repositori Anda. Ikuti langkah-langkah dalam salah satu prosedur berikut untuk mengonfigurasi Cargo dengan informasi titik akhir CodeArtifact repositori dan kredensil Anda.

### Konfigurasikan Cargo menggunakan instruksi konsol
<a name="configure-cargo-console"></a>

Anda dapat menggunakan instruksi konfigurasi di konsol untuk menghubungkan Cargo ke CodeArtifact repositori Anda. Instruksi konsol menyediakan konfigurasi Cargo yang disesuaikan untuk CodeArtifact repositori Anda. Anda dapat menggunakan konfigurasi kustom ini untuk mengatur Cargo tanpa perlu menemukan dan mengisi CodeArtifact informasi Anda.

1. Buka AWS CodeArtifact konsol di [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1. Di panel navigasi, pilih **Repositori, lalu pilih repositori** untuk terhubung ke Cargo.

1. Pilih **Lihat petunjuk koneksi**.

1. Pilih sistem operasi Anda.

1. Pilih **Cargo**.

1. Ikuti instruksi yang dihasilkan untuk menghubungkan Cargo ke CodeArtifact repositori Anda.

### Konfigurasikan Cargo secara manual
<a name="configure-cargo-manual"></a>

Jika Anda tidak dapat atau tidak ingin menggunakan instruksi konfigurasi dari konsol, Anda dapat menggunakan instruksi berikut untuk menghubungkan Cargo ke CodeArtifact repositori Anda secara manual. 

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

Untuk mengkonfigurasi Cargo dengan CodeArtifact, Anda perlu mendefinisikan CodeArtifact repositori Anda sebagai registri dalam konfigurasi Cargo dan memberikan kredensil.
+ Ganti *my\$1registry* dengan nama registri Anda.
+ Ganti *my\$1domain* dengan nama CodeArtifact domain Anda.
+ Ganti *111122223333* dengan ID AWS akun pemilik domain. Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan `--domain-owner`. Untuk informasi selengkapnya, lihat [Domain lintas akun](domain-overview.md#domain-overview-cross-account).
+ Ganti *my\$1repo* dengan nama CodeArtifact repositori Anda.

Salin konfigurasi untuk menerbitkan dan mengunduh paket Cargo ke repositori Anda dan simpan dalam `~/.cargo/config.toml` file untuk konfigurasi tingkat sistem atau `.cargo/config.toml` untuk konfigurasi tingkat proyek:

```
[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 ]

Untuk mengkonfigurasi Cargo dengan CodeArtifact, Anda perlu mendefinisikan CodeArtifact repositori Anda sebagai registri dalam konfigurasi Cargo dan memberikan kredensil.
+ Ganti *my\$1registry* dengan nama registri Anda.
+ Ganti *my\$1domain* dengan nama CodeArtifact domain Anda.
+ Ganti *111122223333* dengan ID AWS akun pemilik domain. Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan `--domain-owner`. Untuk informasi selengkapnya, lihat [Domain lintas akun](domain-overview.md#domain-overview-cross-account).
+ Ganti *my\$1repo* dengan nama CodeArtifact repositori Anda.

Salin konfigurasi untuk hanya mengunduh paket Cargo dari repositori Anda dan simpan dalam `%USERPROFILE%\.cargo\config.toml` file untuk konfigurasi tingkat sistem atau `.cargo\config.toml` untuk konfigurasi tingkat proyek:

```
[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. Untuk mengkonfigurasi Cargo dengan CodeArtifact, Anda perlu mendefinisikan CodeArtifact repositori Anda sebagai registri dalam konfigurasi Cargo dan memberikan kredensil.
   + Ganti *my\$1registry* dengan nama registri Anda.
   + Ganti *my\$1domain* dengan nama CodeArtifact domain Anda.
   + Ganti *111122223333* dengan ID AWS akun pemilik domain. Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan `--domain-owner`. Untuk informasi selengkapnya, lihat [Domain lintas akun](domain-overview.md#domain-overview-cross-account).
   + Ganti *my\$1repo* dengan nama CodeArtifact repositori Anda.

   Salin konfigurasi untuk menerbitkan dan mengunduh paket Cargo ke repositori Anda dan simpan dalam `%USERPROFILE%\.cargo\config.toml` file untuk konfigurasi tingkat sistem atau `.cargo\config.toml` untuk konfigurasi tingkat proyek.

   Disarankan agar Anda menggunakan penyedia kredensi`cargo:token`, yang menggunakan kredensi yang disimpan dalam file Anda. `~/.cargo/credentials.toml` Anda mungkin mengalami kesalahan selama `cargo publish` jika Anda menggunakan `cargo:token-from-stdout` karena klien Cargo tidak memangkas token otorisasi dengan benar selama`cargo publish`.

   ```
   [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. Untuk mempublikasikan paket Cargo ke repositori Anda dengan Windows, Anda harus menggunakan CodeArtifact `get-authorization-token` perintah dan `login` perintah Cargo untuk mengambil token otorisasi dan kredensil Anda.
   + Ganti *my\$1registry* dengan nama registri Anda seperti yang didefinisikan dalam`[registries.my_registry]`.
   + Ganti *my\$1domain* dengan nama CodeArtifact domain Anda.
   + Ganti *111122223333* dengan ID AWS akun pemilik domain. Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan `--domain-owner`. Untuk informasi selengkapnya, lihat [Domain lintas akun](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
   ```
**catatan**  
Token otorisasi yang dihasilkan berlaku selama 12 jam. Anda harus membuat yang baru jika 12 jam telah berlalu sejak token dibuat.

------

`[registries.my_registry]`Bagian dalam contoh sebelumnya mendefinisikan registri dengan `my_registry` dan menyediakan `index` dan informasi. `credential-provider`
+ `index`menentukan URL indeks untuk registri Anda, yang merupakan titik akhir CodeArtifact repositori yang diakhiri dengan. `/` `sparse+`Awalan diperlukan untuk registri yang bukan repositori Git.
**catatan**  
Untuk menggunakan endpoint dualstack, gunakan endpoint. `codeartifact.region.on.aws`
+ `credential-provider`menentukan penyedia kredensi untuk registri yang diberikan. Jika `credential-provider` tidak diatur, penyedia di `registry.global-credential-providers` akan digunakan. Dengan menyetel `credential-provider` ke`cargo:token-from-stdout`, klien Cargo akan mengambil token otorisasi baru secara otomatis saat menerbitkan atau mengunduh dari CodeArtifact repositori Anda, oleh karena itu Anda tidak perlu menyegarkan token otorisasi secara manual setiap 12 jam.

`[registry]`Bagian ini mendefinisikan registri default yang digunakan.
+ `default`menentukan nama registri yang didefinisikan dalam`[registries.my_registry]`, untuk digunakan secara default saat menerbitkan atau mengunduh dari CodeArtifact repositori Anda.

`[source.crates-io]`Bagian ini mendefinisikan registri default yang digunakan ketika salah satu tidak ditentukan.
+ `replace-with = "my_registry"`menggantikan registri publik, crates.io dengan repositori Anda CodeArtifact yang ditentukan dalam. `[registries.my_registry]` Konfigurasi ini direkomendasikan jika Anda perlu meminta paket dari koneksi eksternal seperti crates.io.

  Untuk mendapatkan semua manfaat CodeArtifact, seperti kontrol asal paket yang mencegah serangan kebingungan ketergantungan, disarankan agar Anda menggunakan penggantian sumber. Dengan penggantian sumber, CodeArtifact proxy semua permintaan ke koneksi eksternal dan menyalin paket dari koneksi eksternal ke repositori Anda. Tanpa penggantian sumber, klien Cargo akan langsung mengambil paket berdasarkan konfigurasi dalam `Cargo.toml` file Anda di proyek Anda. Jika dependensi tidak ditandai dengan`registry=my_registry`, klien Cargo akan mengambilnya langsung dari crates.io tanpa berkomunikasi dengan repositori Anda. CodeArtifact 
**catatan**  
Jika Anda mulai menggunakan penggantian sumber dan kemudian memperbarui file konfigurasi Anda agar tidak menggunakan penggantian sumber, Anda mungkin mengalami kesalahan. Skenario sebaliknya juga dapat menyebabkan kesalahan. Oleh karena itu, disarankan agar Anda menghindari mengubah konfigurasi untuk proyek Anda.

## Instalasi peti kargo
<a name="install-cargo-crates"></a>

[Gunakan prosedur berikut untuk menginstal Cargo crates dari CodeArtifact repositori atau dari crates.io.](https://crates.io/)

### Instal peti kargo dari CodeArtifact
<a name="install-cargo-crates-aca"></a>

Anda dapat menggunakan Cargo (`cargo`) CLI untuk menginstal versi tertentu dari peti Cargo dengan cepat dari repositori Anda. CodeArtifact 

**Untuk menginstal peti kargo dari CodeArtifact repositori dengan `cargo`**

1. Jika belum, ikuti langkah-langkah [Konfigurasikan dan gunakan Cargo dengan CodeArtifact](#configure-use-cargo) untuk mengonfigurasi `cargo` CLI untuk menggunakan CodeArtifact repositori Anda dengan kredensi yang tepat.

1. Gunakan perintah berikut untuk menginstal Cargo crates dari CodeArtifact:

   ```
   cargo add my_cargo_package@1.0.0
   ```

   Untuk informasi selengkapnya, lihat [penambahan kargo](https://doc.rust-lang.org/cargo/commands/cargo-add.html) di *The Cargo Book*.

## Menerbitkan peti Kargo ke CodeArtifact
<a name="publish-cargo-crates"></a>

Gunakan prosedur berikut untuk mempublikasikan peti Cargo ke CodeArtifact repositori menggunakan CLI. `cargo`

1. Jika belum, ikuti langkah-langkah [Konfigurasikan dan gunakan Cargo dengan CodeArtifact](#configure-use-cargo) untuk mengonfigurasi `cargo` CLI untuk menggunakan CodeArtifact repositori Anda dengan kredensi yang tepat.

1. Gunakan perintah berikut untuk mempublikasikan Cargo crates ke CodeArtifact repositori:

   ```
   cargo publish
   ```

   Untuk informasi lebih lanjut, lihat [publikasi kargo](https://doc.rust-lang.org/cargo/commands/cargo-publish.html) di *The Cargo Book*.

# Dukungan perintah kargo
<a name="cargo-commands"></a>

Bagian berikut merangkum perintah Cargo yang didukung oleh CodeArtifact repositori, selain perintah tertentu yang tidak didukung.

**Contents**
+ [Perintah yang didukung yang memerlukan akses registri](#supported-commands-access-the-registry)
+ [Perintah tidak didukung](#unsupported-commands)

## Perintah yang didukung yang memerlukan akses registri
<a name="supported-commands-access-the-registry"></a>

Bagian ini mencantumkan perintah Cargo di mana klien Cargo memerlukan akses ke registri yang telah dikonfigurasi dengannya. Perintah-perintah ini telah diverifikasi untuk berfungsi dengan benar ketika dipanggil terhadap CodeArtifact repositori.


****  

| Perintah | Deskripsi | 
| --- | --- | 
|   [membangun](https://doc.rust-lang.org/cargo/commands/cargo-build.html)   |  Membangun paket lokal dan dependensinya.  | 
|   [periksa](https://doc.rust-lang.org/cargo/commands/cargo-check.html)   |  Memeriksa paket lokal dan dependensinya untuk kesalahan.  | 
|   [mengambil](https://doc.rust-lang.org/cargo/commands/cargo-fetch.html)   |  Mengambil dependensi dari sebuah paket.  | 
|   [mempublikasikan](https://doc.rust-lang.org/cargo/commands/cargo-publish.html)   |  Menerbitkan paket ke registri.  | 

## Perintah tidak didukung
<a name="unsupported-commands"></a>

Perintah Cargo ini tidak didukung oleh CodeArtifact repositori.


****  

| Perintah | Deskripsi | 
| --- | --- | 
|   [pemilik](https://doc.rust-lang.org/cargo/commands/cargo-owner.html)   |  Mengelola pemilik peti di registri.  | 
|   [pencarian](https://doc.rust-lang.org/cargo/commands/cargo-search.html)   |  Mencari paket di registri.  | 