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