

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

# Implementa un job AWS Glue con una pipeline CodePipeline CI/CD AWS
<a name="deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline"></a>

*Bruno Klein e Luis Henrique Massao Yamada, Amazon Web Services*

## Riepilogo
<a name="deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline-summary"></a>

Questo modello dimostra come integrare AWS CodeCommit e AWS CodePipeline con AWS Glue e utilizzare AWS Lambda per avviare lavori non appena uno sviluppatore invia le modifiche a un repository AWS remoto. CodeCommit  

Quando uno sviluppatore invia una modifica a un repository di estrazione, trasformazione e caricamento (ETL) e invia le modifiche ad AWS CodeCommit, viene richiamata una nuova pipeline. La pipeline avvia una funzione Lambda che avvia un job AWS Glue con queste modifiche. Il job AWS Glue esegue il task ETL.

Questa soluzione è utile nel caso in cui aziende, sviluppatori e ingegneri dei dati vogliano avviare attività non appena le modifiche vengono apportate e trasferite negli archivi di destinazione. Aiuta a raggiungere un livello più elevato di automazione e riproducibilità, evitando quindi errori durante l'avvio e il ciclo di vita del lavoro.

## Prerequisiti e limitazioni
<a name="deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ [Git](https://git-scm.com/) installato sul computer locale
+ [Amazon Cloud Development Kit (Amazon CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) installato sul computer locale
+ [Python](https://www.python.org/) installato sulla macchina locale
+ Il codice nella sezione *Allegati*

**Limitazioni**
+ La pipeline è completata non appena il job AWS Glue viene avviato con successo. Non aspetta la conclusione del lavoro.
+ Il codice fornito nell'allegato è destinato esclusivamente a scopi dimostrativi.

## Architecture
<a name="deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline-architecture"></a>

**Stack tecnologico Target**
+ AWS Glue
+ AWS Lambda
+ AWS CodePipeline
+ AWS CodeCommit

**Architettura Target**

![\[Utilizzo di Lambda per avviare un job Glue non appena uno sviluppatore inserisce le modifiche a un repository. CodeCommit\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/99a67388-5939-4267-8324-b6ca8bfa7962/images/917c9041-b94d-4e95-a3c4-9a1115ead228.png)


 

Il processo consiste nei seguenti passaggi:

1. Lo sviluppatore o l'ingegnere dei dati apporta una modifica al codice ETL, esegue il commit e invia la modifica ad AWS. CodeCommit

1. Il push avvia la pipeline.

1. La pipeline avvia una funzione Lambda, che richiama il repository e carica il file `codecommit:GetFile` su Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3).

1. La funzione Lambda avvia un nuovo job AWS Glue con il codice ETL.

1. La funzione Lambda completa la pipeline.

**Automazione e scalabilità**

L'allegato di esempio dimostra come integrare AWS Glue con AWS CodePipeline. Fornisce un esempio di base che puoi personalizzare o estendere per uso personale. Per i dettagli, consulta la sezione *Epics*.

## Tools (Strumenti)
<a name="deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline-tools"></a>
+ [AWS CodePipeline](https://aws.amazon.com/codepipeline/): AWS CodePipeline è un servizio di [distribuzione continua](https://aws.amazon.com/devops/continuous-delivery/) completamente gestito che ti aiuta ad automatizzare le pipeline di rilascio per aggiornamenti rapidi e affidabili di applicazioni e infrastrutture.
+ [AWS CodeCommit](https://aws.amazon.com/codecommit/): AWS CodeCommit è un servizio di [controllo del codice sorgente](https://aws.amazon.com/devops/source-control/) completamente gestito che ospita repository sicuri basati su Git.
+ [AWS Lambda](https://aws.amazon.com/lambda/) — AWS Lambda è un servizio di elaborazione serverless che consente di eseguire codice senza effettuare il provisioning o la gestione di server.
+ [AWS Glue](https://aws.amazon.com/glue) — AWS Glue è un servizio di integrazione dei dati senza server che semplifica la scoperta, la preparazione e la combinazione di dati per l'analisi, l'apprendimento automatico e lo sviluppo di applicazioni.
+ [Client](https://git-scm.com/downloads) Git: Git fornisce strumenti GUI oppure puoi usare la riga di comando o uno strumento desktop per controllare gli artefatti richiesti. GitHub 
+ [AWS CDK](https://aws.amazon.com/cdk/): AWS CDK è un framework di sviluppo software open source che ti aiuta a definire le risorse delle tue applicazioni cloud utilizzando linguaggi di programmazione familiari.

## Epiche
<a name="deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline-epics"></a>

### Distribuisci il codice di esempio
<a name="deploy-the-sample-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurare . | Configura l'AWS Command Line Interface (AWS CLI) per effettuare il targeting e l'autenticazione con il tuo account AWS corrente. Per istruzioni, consulta la documentazione dell'[interfaccia a riga di comando di AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). | Sviluppatore, DevOps ingegnere | 
| Estrai i file di progetto di esempio. | Estrai i file dall'allegato per creare una cartella contenente i file di progetto di esempio. | Sviluppatore, DevOps ingegnere | 
| Implementa il codice di esempio. | Dopo aver estratto i file, esegui i seguenti comandi dalla posizione di estrazione per creare un esempio di base:<pre>cdk bootstrap<br />cdk deploy<br />git init<br />git remote add origin <code-commit-repository-url><br />git stage .<br />git commit -m "adds sample code"<br />git push --set-upstream origin main</pre>Dopo l'ultimo comando, puoi monitorare lo stato della pipeline e del job AWS Glue. | Sviluppatore, DevOps ingegnere | 
| Personalizza il codice. | Personalizzate il codice per il file etl.py in base ai vostri requisiti aziendali. È possibile rivedere il codice ETL, modificare le fasi della pipeline o estendere la soluzione. | Ingegnere dei dati | 

## Risorse correlate
<a name="deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline-resources"></a>
+ [Guida introduttiva alla CDK AWS](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)
+ [Aggiungere lavori in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-job.html)
+ [Integrazioni Source Action in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/integrations-action-type.html#integrations-source)
+ [Richiama una funzione AWS Lambda in una pipeline in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-invoke-lambda-function.html)
+ [Programmazione AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming.html)
+ [ CodeCommit GetFile API AWS](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFile.html)

## Allegati
<a name="attachments-99a67388-5939-4267-8324-b6ca8bfa7962"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/99a67388-5939-4267-8324-b6ca8bfa7962/attachments/attachment.zip)