Concetti AWS CodeArtifact - CodeArtifact

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

Concetti AWS CodeArtifact

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

Asset

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.

Domain

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

Un CodeArtifact repository contiene una serie di versioni del pacchetto, ognuna delle quali è associata a un insieme di risorse. 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

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 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, generic, Maven, npm, NuGetPyPI, Ruby, Swift.

Gruppo di pacchetti

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

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. Il pacchetto npm @types/node ha un ambito @types e un nome di. node Ci sono molti altri nomi di pacchetti nell'@typesambito. 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. 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

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

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

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.