Konsep AWS CodeArtifact - CodeArtifact

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

Konsep AWS CodeArtifact

Berikut adalah beberapa konsep dan istilah yang perlu diketahui saat Anda menggunakannya CodeArtifact.

Aset

Aset adalah file individual yang disimpan dalam CodeArtifact yang terkait dengan versi paket, seperti file npm atau .tgz file Maven POM dan JAR.

Domain

Repositori dikumpulkan menjadi entitas tingkat yang lebih tinggi yang dikenal sebagai domain. Semua aset dan metadata paket disimpan dalam domain, tetapi digunakan melalui repositori. Aset paket tertentu, seperti file JAR Maven, disimpan satu kali per domain, terlepas dari berapa banyak repositori tempat file tersebut berada. Semua aset dan metadata dalam domain dienkripsi dengan (kunci KMS) yang sama yang AWS KMS key disimpan di (). AWS Key Management Service AWS KMS

Setiap repositori adalah anggota dari satu domain dan tidak dapat dipindahkan ke domain lainnya.

Dengan menggunakan domain, Anda dapat menerapkan kebijakan organisasi di beberapa repositori. Dengan pendekatan ini, Anda menentukan akun mana yang dapat mengakses repositori di domain, dan repositori publik mana yang dapat digunakan sebagai sumber paket.

Meskipun sebuah organisasi dapat memiliki beberapa domain, kami merekomendasikan satu domain produksi yang berisi semua artefak yang diterbitkan. Dengan begitu, tim dapat menemukan dan berbagi paket di seluruh organisasi Anda.

Repositori

CodeArtifact Repositori berisi satu set versi paket, yang masing-masing memetakan ke satu set aset. Repositori bersifat polyglot—repositori tunggal dapat berisi paket dari jenis apa pun yang didukung. Setiap repositori mengekspos titik akhir untuk mengambil dan menerbitkan paket menggunakan alat seperti CLI nuget, CLI npm, CLI Maven (mvn), dan pip. Anda dapat membuat hingga 1.000 repositori per domain.

Package

Paket adalah bundel perangkat lunak dan metadata yang diperlukan untuk menyelesaikan dependensi dan menginstal perangkat lunak. Dalam CodeArtifact, paket terdiri dari nama paket, namespace opsional seperti @types in@types/node, satu set versi paket, dan metadata tingkat paket seperti tag npm.

AWS CodeArtifact mendukung format paket Cargo, generik, Maven, npm,, NuGetPyPi, Ruby, Swift.

Grup Package

Package group dapat digunakan untuk menerapkan konfigurasi ke beberapa paket yang cocok dengan pola yang ditentukan menggunakan format paket, namespace paket, dan nama paket. Anda dapat menggunakan grup paket untuk lebih mudah mengonfigurasi kontrol asal paket untuk beberapa paket. Kontrol Package Origin digunakan untuk memblokir atau mengizinkan konsumsi atau penerbitan versi paket baru, yang melindungi pengguna dari tindakan jahat yang dikenal sebagai serangan substitusi ketergantungan.

Namespace paket

Beberapa format paket mendukung nama paket hierarkis untuk mengatur paket ke dalam kelompok logis dan membantu menghindari kesamaan nama. Misalnya, npm mendukung cakupan. Untuk informasi selengkapnya, lihat dokumentasi cakupan npm. Paket npm @types/node memiliki cakupan @types dan nama node. Ada banyak nama paket lainnya dalam cakupan @types. Dalam CodeArtifact, lingkup (“tipe”) disebut sebagai namespace paket dan nama (“node”) disebut sebagai nama paket. Untuk paket Maven, namespace paket sesuai dengan groupID Maven. Paket Maven org.apache.logging.log4j:log4j memiliki groupID (namespace paket) org.apache.logging.log4j dan artifactID (nama paket) log4j. Untuk paket generik, diperlukan namespace. Beberapa format paket seperti PyPI tidak mendukung nama hierarkis dengan konsep yang mirip dengan cakupan npm atau groupID Maven. Tanpa mengelompokkan nama paket, menghindari kesamaan nama bisa jadi lebih sulit.

Versi paket

Versi paket mengidentifikasi versi spesifik dari sebuah paket, seperti @types/node 12.6.9. Format nomor versi dan semantik bervariasi untuk format paket yang berbeda. Sebagai contoh, npm paket versi harus sesuai dengan spesifikasi Versioning Semantik. Dalam CodeArtifact, versi paket terdiri dari pengenal versi, metadata tingkat versi paket, dan satu set aset.

Revisi versi paket

Revisi versi paket adalah string yang mengidentifikasi satu set aset dan metadata tertentu untuk versi paket. Setiap kali versi paket diperbarui, revisi versi paket baru dibuat. Misalnya, Anda dapat memublikasikan arsip distribusi sumber (sdist) untuk versi paket Python, dan kemudian menambahkan sebuah wheel Python yang berisi kode yang dikompilasi ke versi yang sama. Ketika Anda memublikasikan wheel, revisi versi paket baru dibuat.

Repositori hulu

Satu repositori berada di hulu yang lain ketika versi paket di dalamnya dapat diakses dari titik akhir repositori repositori hilir. Pendekatan ini secara efektif menggabungkan isi dari dua repositori dari sudut pandang klien. Dengan menggunakan CodeArtifact, Anda dapat membuat hubungan hulu antara dua repositori.