

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

# AWS CodeArtifact konsep
<a name="codeartifact-concepts"></a>

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

**Topics**
+ [

## Aset
](#welcome-concepts-asset)
+ [

## Domain
](#welcome-concepts-domain)
+ [

## Repositori
](#welcome-concepts-repository)
+ [

## Paket
](#welcome-concepts-package)
+ [

## Grup Package
](#welcome-concepts-package-group)
+ [

## Namespace paket
](#welcome-concepts-package-namespace)
+ [

## Versi Package
](#welcome-concepts-package-version)
+ [

## Revisi versi paket
](#welcome-concepts-package-version-revision)
+ [

## Repositori hulu
](#welcome-concepts-upstream)

## Aset
<a name="welcome-concepts-asset"></a>

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

## Domain
<a name="welcome-concepts-domain"></a>

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
<a name="welcome-concepts-repository"></a>

 CodeArtifact *Repositori* [berisi satu set [versi paket](#welcome-concepts-package-version), yang masing-masing memetakan ke satu set aset.](#welcome-concepts-asset) 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.

## Paket
<a name="welcome-concepts-package"></a>

*Paket* adalah bundel perangkat lunak dan metadata yang diperlukan untuk menyelesaikan dependensi dan menginstal perangkat lunak. Dalam CodeArtifact, paket terdiri dari nama paket, [namespace](#welcome-concepts-package-namespace) opsional seperti `@types` in`@types/node`, satu set versi paket, dan metadata tingkat paket seperti tag npm.

AWS CodeArtifact [[mendukung format [paket Cargo](using-cargo.md), [generik](using-generic.md), [Maven](using-maven.md), [npm](using-npm.md),, [NuGet](using-nuget.md)[PyPi, Ruby, Swift](using-python.md).](using-swift.md)](using-ruby.md)

## Grup Package
<a name="welcome-concepts-package-group"></a>

*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
<a name="welcome-concepts-package-namespace"></a>

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](https://docs.npmjs.com/cli/v7/using-npm/scope). 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](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PublishPackageVersion.html#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 Package
<a name="welcome-concepts-package-version"></a>

*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](https://semver.org/). Dalam CodeArtifact, versi paket terdiri dari pengenal versi, metadata tingkat versi paket, dan satu set aset.

## Revisi versi paket
<a name="welcome-concepts-package-version-revision"></a>

 *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
<a name="welcome-concepts-upstream"></a>

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.