

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

# Apa itu AWS CodeArtifact?
<a name="welcome"></a>

AWS CodeArtifact adalah layanan repositori artefak terkelola yang aman, sangat terukur, dan terkelola yang membantu organisasi menyimpan dan berbagi paket perangkat lunak untuk pengembangan aplikasi. Anda dapat menggunakan CodeArtifact dengan alat build populer dan manajer paket seperti NuGet CLI, Maven, Gradle, npm, yarn, pip, dan twine. CodeArtifact membantu mengurangi kebutuhan Anda untuk mengelola sistem penyimpanan artefak Anda sendiri atau khawatir tentang penskalaan infrastrukturnya. Tidak ada batasan jumlah atau ukuran total paket yang dapat Anda simpan di CodeArtifact repositori.

Anda dapat membuat koneksi antara repositori pribadi Anda dan CodeArtifact repositori publik eksternal, seperti npmjs.com atau Maven Central. CodeArtifact kemudian akan mengambil dan menyimpan paket sesuai permintaan dari repositori publik ketika diminta oleh manajer paket. Ini membuatnya lebih nyaman untuk menggunakan dependensi sumber terbuka yang digunakan oleh aplikasi Anda dan membantu memastikan dependensi tersebut selalu tersedia untuk build dan pengembangan. Anda juga dapat mempublikasikan paket pribadi ke CodeArtifact repositori. Ini membantu Anda berbagi komponen perangkat lunak berpemilik antara beberapa aplikasi dan tim pengembangan di organisasi Anda.

 Untuk informasi selengkapnya, lihat [AWS CodeArtifact](https://aws.amazon.com/codeartifact/).

## Bagaimana cara CodeArtifact kerjanya?
<a name="codeartifact-how-does-it-work"></a>

CodeArtifact menyimpan paket perangkat lunak di repositori. Repositori bersifat polyglot—repositori tunggal dapat berisi paket dari jenis apa pun yang didukung. Setiap CodeArtifact repositori adalah anggota dari satu CodeArtifact domain. Sebaiknya gunakan satu domain produksi untuk organisasi Anda dengan satu atau beberapa repositori. Misalnya, Anda dapat menggunakan setiap repositori untuk tim pengembangan yang berbeda. Paket di repositori Anda kemudian dapat ditemukan dan dibagikan di seluruh tim pengembangan Anda. 

Untuk menambahkan paket ke repositori, konfigurasikan manajer paket seperti npm atau Maven untuk menggunakan titik akhir repositori (URL). Anda kemudian dapat menggunakan manajer paket untuk mempublikasikan paket ke repositori. Anda juga dapat mengimpor paket sumber terbuka ke dalam repositori dengan mengonfigurasinya dengan koneksi eksternal ke repositori publik seperti npmjs, Galeri, Maven Central, atau PyPI. NuGet Untuk informasi selengkapnya, lihat [Connect CodeArtifact repositori ke repositori publik](external-connection.md). 

 Anda dapat membuat paket dalam satu repositori tersedia untuk repositori lain di domain yang sama. Untuk melakukan ini, konfigurasikan satu repositori sebagai hulu untuk yang lain. Semua versi paket yang tersedia untuk repositori hulu juga tersedia untuk repositori hilir. Selain itu, semua paket yang tersedia untuk repositori hulu melalui koneksi eksternal ke repositori publik tersedia untuk repositori hilir. Untuk informasi selengkapnya, lihat [Bekerja dengan repositori upstream di CodeArtifact](repos-upstream.md). 

CodeArtifact mengharuskan pengguna untuk mengautentikasi dengan layanan untuk menerbitkan atau menggunakan versi paket. Anda harus mengautentikasi ke CodeArtifact layanan dengan membuat token otorisasi menggunakan kredensi Anda AWS . Paket dalam CodeArtifact repositori tidak dapat dibuat tersedia untuk umum. Untuk informasi selengkapnya tentang otentikasi dan akses di CodeArtifact, lihat[AWS CodeArtifact otentikasi dan token](tokens-authentication.md).

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

## Bagaimana saya memulai CodeArtifact?
<a name="how-do-i-get-started"></a>

 Kami menyarankan agar Anda menyelesaikan langkah berikut: 

1.  **Pelajari** lebih lanjut CodeArtifact dengan membaca[AWS CodeArtifact konsep](codeartifact-concepts.md). 

1.  **Siapkan** Anda Akun AWS, pengguna AWS CLI, dan IAM dengan mengikuti langkah-langkah di[Menyiapkan dengan AWS CodeArtifact](get-set-up-for-codeartifact.md). 

1.  **Gunakan** CodeArtifact dengan mengikuti instruksi di[Memulai dengan CodeArtifact](getting-started.md). 