

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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Anand Krishna Varanasi, Amazon Web Services*

## Riepilogo
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-summary"></a>

**Avviso**: non AWS CodeCommit è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. [Ulteriori informazioni](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)

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 collega i servizi AWS. CI/CD Questo modello descrive come implementare una pipeline end-to-end di flussi di lavoro nelle regioni AWS in cui CodePipeline non è ancora supportata utilizzando CI/CD servizi AWS come AWS CodeCommit CodeBuild, AWS e AWS CodeDeploy.

## Prerequisiti e limitazioni
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ CLI AWS Cloud Development Kit (AWS CDK) versione 2.28 o successiva

## Architecture
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-architecture"></a>

**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](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) 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.

1. Scarica i file CodeDeploy di configurazione.

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

1. 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\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


## Tools (Strumenti)
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-tools"></a>

**Servizi AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) è 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](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) è 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](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) automatizza le distribuzioni su Amazon EC2 o istanze locali, funzioni AWS Lambda o servizi Amazon Elastic Container Service (Amazon ECS).
+ [AWS](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 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)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) è 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](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions).

## Epiche
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-epics"></a>

### Configura la tua postazione di lavoro per sviluppatori
<a name="set-up-your-developer-workstation"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa l'interfaccia a riga di comando di AWS CDK. | Per istruzioni, consulta la [documentazione di AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites). | 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](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html). | AWS DevOps | 
| Installa npm. | Installa il gestore di pacchetti **npm**. Per ulteriori informazioni, consulta la documentazione di [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). | AWS DevOps | 

### Configura la pipeline
<a name="set-up-the-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il repository del codice. | Clona l'archivio delle [regioni GitHub CodePipeline non supportate](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) sul computer locale eseguendo il comando seguente.<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps ingegnere | 
| Imposta i parametri in cdk.json. | Apri il `cdk.json` file e fornisci i valori per i seguenti parametri:<pre>"pipeline_account":"XXXXXXXXXXXX",<br />"pipeline_region":"us-west-2",<br />"repo_name": "app-dev-repo",<br />"ec2_tag_key": "test-vm",<br />"configName" : "cbdeployconfig",<br />"deploymentGroupName": "cbdeploygroup",<br />"applicationName" : "cbdeployapplication",<br />"projectName" : "CodeBuildProject"</pre>dove:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.html) | 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 <pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | 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`<pre>cdk deploy</pre> | AWS DevOps | 

### Configura il CodeCommit repository per CodeDeploy
<a name="set-up-the-codecommit-repository-for-codedeploy"></a>


| Operazione | Description | Competenze 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.<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre>dove il nome e la regione del repository dipendono dai valori forniti nel file. `cdk.json` | AWS DevOps | 

### Testa la pipeline
<a name="test-the-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Testa la pipeline con le istruzioni di implementazione. | La `CodeDeploy_Files` cartella del repository GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-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 esempio`index.html`, `start_server.sh``stop_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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [Guida introduttiva](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (documentazione AWS CDK)
+ [Introduzione al Cloud Development Kit (CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [Workshop CDK AWS](https://cdkworkshop.com/)