

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

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

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

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

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

**AWS servizi**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)è un servizio di compilazione completamente gestito che consente di compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per l'implementazione.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)è 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 CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatizza le distribuzioni su Amazon EC2 o su istanze, AWS Lambda funzioni o servizi Amazon Elastic Container Service (Amazon ECS) in locale.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)ti 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)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)è 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](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 la AWS CDK CLI. | Per istruzioni, consulta la [AWS CDK documentazione](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><br />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 | 
|  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 <pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | 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`<pre>cdk deploy</pre> | AWS DevOps | 

### Configura il CodeCommit repository per CodeDeploy
<a name="set-up-the-acc-repository-for-acd"></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><br />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) (AWS CDK documentazione)
+ [Introduzione a AWS Cloud Development Kit (AWS CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [AWS CDK Workshop](https://cdkworkshop.com/)