

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Che cos'è AWS CodeArtifact?
<a name="welcome"></a>

AWS CodeArtifact è un servizio di repository di artefatti gestito sicuro, altamente scalabile e che aiuta le organizzazioni a archiviare e condividere pacchetti software per lo sviluppo di applicazioni. Puoi utilizzarlo CodeArtifact con i più diffusi strumenti di compilazione e gestori di pacchetti come NuGet CLI, Maven, Gradle, npm, yarn, pip e twine. CodeArtifact aiuta a ridurre la necessità di gestire il proprio sistema di storage degli artefatti o di preoccuparsi della scalabilità della sua infrastruttura. Non ci sono limiti al numero o alla dimensione totale dei pacchetti che è possibile archiviare in un repository. CodeArtifact 

Puoi creare una connessione tra il tuo CodeArtifact repository privato e un archivio pubblico esterno, come npmjs.com o Maven Central. CodeArtifact recupererà e archivierà quindi i pacchetti su richiesta dall'archivio pubblico quando vengono richiesti da un gestore di pacchetti. Ciò semplifica l'utilizzo delle dipendenze open source utilizzate dall'applicazione e contribuisce a garantire che siano sempre disponibili per le build e lo sviluppo. Puoi anche pubblicare pacchetti privati in un repository. CodeArtifact Ciò consente di condividere componenti software proprietari tra più applicazioni e team di sviluppo dell'organizzazione.

 Per ulteriori informazioni, consulta [AWS CodeArtifact](https://aws.amazon.com/codeartifact/).

## Come CodeArtifact funziona?
<a name="codeartifact-how-does-it-work"></a>

CodeArtifact archivia i pacchetti software nei repository. I repository sono poliglotti: un singolo repository può contenere pacchetti di qualsiasi tipo supportato. Ogni CodeArtifact repository è membro di un singolo dominio. CodeArtifact Ti consigliamo di utilizzare un dominio di produzione per la tua organizzazione con uno o più repository. Ad esempio, potresti utilizzare ogni repository per un team di sviluppo diverso. I pacchetti presenti nei repository possono quindi essere scoperti e condivisi tra i team di sviluppo. 

Per aggiungere pacchetti a un repository, configura un gestore di pacchetti come npm o Maven per utilizzare l'endpoint (URL) del repository. È quindi possibile utilizzare il gestore di pacchetti per pubblicare i pacchetti nel repository. Puoi anche importare pacchetti open source in un repository configurandolo con una connessione esterna a un archivio pubblico come npmjs, Gallery NuGet , Maven Central o PyPI. Per ulteriori informazioni, consulta [Connect un CodeArtifact repository a un repository pubblico](external-connection.md). 

 È possibile rendere i pacchetti in un repository disponibili in un altro repository nello stesso dominio. Per fare ciò, configura un repository come upstream dell'altro. Tutte le versioni del pacchetto disponibili per il repository upstream sono disponibili anche per il repository downstream. Inoltre, tutti i pacchetti disponibili nell'archivio upstream tramite una connessione esterna a un archivio pubblico sono disponibili nel repository downstream. Per ulteriori informazioni, consulta [Lavorare con i repository upstream in CodeArtifact](repos-upstream.md). 

CodeArtifact richiede agli utenti di autenticarsi con il servizio per pubblicare o utilizzare le versioni dei pacchetti. È necessario autenticarsi al CodeArtifact servizio creando un token di autorizzazione utilizzando le proprie AWS credenziali. I pacchetti nei CodeArtifact repository non possono essere resi disponibili pubblicamente. Per ulteriori informazioni sull'autenticazione e l'accesso in CodeArtifact, vedere[AWS CodeArtifact autenticazione e token](tokens-authentication.md).

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

 Di seguito sono riportati alcuni concetti e termini da conoscere quando si utilizza. CodeArtifact 

**Topics**
+ [Asset](#welcome-concepts-asset)
+ [Dominio](#welcome-concepts-domain)
+ [Repository](#welcome-concepts-repository)
+ [Pacchetto](#welcome-concepts-package)
+ [Gruppo di pacchetti](#welcome-concepts-package-group)
+ [Namespace del pacchetto](#welcome-concepts-package-namespace)
+ [Versione del pacchetto](#welcome-concepts-package-version)
+ [Revisione della versione del pacchetto](#welcome-concepts-package-version-revision)
+ [Repository upstream](#welcome-concepts-upstream)

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

Una *risorsa* è un singolo file archiviato in CodeArtifact associato a una versione del pacchetto, ad esempio un file npm o `.tgz` file Maven POM e JAR.

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

*I repository vengono aggregati in un'entità di livello superiore nota come dominio.* Tutte le risorse e i metadati del pacchetto vengono archiviati nel dominio, ma vengono utilizzati tramite i repository. Una determinata risorsa del pacchetto, ad esempio un file JAR Maven, viene archiviata una volta per dominio, indipendentemente dal numero di repository in cui è presente. Tutte le risorse e i metadati di un dominio sono crittografati con la stessa AWS KMS key (chiave KMS) archiviata in (). AWS Key Management Service AWS KMS

Ogni repository è membro di un singolo dominio e non può essere spostato in un dominio diverso.

Utilizzando un dominio, puoi applicare una politica organizzativa su più repository. Con questo approccio, è possibile determinare quali account possono accedere agli archivi del dominio e quali archivi pubblici possono essere utilizzati come fonti dei pacchetti.

Sebbene un'organizzazione possa avere più domini, consigliamo un unico dominio di produzione che contenga tutti gli elementi pubblicati. In questo modo, i team possono trovare e condividere pacchetti all'interno dell'organizzazione.

## Repository
<a name="welcome-concepts-repository"></a>

Un CodeArtifact *repository* contiene una serie di [versioni del pacchetto](#welcome-concepts-package-version), ognuna delle quali è associata a un insieme di [risorse](#welcome-concepts-asset). I repository sono poliglotti: un singolo repository può contenere pacchetti di qualsiasi tipo supportato. Ogni repository espone gli endpoint per il recupero e la pubblicazione di pacchetti utilizzando strumenti come nuget CLI, npm CLI, Maven CLI (mvn) e pip. Puoi creare fino a 1.000 repository per dominio.

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

Un *pacchetto* è un insieme di software e metadati necessari per risolvere le dipendenze e installare il software. In CodeArtifact, un pacchetto è costituito da un nome di pacchetto, uno spazio dei [nomi](#welcome-concepts-package-namespace) opzionale come `@types` in`@types/node`, un set di versioni del pacchetto e metadati a livello di pacchetto come i tag npm.

AWS CodeArtifact [supporta i [formati di pacchetti Cargo](using-cargo.md), [generic](using-generic.md), [Maven](using-maven.md), [npm](using-npm.md), [NuGet](using-nuget.md)[PyPI](using-python.md), [Ruby](using-ruby.md), Swift.](using-swift.md)

## Gruppo di pacchetti
<a name="welcome-concepts-package-group"></a>

*I gruppi di pacchetti* possono essere utilizzati per applicare la configurazione a più pacchetti che corrispondono a uno schema definito utilizzando il formato del pacchetto, lo spazio dei nomi del pacchetto e il nome del pacchetto. È possibile utilizzare i gruppi di pacchetti per configurare più comodamente i controlli di origine dei pacchetti per più pacchetti. I controlli di origine dei pacchetti vengono utilizzati per bloccare o consentire l'inserimento o la pubblicazione di nuove versioni dei pacchetti, proteggendo gli utenti da azioni dannose note come attacchi di sostituzione delle dipendenze.

## Namespace del pacchetto
<a name="welcome-concepts-package-namespace"></a>

Alcuni formati di pacchetti supportano nomi di pacchetto gerarchici per organizzare i pacchetti in gruppi logici e aiutare a evitare collisioni di nomi. Ad esempio, npm supporta gli ambiti. Per ulteriori informazioni, consulta la documentazione di [npm scopes](https://docs.npmjs.com/cli/v7/using-npm/scope). Il pacchetto npm `@types/node` ha un ambito `@types` e un nome di. `node` Ci sono molti altri nomi di pacchetti nell'`@types`ambito. In CodeArtifact, l'ambito («tipi») viene definito spazio dei nomi del pacchetto e il nome («nodo») viene indicato come nome del pacchetto. Per i pacchetti Maven, lo spazio dei nomi del pacchetto corrisponde a Maven GroupID. Il pacchetto Maven `org.apache.logging.log4j:log4j` ha un groupID (spazio dei nomi del pacchetto) e un artifactID (nome del pacchetto). `org.apache.logging.log4j` `log4j` [Per i pacchetti generici, è richiesto uno spazio dei nomi.](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PublishPackageVersion.html#namespace) Alcuni formati di pacchetti come PyPI non supportano nomi gerarchici con un concetto simile a npm scope o Maven GroupID. Senza un modo per raggruppare i nomi dei pacchetti, può essere più difficile evitare le collisioni di nomi.

## Versione del pacchetto
<a name="welcome-concepts-package-version"></a>

Una *versione del pacchetto* identifica la versione specifica di un pacchetto, ad esempio`@types/node 12.6.9`. Il formato e la semantica del numero di versione variano a seconda dei diversi formati di pacchetto. [Ad esempio, le versioni del pacchetto npm devono essere conformi alla specifica Semantic Versioning.](https://semver.org/) In CodeArtifact, una versione del pacchetto è composta dall'identificatore di versione, dai metadati a livello di versione del pacchetto e da un set di risorse.

## Revisione della versione del pacchetto
<a name="welcome-concepts-package-version-revision"></a>

 Una *revisione della versione del pacchetto* è una stringa che identifica un insieme specifico di risorse e metadati per una versione del pacchetto. Ogni volta che una versione del pacchetto viene aggiornata, viene creata una nuova revisione della versione del pacchetto. Ad esempio, potresti pubblicare un archivio di distribuzione dei sorgenti (**sdist**) per una versione del pacchetto Python e successivamente aggiungere una **ruota** Python che contiene codice compilato nella stessa versione. Quando pubblicate la **ruota**, viene creata una nuova revisione della versione del pacchetto. 

## Repository upstream
<a name="welcome-concepts-upstream"></a>

Un repository è a *monte* di un altro quando è possibile accedere alle versioni dei pacchetti in esso contenute dall'endpoint del repository downstream. Questo approccio unisce efficacemente i contenuti dei due repository dal punto di vista di un client. Utilizzando CodeArtifact, è possibile creare una relazione a monte tra due repository.

## Come posso iniziare CodeArtifact?
<a name="how-do-i-get-started"></a>

 È consigliabile completare la procedura seguente: 

1.  **Scopri** di più CodeArtifact leggendo[AWS CodeArtifact concetti](codeartifact-concepts.md). 

1.  **Configura** il tuo Account AWS AWS CLI, il e un utente IAM seguendo la procedura riportata di seguito[Configurazione con AWS CodeArtifact](get-set-up-for-codeartifact.md). 

1.  ** CodeArtifact Usalo** seguendo le istruzioni riportate in[Guida introduttiva con CodeArtifact](getting-started.md). 