Meminta paket dari koneksi eksternal - CodeArtifact

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

Meminta paket dari koneksi eksternal

Bagian berikut menjelaskan cara meminta paket dari koneksi eksternal dan CodeArtifact perilaku yang diharapkan saat meminta paket.

Mengambil paket dari koneksi eksternal

Untuk mengambil paket dari koneksi eksternal setelah Anda menambahkannya ke CodeArtifact repositori Anda seperti yang dijelaskan dalamConnect CodeArtifact repositori ke repositori publik, konfigurasikan manajer paket Anda untuk menggunakan repositori Anda dan menginstal paket.

catatan

Petunjuk berikut digunakannpm, untuk melihat konfigurasi dan petunjuk penggunaan untuk jenis paket lainnya, lihatMenggunakan CodeArtifact dengan Maven,Menggunakan CodeArtifact dengan NuGet, atauMenggunakanCodeArtifactdengan Python.

Mengambil paket dari koneksi eksternal
  1. Konfigurasikan dan autentikasi manajer paket Anda dengan CodeArtifact repositori Anda. Untuknpm, gunakanaws codeartifact login perintah berikut.

    aws codeartifact login --tool npm --domain my_domain --domain-owner 111122223333 --repository my_repo
  2. Meminta paket dari repositori publik. Untuknpm, gunakannpm install perintah berikut, ganti lodash dengan paket yang ingin Anda instal.

    npm install lodash
  3. Setelah paket disalin ke CodeArtifact repositori Anda, Anda dapat menggunakanlist-package-versions perintahlist-packages dan untuk melihatnya.

    aws codeartifact list-packages --domain my_domain --domain-owner 111122223333 --repository my_repo

    Contoh keluaran:

    { "packages": [ { "format": "npm", "package": "lodash" } ] }

    list-package-versionsPerintah mencantumkan semua versi paket yang disalin ke CodeArtifact repositori Anda.

    aws codeartifact list-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package lodash

    Contoh keluaran:

    { "defaultDisplayVersion: "1.2.5" "format": "npm", "package": "lodash", "namespace": null, "versions": [ { "version": "1.2.5", "revision": "REVISION-1-SAMPLE-6C81EFF7DA55CC", "status": "Published" } ] }

Latensi koneksi lebih masensi koneksi lebih serensi

Ketika mengambil paket dari repositori publik menggunakan koneksi eksternal, ada penundaan dari kapan paket diambil dari repositori publik dan ketika disimpan dalam CodeArtifact repositori Anda. Misalnya, Anda telah menginstal versi 1.2.5 dari paket npm “lodash” seperti yang dijelaskan dalamMengambil paket dari koneksi eksternal. Meskipun perintahnpm install lodash lodash berhasil diselesaikan, versi paket mungkin belum muncul di CodeArtifact repositori Anda. Biasanya dibutuhkan sekitar 3 menit agar versi paket muncul di repositori Anda, meskipun kadang-kadang bisa memakan waktu lebih lama.

Karena latensi ini, Anda mungkin telah berhasil mengambil versi paket, tetapi mungkin belum dapat melihat versi di repositori Anda di CodeArtifact konsol atau saat memanggil operasi ListPackages dan ListPackageVersions API. CodeArtifact Setelah asynchronously bertahan versi paket, itu akan terlihat di konsol dan melalui permintaan API.

CodeArtifact perilaku ketika repositori eksternal tidak tersedia

Terkadang, repositori eksternal akan mengalami pemadaman yang berarti CodeArtifact tidak dapat mengambil paket darinya, atau pengambilan paket jauh lebih lambat dari biasanya. Ketika ini terjadi, versi paket yang telah ditarik dari repositori eksternal (misalnya npmjs.com) dan disimpan dalam CodeArtifact repositori akan terus tersedia untuk diunduh dari repositori CodeArtifact. Namun, paket yang belum disimpan CodeArtifact mungkin tidak tersedia, bahkan ketika koneksi eksternal ke repositori tersebut telah dikonfigurasi. Misalnya, CodeArtifact repositori Anda mungkin berisi versi paket npmlodash 4.17.19 karena itulah yang telah Anda gunakan dalam aplikasi Anda sejauh ini. Ketika Anda ingin meningkatkan ke4.17.20, biasanya CodeArtifact akan mengambil versi baru dari npmjs.com dan menyimpannya di CodeArtifact repositori Anda. Namun, jika npmjs.com mengalami pemadaman, versi baru ini tidak akan tersedia. Satu-satunya solusi adalah mencoba lagi nanti setelah npmjs.com pulih.

Pemadaman repositori eksternal juga dapat memengaruhi publikasi versi paket baru untuk CodeArtifact. Dalam repositori dengan koneksi eksternal dikonfigurasi, tidak CodeArtifact akan mengizinkan publikasi versi paket yang sudah ada di repositori eksternal. Untuk informasi selengkapnya, lihat Gambaran umum paket. Namun, dalam kasus yang jarang terjadi, pemadaman repositori eksternal mungkin berarti bahwa CodeArtifact tidak memiliki up-to-date informasi tentang paket dan versi paket yang ada di repositori eksternal. Dalam hal ini, CodeArtifact mungkin mengizinkan publikasi versi paket yang biasanya ditolak.

Ketersediaan versi paket baru

Untuk versi paket di repositori publik seperti npmjs.com tersedia melalui CodeArtifact repositori, itu harus terlebih dahulu ditambahkan ke cache metadata paket Regional. Cache ini dikelola oleh CodeArtifact di setiapAWS Wilayah dan berisi metadata yang menjelaskan isi repositori publik yang didukung. Karena cache ini, ada penundaan antara kapan versi paket baru dipublikasikan ke repositori publik dan kapan tersedia dari CodeArtifact. Penundaan ini bervariasi menurut jenis paket.

Untuk paket npm, Python, dan Nuget, mungkin ada penundaan hingga 30 menit sejak versi paket baru diterbitkan ke npmjs.com, pypi.org, atau nuget.org dan kapan tersedia untuk instalasi dari CodeArtifact repositori. CodeArtifact secara otomatis menyinkronkan metadata dari dua repositori ini untuk memastikan bahwa cache diperbarui.

Untuk paket Maven, mungkin ada penundaan hingga 3 jam dari saat versi paket baru diterbitkan ke repositori publik dan ketika tersedia untuk instalasi dari CodeArtifact repositori. CodeArtifact akan memeriksa versi baru dari paket paling banyak sekali setiap 3 jam. Permintaan pertama untuk nama paket tertentu setelah masa hidup cache 3 jam telah berakhir akan menyebabkan semua versi baru dari paket yang akan diimpor ke cache Regional.

Untuk paket Maven yang umum digunakan, versi baru biasanya akan diimpor setiap 3 jam karena tingginya tingkat permintaan berarti bahwa cache akan sering diperbarui segera setelah masa cache telah berakhir. Untuk paket yang jarang digunakan, cache tidak akan memiliki versi terbaru sampai versi paket diminta dari CodeArtifact repositori. Pada permintaan pertama, hanya versi yang diimpor sebelumnya yang akan tersedia CodeArtifact, tetapi permintaan ini akan menyebabkan cache diperbarui. Pada permintaan selanjutnya, versi baru paket akan ditambahkan ke cache dan akan tersedia untuk diunduh.

Mengimpor versi paket dengan lebih dari satu aset

Kedua paket Maven dan Python dapat memiliki beberapa aset per versi paket. Hal ini membuat mengimpor paket format ini lebih kompleks daripada npm dan NuGet paket, yang hanya memiliki satu aset per versi paket. Untuk deskripsi aset mana yang diimpor untuk jenis paket ini dan bagaimana aset yang baru ditambahkan tersedia, lihatMeminta paket Python dari upstream dan koneksi eksternal danMeminta paket Maven dari upstream dan koneksi eksternal.