Konfigurasikan dan gunakan Cargo dengan CodeArtifact - CodeArtifact

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

Konfigurasikan dan gunakan Cargo dengan CodeArtifact

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

Konfigurasikan Cargo dengan CodeArtifact

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 kredensialnya.

Konfigurasikan Cargo menggunakan instruksi konsol

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.

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

  3. Pilih Lihat petunjuk koneksi.

  4. Pilih sistem operasi Anda.

  5. Pilih Cargo.

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

Konfigurasikan Cargo secara manual

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_registry dengan nama registri Anda.

  • Ganti my_domain 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.

  • Ganti my_repo dengan nama repositori Anda CodeArtifact .

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_registry dengan nama registri Anda.

  • Ganti my_domain 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.

  • Ganti my_repo dengan nama repositori Anda CodeArtifact .

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_registry dengan nama registri Anda.

    • Ganti my_domain 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.

    • Ganti my_repo dengan nama repositori Anda CodeArtifact .

    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 kredensicargo: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 selamacargo 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"
  2. 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_registry dengan nama registri Anda seperti yang didefinisikan dalam. [registries.my_registry]

    • Ganti my_domain 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.

    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

  • indexmenentukan URL indeks untuk registri Anda, yang merupakan titik akhir CodeArtifact repositori yang diakhiri dengan file. / sparse+Awalan diperlukan untuk registri yang bukan repositori Git.

  • credential-providermenentukan penyedia kredensi untuk registri yang diberikan. Jika credential-provider tidak diatur, penyedia di registry.global-credential-providers akan digunakan. Dengan menyetel credential-provider kecargo: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.

  • defaultmenentukan 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 denganregistry=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

Gunakan prosedur berikut untuk menginstal Cargo crates dari CodeArtifact repositori atau dari crates.io.

Instal peti kargo dari CodeArtifact

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 untuk mengonfigurasi cargo CLI untuk menggunakan CodeArtifact repositori Anda dengan kredensi yang tepat.

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

    cargo add my_cargo_package@1.0.0

    Untuk informasi selengkapnya, lihat penambahan kargo di The Cargo Book.

Menerbitkan peti Kargo ke CodeArtifact

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 untuk mengonfigurasi cargo CLI untuk menggunakan CodeArtifact repositori Anda dengan kredensi yang tepat.

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

    cargo publish

    Untuk informasi lebih lanjut, lihat publikasi kargo di The Cargo Book.