Uso del controllo di rilasci e versioni per i costrutti - AWS Guida prescrittiva

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

Uso del controllo di rilasci e versioni per i costrutti

Controllo della versione per AWS CDK

AWS CDK i costrutti comuni possono essere creati da più team e condivisi all'interno di un'organizzazione per essere utilizzati. In genere, gli sviluppatori rilasciano nuove funzionalità o correzioni di bug nei loro costrutti comuni AWS CDK . Questi costrutti vengono utilizzati dalle AWS CDK applicazioni o da qualsiasi altro AWS CDK costrutto esistente come parte di una dipendenza. Per questo motivo, è fondamentale che gli sviluppatori aggiornino e rilascino i costrutti con versioni semantiche adeguate in modo indipendente. AWS CDK Le applicazioni downstream o altri AWS CDK costrutti possono aggiornare la propria dipendenza per utilizzare la versione di costruzione appena rilasciata. AWS CDK

Il controllo delle versioni semantico (Semver) è un insieme di regole, o metodo, per fornire numeri software univoci al software informatico. Le versioni sono definite come segue:

  • Una versione PRINCIPALE è costituita da modifiche API incompatibili o da una modifica sostanziale.

  • Una versione SECONDARIA è costituita da funzionalità aggiunte in modo retrocompatibile.

  • Una versione PATCH consiste in correzioni di bug retrocompatibili..

Per ulteriori informazioni sul controllo delle versioni semantiche, vedete Semantic Versioning Specification () nella documentazione del controllo delle versioni semantiche. SemVer

AWS CDK Deposito e imballaggio per costrutti

Poiché AWS CDK i costrutti vengono sviluppati da team diversi e utilizzati da più AWS CDK applicazioni, è possibile utilizzare un repository separato per ogni costrutto. AWS CDK Questo può anche aiutarti ad applicare il controllo degli accessi. Ogni repository può contenere tutto il codice sorgente relativo allo stesso AWS CDK costrutto insieme a tutte le sue dipendenze. Mantenendo una singola applicazione (ovvero un AWS CDK costrutto) in un unico repository, è possibile ridurre l'ambito di impatto delle modifiche durante la distribuzione.

AWS CDK Non solo genera CloudFormation modelli per l'implementazione dell'infrastruttura, ma raggruppa anche risorse di runtime come funzioni Lambda e immagini Docker e le distribuisce insieme all'infrastruttura. Non solo è possibile combinare il codice che definisce l'infrastruttura e il codice che implementa la logica di runtime in un unico costrutto, ma è anche una best practice. Non è necessario che questi due tipi di codice risiedano in repository o addirittura in pacchetti separati.

Per utilizzare i pacchetti oltre i confini del repository, è necessario disporre di un archivio di pacchetti privato, simile a npm o Maven Central PyPi, ma interno all'organizzazione. È inoltre necessario disporre di un processo di rilascio che crei, verifichi e pubblichi il pacchetto nel repository di pacchetti privato. Puoi creare repository privati, ad esempio PyPi server, utilizzando una macchina virtuale locale (VM) o Amazon S3. Quando progetti o crei un registro di pacchetti privato, è fondamentale considerare il rischio di interruzione del servizio a causa dell'elevata disponibilità e scalabilità. Un servizio gestito senza server ospitato nel cloud per archiviare i pacchetti può ridurre notevolmente il sovraccarico di manutenzione. Ad esempio, è possibile utilizzarlo AWS CodeArtifactper ospitare pacchetti per i linguaggi di programmazione più diffusi. È inoltre possibile CodeArtifact utilizzarlo per impostare connessioni a repository esterni e replicarle all'interno. CodeArtifact

Le dipendenze dai pacchetti nel repository dei pacchetti sono gestite dal gestore di pacchetti della tua lingua (ad esempio, npm for or applications). TypeScript JavaScript Il gestore di pacchetti si assicura che le build siano ripetibili registrando le versioni specifiche di ciascun pacchetto da cui dipende l'applicazione e quindi ti permette di aggiornare tali dipendenze in modo controllato, come illustra il diagramma seguente.

Dipendenze dei pacchetti

Construct Releasing per AWS CDK

Ti consigliamo di creare la tua pipeline automatizzata per creare e rilasciare nuove AWS CDK versioni di build. Se disponi di un adeguato processo di approvazione delle richieste pull, dopo aver eseguito il commit e inserito il codice di origine nel ramo principale del repository, la pipeline può sviluppare e creare una versione release candidate. Tale versione può essere installata CodeArtifact e testata prima di rilasciare la versione pronta per la produzione. Facoltativamente, puoi testare la tua nuova AWS CDK versione di build localmente prima di unire il codice con il ramo principale. In tal modo, la pipeline esegue il rilascio della versione pronta alla produzione. Tieni presente che i costrutti e i pacchetti condivisi devono essere testati a prescindere dall'applicazione che li utilizza, come se fossero rilasciati al pubblico.

Il diagramma seguente mostra una pipeline di rilascio della versione di esempio AWS CDK .

Puoi utilizzare i seguenti comandi di esempio per creare, testare e pubblicare pacchetti npm. Innanzitutto, accedi al repository di artefatti eseguendo il comando seguente.

aws codeartifact login --tool npm --domain <Domain Name> --domain-owner $(aws sts get-caller-identity --output text --query 'Account') \ --repository <Repository Name> --region <AWS Region Name>

Quindi, completa questa procedura:

  1. Installa i pacchetti necessari in base al file package.json: npm install

  2. Crea la versione release candidate: npm version prerelease --preid rc

  3. Crea il pacchetto npm: npm run build

  4. Testa il pacchetto npm: npm run test

  5. Pubblica il pacchetto npm: npm publish