View a markdown version of this page

Creare una pipeline in 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à.

Creare una pipeline in Regioni AWS che non supportano AWS CodePipeline

Anand Krishna Varanasi, Amazon Web Services

Riepilogo

AWS CodePipeline è un servizio di orchestrazione di 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 archiviazione), prodotti e servizi di integrazione continua (CI) di e AWS partner AWS e prodotti open source per fornire un servizio di flusso di lavoro end-to-end per implementazioni rapide di applicazioni e infrastrutture.

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

Prerequisiti e limitazioni

Prerequisiti

  • Un attivo Account AWS

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

Architecture

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

Tools (Strumenti)

AWS servizi

  • AWS CodeBuildè un servizio di compilazione completamente gestito che consente di compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per l'implementazione.

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

  • AWS CodeDeployautomatizza le distribuzioni su Amazon EC2 o su istanze, AWS Lambda funzioni o servizi Amazon Elastic Container Service (Amazon ECS) in locale.

  • AWS CodePipelineti aiuta a modellare e configurare rapidamente le diverse fasi di un rilascio del 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 consente di definire e fornire Cloud AWS l'infrastruttura nel codice.

Codice

Il codice per questo pattern è disponibile nell'archivio GitHub CodePipeline Unsupported Regions.

Epiche

OperazioneDescriptionCompetenze richieste

Installa la AWS CDK CLI.

Per istruzioni, consulta la AWS CDK documentazione.

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
OperazioneDescriptionCompetenze 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è il Account AWS luogo in cui verrà costruita la pipeline.

  • pipeline_regionè il Regione AWS luogo in cui verrà costruito il gasdotto.

  • repo_nameè il nome del CodeCommit repository.

  • ec2_tag_keyè il tag allegato all'istanza Amazon EC2 su cui desideri 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

AWS CDK Configura la libreria di costruzione.

Nel GitHub repository clonato, utilizzate i seguenti comandi per installare la libreria di AWS CDK costruzione, creare l'applicazione e sintetizzare per generare il modello per l'applicazione. AWS CloudFormation

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

Distribuisci l' AWS CDK applicazione di esempio.

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

cdk deploy
AWS DevOps
OperazioneDescriptionCompetenze richieste

Configurazione CI/CD per l'applicazione.

Clona il CodeCommit repository specificato nel cdk.json file (questo è chiamato di app-dev-repo default) per configurare la CI/CD pipeline 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
OperazioneDescriptionCompetenze 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