Crea una pipeline nelle regioni AWS che non supportano AWS CodePipeline - Prontuario AWS

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

Crea una pipeline nelle regioni AWS che non supportano AWS CodePipeline

Creato da Anand Krishna Varanasi (AWS)

Archivio di codici: invisible-codepipeline-unsupported-regions

Ambiente: PoC o pilota

Tecnologie: infrastruttura; DevOps

Servizi AWS: AWS CodeBuild; AWS CodeCommit; AWS CodeDeploy; AWS CodePipeline

Riepilogo

AWS CodePipeline è un servizio di orchestrazione con distribuzione continua (CD) che fa parte di un set di DevOps strumenti di Amazon Web Services (AWS). Si integra con un'ampia varietà di fonti (come sistemi di controllo delle versioni e soluzioni di storage), prodotti e servizi di integrazione continua (CI) di AWS e partner AWS e prodotti open source per fornire un servizio di end-to-end flusso di lavoro per distribuzioni rapide di applicazioni e infrastrutture.

Tuttavia, CodePipeline non è supportato in tutte le regioni AWS ed è utile disporre di un orchestratore invisibile che colleghi i servizi CI/CD di AWS. Questo modello descrive come implementare una pipeline di end-to-end flussi di lavoro nelle regioni AWS in cui CodePipeline non è ancora supportata utilizzando servizi CI/CD di AWS come AWS, AWS CodeBuild e CodeCommit AWS. CodeDeploy

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo

  • CLI AWS Cloud Development Kit (AWS CDK) versione 2.28 o successiva

Architettura

Stack tecnologico Target

Il diagramma seguente mostra una pipeline creata in una regione che non supporta CodePipeline, ad esempio la regione africana (Città del Capo). Uno sviluppatore invia i file di CodeDeploy configurazione (chiamati anche script hook di deployment lifecycle) al repository Git ospitato da. CodeCommit (Vedi l'GitHub archivio fornito con questo modello). Viene avviata automaticamente una EventBridge regola Amazon. CodeBuild

I file di CodeDeploy configurazione vengono recuperati CodeCommit come parte della fase di origine della pipeline e trasferiti in. CodeBuild 

Nella fase successiva, CodeBuild esegue le seguenti attività: 

  1. Scarica il file TAR del codice sorgente dell'applicazione. Puoi configurare il nome di questo file utilizzando Parameter Store, una funzionalità di AWS Systems Manager.

  2. Scarica i file CodeDeploy di configurazione.

  3. Crea un archivio combinato di codice sorgente dell'applicazione e file di CodeDeploy configurazione specifici per il tipo di applicazione.

  4. Avvia la CodeDeploy distribuzione su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) utilizzando l'archivio combinato.

Creazione di pipeline in una regione AWS non supportata

Strumenti

Servizi AWS

  • AWS CodeBuild è un servizio di build completamente gestito che ti aiuta a compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per la distribuzione.

  • AWS CodeCommit è un servizio di controllo delle versioni che consente di archiviare e gestire archivi Git in modo privato, senza dover gestire il proprio sistema di controllo del codice sorgente.

  • AWS CodeDeploy automatizza le distribuzioni su Amazon EC2 o istanze locali, funzioni AWS Lambda o servizi Amazon Elastic Container Service (Amazon ECS).

  • AWS ti CodePipeline aiuta a modellare e configurare rapidamente le diverse fasi di un rilascio di software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.

  • AWS Cloud Development Kit (AWS CDK) è un framework di sviluppo software che aiuta a definire e fornire l'infrastruttura cloud AWS in codice.

Codice

Il codice per questo modello è disponibile nel repository GitHub CodePipeline Unsupported Regions.

Epiche

AttivitàDescrizioneCompetenze richieste

Installa l'interfaccia a riga di comando di AWS CDK.

Per istruzioni, consulta la documentazione di AWS CDK.

AWS DevOps

Installa un client Git.

Per creare i commit, puoi usare un client Git installato sul tuo computer locale e poi inviare i commit al CodeCommit repository. Per eseguire la configurazione CodeCommit con il tuo client Git, consulta la CodeCommit documentazione.

AWS DevOps

Installa npm.

Installa il gestore di pacchetti npm. Per ulteriori informazioni, consulta la documentazione di npm.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Clona il repository del codice.

Clona l'archivio delle regioni GitHub CodePipeline non supportate sul computer locale eseguendo il comando seguente.

git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions
DevOps ingegnere

Imposta i parametri in cdk.json.

Apri il cdk.json file e fornisci i valori per i seguenti parametri:

"pipeline_account":"XXXXXXXXXXXX", "pipeline_region":"us-west-2", "repo_name": "app-dev-repo", "ec2_tag_key": "test-vm", "configName" : "cbdeployconfig", "deploymentGroupName": "cbdeploygroup", "applicationName" : "cbdeployapplication", "projectName" : "CodeBuildProject"

dove:

  • pipeline_accountè l'account AWS in cui verrà creata la pipeline.

  • pipeline_regionè la regione AWS in cui verrà costruita la pipeline.

  • repo_nameè il nome del CodeCommit repository.

  • ec2_tag_keyè il tag allegato all'istanza EC2 su cui vuoi distribuire il codice.

  • configNameè il nome del CodeDeploy file di configurazione.

  • deploymentGroupNameè il nome del gruppo CodeDeploy di distribuzione.

  • applicationNameè il nome CodeDeploy dell'applicazione.

  • projectNameè il nome CodeBuild del progetto.

AWS DevOps

Configura la libreria di costruzioni AWS CDK.

Nel GitHub repository clonato, usa i seguenti comandi per installare la libreria AWS CDK construct, creare l'applicazione e sintetizzarla per generare il modello AWS per l'applicazione. CloudFormation

npm i aws-cdk-lib npm run build cdk synth
AWS DevOps

Distribuisci l'applicazione AWS CDK di esempio.

Distribuisci il codice eseguendo il seguente comando in una regione non supportata (ad esempio). af-south-1

cdk deploy
AWS DevOps
AttivitàDescrizioneCompetenze richieste

Configurare CI/CD per l'applicazione.

Clonate il CodeCommit repository specificato nel cdk.json file (chiamato di app-dev-repo default) per configurare la pipeline CI/CD per l'applicazione.

git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo

dove il nome e la regione del repository dipendono dai valori forniti nel file. cdk.json

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Testa la pipeline con le istruzioni di implementazione.

La CodeDeploy_Files cartella del repository GitHub CodePipeline Unsupported Regions include file di esempio che indicano come distribuire l'applicazione CodeDeploy . Il appspec.yml file è un file di CodeDeploy configurazione che contiene gli hook per controllare il flusso di distribuzione delle applicazioni. È possibile utilizzare i file di esempioindex.html, start_server.shstop_server.sh, e install_dependencies.sh aggiornare un sito Web ospitato su Apache. Questi sono esempi: puoi utilizzare il codice nel GitHub repository per distribuire qualsiasi tipo di applicazione. Quando i file vengono inviati al CodeCommit repository, la pipeline invisibile viene avviata automaticamente. Per i risultati di implementazione, controlla i risultati delle singole fasi nelle console e. CodeBuild CodeDeploy

AWS DevOps

Risorse correlate