Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Crea automaticamente pipeline CI dinamiche per progetti Java e Python - 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à.

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 automaticamente pipeline CI dinamiche per progetti Java e Python

Creato da Aromal Raj Jayarajan (AWS), Amarnath Reddy (AWS), MAHESH RAGHUNANDANAN (AWS) e Vijesh Vijayakumaran Nair (AWS)

Riepilogo

AWS CodeCommit Avviso: non è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

Questo modello mostra come creare automaticamente pipeline dinamiche di integrazione continua (CI) per progetti Java e Python utilizzando gli strumenti di sviluppo AWS.

Con la diversificazione degli stack tecnologici e l'aumento delle attività di sviluppo, può diventare difficile creare e mantenere pipeline CI coerenti all'interno di un'organizzazione. Automatizzando il processo in AWS Step Functions, puoi assicurarti che le tue pipeline CI siano coerenti nel loro utilizzo e approccio.

Per automatizzare la creazione di pipeline CI dinamiche, questo modello utilizza i seguenti input variabili:

  • Linguaggio di programmazione (solo Java o Python)

  • Nome della pipeline

  • Fasi della pipeline richieste

Nota

Step Functions orchestra la creazione di pipeline utilizzando più servizi AWS. Per ulteriori informazioni sui servizi AWS utilizzati in questa soluzione, consulta la sezione Strumenti di questo modello.

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo

  • Un bucket Amazon S3 nella stessa regione AWS in cui viene distribuita questa soluzione

  • Un principal AWS Identity and Access Management (IAM) con CloudFormation le autorizzazioni AWS necessarie per creare le risorse necessarie per questa soluzione

Limitazioni

  • Questo modello supporta solo progetti Java e Python.

  • I ruoli IAM forniti in questo modello seguono il principio del privilegio minimo. Le autorizzazioni dei ruoli IAM devono essere aggiornate in base alle risorse specifiche che la pipeline CI deve creare.

Architettura

Stack tecnologico Target

  • AWS CloudFormation

  • AWS CodeBuild

  • AWS CodeCommit

  • AWS CodePipeline

  • IAM

  • Amazon Simple Storage Service (Amazon S3)

  • AWS Systems Manager

  • AWS Step Functions

  • AWS Lambda

  • Amazon DynamoDB

Architettura Target

Il diagramma seguente mostra un esempio di flusso di lavoro per la creazione automatica di pipeline CI dinamiche per progetti Java e Python utilizzando gli strumenti di sviluppo AWS.

Flusso di lavoro per creare automaticamente pipeline CI dinamiche per progetti Java e Python utilizzando gli strumenti AWS.

Il diagramma mostra il flusso di lavoro seguente:

  1. Un utente AWS fornisce i parametri di input per la creazione di pipeline CI in formato JSON. Questo input avvia un flusso di lavoro Step Functions (macchina a stati) che crea una pipeline CI utilizzando gli strumenti di sviluppo AWS.

  2. Una funzione Lambda legge una cartella denominata input-reference, archiviata in un bucket Amazon S3, e quindi genera un file buildspec.yml. Questo file generato definisce le fasi della pipeline CI e viene archiviato nello stesso bucket Amazon S3 che memorizza i riferimenti ai parametri.

  3. Step Functions controlla le dipendenze del flusso di lavoro di creazione della pipeline CI per eventuali modifiche e aggiorna lo stack di dipendenze secondo necessità.

  4. Step Functions crea le risorse della pipeline CI in uno CloudFormation stack, tra cui un CodeCommit repository, un CodeBuild progetto e una pipeline. CodePipeline

  5. Lo CloudFormation stack copia il codice sorgente di esempio per lo stack tecnologico selezionato (Java o Python) e il file buildspec.yml nel repository. CodeCommit

  6. I dettagli del runtime della pipeline CI sono archiviati in una tabella DynamoDB.

Automazione e scalabilità

  • Questo modello è destinato all'uso in un solo ambiente di sviluppo. Le modifiche alla configurazione sono necessarie per l'utilizzo in più ambienti di sviluppo.

  • Per aggiungere il supporto per più di uno CloudFormation stack, puoi creare CloudFormation modelli aggiuntivi. Per ulteriori informazioni, consulta Getting started with AWS CloudFormation nella CloudFormation documentazione.

Strumenti

Strumenti

  • AWS Step Functions è un servizio di orchestrazione serverless che ti aiuta a combinare le funzioni di AWS Lambda e altri servizi AWS per creare applicazioni aziendali critiche.

  • AWS Lambda è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi.

  • 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 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 Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.

  • AWS Key Management Service (AWS KMS) ti aiuta a creare e controllare chiavi crittografiche per proteggere i tuoi dati.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

  • AWS ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.

  • Amazon DynamoDB è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.

  • AWS Systems Manager Parameter Store fornisce uno storage sicuro e gerarchico per la gestione dei dati di configurazione e la gestione dei segreti.

Codice

Il codice per questo pattern è disponibile nel repository. GitHub automated-ci-pipeline-creation Il repository contiene i CloudFormation modelli necessari per creare l'architettura di destinazione delineata in questo modello.

Best practice

Epiche

AttivitàDescrizioneCompetenze richieste

Creare un bucket Amazon S3.

Crea un bucket Amazon S3 (o usa un bucket esistente) per archiviare i CloudFormation modelli, il codice sorgente e i file di input richiesti per la soluzione.

Per ulteriori informazioni, consulta Fase 1: Crea il tuo primo bucket S3 nella documentazione di Amazon S3.

Nota

Il bucket Amazon S3 deve trovarsi nella stessa regione AWS in cui stai distribuendo la soluzione.

AWS DevOps

Clona il GitHub repository.

Clona il GitHub automated-ci-pipeline-creationrepository eseguendo il seguente comando in una finestra di terminale:

git clone https://github.com/aws-samples/automated-ci-pipeline-creation.git

Per ulteriori informazioni, consulta Clonazione di un repository nella documentazione. GitHub

AWS DevOps

Carica la cartella Solution Templates dal GitHub repository clonato nel tuo bucket Amazon S3.

Copia i contenuti dalla cartella Solution-Templates clonata e caricali nel bucket Amazon S3 che hai creato.

Per ulteriori informazioni, consulta Caricamento di oggetti nella documentazione di Amazon S3.

Nota

Assicurati di caricare solo il contenuto della cartella Solution-Templates. Puoi caricare i file solo a livello root del bucket Amazon S3.

AWS DevOps

Configura i prerequisiti

AttivitàDescrizioneCompetenze richieste

Creare un bucket Amazon S3.

Crea un bucket Amazon S3 (o usa un bucket esistente) per archiviare i CloudFormation modelli, il codice sorgente e i file di input richiesti per la soluzione.

Per ulteriori informazioni, consulta Fase 1: Crea il tuo primo bucket S3 nella documentazione di Amazon S3.

Nota

Il bucket Amazon S3 deve trovarsi nella stessa regione AWS in cui stai distribuendo la soluzione.

AWS DevOps

Clona il GitHub repository.

Clona il GitHub automated-ci-pipeline-creationrepository eseguendo il seguente comando in una finestra di terminale:

git clone https://github.com/aws-samples/automated-ci-pipeline-creation.git

Per ulteriori informazioni, consulta Clonazione di un repository nella documentazione. GitHub

AWS DevOps

Carica la cartella Solution Templates dal GitHub repository clonato nel tuo bucket Amazon S3.

Copia i contenuti dalla cartella Solution-Templates clonata e caricali nel bucket Amazon S3 che hai creato.

Per ulteriori informazioni, consulta Caricamento di oggetti nella documentazione di Amazon S3.

Nota

Assicurati di caricare solo il contenuto della cartella Solution-Templates. Puoi caricare i file solo a livello root del bucket Amazon S3.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Crea uno CloudFormation stack per distribuire la soluzione utilizzando il file template.yml nel repository clonato. GitHub

  1. Accedi alla Console di gestione AWS e apri la CloudFormation console AWS.

  2. Seleziona Crea stack. Viene visualizzato un elenco a discesa.

  3. Nell'elenco a discesa, seleziona Con nuove risorse (standard). Viene visualizzata la pagina Crea stack.

  4. Nella sezione Specificare il modello, seleziona la casella di controllo accanto a Carica un file modello.

  5. Selezionare Choose file (Scegli file). Quindi, accedi alla cartella principale del GitHub repository clonato e seleziona il file template.yml. Scegliere quindi Open (Apri).

  6. Scegli Next (Successivo). Viene visualizzata la pagina Specificare i dettagli dello stack.

  7. Nella sezione Parametri, specificare i seguenti parametri:

    • Per S3 TemplateBucketName, inserisci il nome del bucket Amazon S3 creato in precedenza, che contiene il codice sorgente e i riferimenti per questa soluzione. Assicurati che il parametro del nome del bucket sia in minuscolo.

    • Per Dynamo DBTable, inserisci un nome per la tabella DynamoDB creata dallo stack. CloudFormation

    • Per StateMachineName, inserisci un nome per la macchina a stati Step Functions creata dallo CloudFormation stack.

  8. Scegli Next (Successivo). Viene visualizzata la pagina Configura le opzioni dello stack.

  9. Nella pagina Configure stack options (Configura opzioni pila), scegliere Next (Successivo). Non modificate nessuno dei valori predefiniti. Viene visualizzata la pagina Revisione.

  10. Rivedi le impostazioni di creazione dello stack. Quindi, scegli Crea stack per avviare lo stack.

Nota

Durante la creazione, lo stack viene elencato nella pagina Stacks con lo stato CREATE_IN_PROGRESS. Assicurati di attendere che lo stato dello stack passi a CREATE_COMPLETE prima di completare i passaggi rimanenti di questo schema.

Amministratore AWS, AWS DevOps

Implementa la soluzione

AttivitàDescrizioneCompetenze richieste

Crea uno CloudFormation stack per distribuire la soluzione utilizzando il file template.yml nel repository clonato. GitHub

  1. Accedi alla Console di gestione AWS e apri la CloudFormation console AWS.

  2. Seleziona Crea stack. Viene visualizzato un elenco a discesa.

  3. Nell'elenco a discesa, seleziona Con nuove risorse (standard). Viene visualizzata la pagina Crea stack.

  4. Nella sezione Specificare il modello, seleziona la casella di controllo accanto a Carica un file modello.

  5. Selezionare Choose file (Scegli file). Quindi, accedi alla cartella principale del GitHub repository clonato e seleziona il file template.yml. Scegliere quindi Open (Apri).

  6. Scegli Next (Successivo). Viene visualizzata la pagina Specificare i dettagli dello stack.

  7. Nella sezione Parametri, specificare i seguenti parametri:

    • Per S3 TemplateBucketName, inserisci il nome del bucket Amazon S3 creato in precedenza, che contiene il codice sorgente e i riferimenti per questa soluzione. Assicurati che il parametro del nome del bucket sia in minuscolo.

    • Per Dynamo DBTable, inserisci un nome per la tabella DynamoDB creata dallo stack. CloudFormation

    • Per StateMachineName, inserisci un nome per la macchina a stati Step Functions creata dallo CloudFormation stack.

  8. Scegli Next (Successivo). Viene visualizzata la pagina Configura le opzioni dello stack.

  9. Nella pagina Configure stack options (Configura opzioni pila), scegliere Next (Successivo). Non modificate nessuno dei valori predefiniti. Viene visualizzata la pagina Revisione.

  10. Rivedi le impostazioni di creazione dello stack. Quindi, scegli Crea stack per avviare lo stack.

Nota

Durante la creazione, lo stack viene elencato nella pagina Stacks con lo stato CREATE_IN_PROGRESS. Assicurati di attendere che lo stato dello stack passi a CREATE_COMPLETE prima di completare i passaggi rimanenti di questo schema.

Amministratore AWS, AWS DevOps
AttivitàDescrizioneCompetenze richieste

Esegui la funzione step che hai creato.

  1. Accedi alla Console di gestione AWS e quindi apri la console Step Functions.

  2. Apri la funzione Step che hai creato.

  3. Selezionare Start execution (Avvia esecuzione). Quindi, inserisci i valori di input per il flusso di lavoro in formato JSON (vedi gli input di esempio seguenti).

  4. Selezionare Start execution (Avvia esecuzione).

Formattazione JSON

{ "details": { "tech_stack": "Name of the Tech Stack (python/java)", "project_name": "Name of the Project that you want to create with", "pre_build": "Choose the step if it required in the buildspec.yml file i.e., yes/no", "build": "Choose the step if it required in the buildspec.yml file i.e., yes/no", "post_build": "Choose the step if it required in the buildspec.yml file i.e., yes/no", "reports": "Choose the step if it required in the buildspec.yml file i.e., yes/no", } }

Esempio di input Java JSON

{ "details": { "tech_stack": "java", "project_name": "pipeline-java-pjt", "pre_build": "yes", "build": "yes", "post_build": "yes", "reports": "yes" } }

Esempio di input JSON in Python

{ "details": { "tech_stack": "python", "project_name": "pipeline-python-pjt", "pre_build": "yes", "build": "yes", "post_build": "yes", "reports": "yes" } }
Amministratore AWS, AWS DevOps

Conferma che il CodeCommit repository per la pipeline CI è stato creato.

  1. Accedi alla Console di gestione AWS e quindi apri la CodeCommit console.

  2. Nella pagina Repositories, verifica che il nome del CodeCommit repository che hai creato compaia nell'elenco dei repository. Al nome del repository viene aggiunto quanto segue: -Repo pipeline-java-pjt

  3. Apri il CodeCommit repository e verifica che il codice sorgente di esempio insieme ai file buildspec.yml vengano inviati al ramo principale.

AWS DevOps

Controlla le risorse CodeBuild del progetto.

  1. Accedi alla Console di gestione AWS e apri la CodeBuild console.

  2. Nella pagina Crea progetti, verifica che il nome del CodeBuild progetto che hai creato compaia nell'elenco dei progetti. Al nome del progetto viene aggiunto quanto segue: pipeline-java-pjt -Build

  3. Seleziona il nome del tuo CodeBuild progetto per aprirlo. Quindi, rivedi e convalida le seguenti configurazioni:

    • Configurazione del progetto

    • Origine

    • Ambiente

    • Specifiche di costruzione

    • Configurazione Batch

    • Artefatti

AWS DevOps

Convalida le CodePipeline fasi.

  1. Accedi alla Console di gestione AWS e apri la CodePipeline console.

  2. Nella pagina Pipelines, verifica che il nome della pipeline che hai creato compaia nell'elenco delle pipeline. Al nome della pipeline viene aggiunto quanto segue: -Pipeline pipeline-java-pjt

  3. Seleziona il nome della pipeline per aprirla. Quindi, esamina e convalida ogni fase della pipeline, inclusi Commit e Deploy.

AWS DevOps

Verifica che la pipeline CI sia stata eseguita correttamente.

  1. Nella CodePipeline console, nella pagina Pipelines, seleziona il nome della pipeline per visualizzarne lo stato.

  2. Verifica che ogni fase della pipeline abbia lo stato Operato con successo.

AWS DevOps

Eseguire il test della configurazione

AttivitàDescrizioneCompetenze richieste

Esegui la funzione step che hai creato.

  1. Accedi alla Console di gestione AWS e quindi apri la console Step Functions.

  2. Apri la funzione Step che hai creato.

  3. Selezionare Start execution (Avvia esecuzione). Quindi, inserisci i valori di input per il flusso di lavoro in formato JSON (vedi gli input di esempio seguenti).

  4. Selezionare Start execution (Avvia esecuzione).

Formattazione JSON

{ "details": { "tech_stack": "Name of the Tech Stack (python/java)", "project_name": "Name of the Project that you want to create with", "pre_build": "Choose the step if it required in the buildspec.yml file i.e., yes/no", "build": "Choose the step if it required in the buildspec.yml file i.e., yes/no", "post_build": "Choose the step if it required in the buildspec.yml file i.e., yes/no", "reports": "Choose the step if it required in the buildspec.yml file i.e., yes/no", } }

Esempio di input Java JSON

{ "details": { "tech_stack": "java", "project_name": "pipeline-java-pjt", "pre_build": "yes", "build": "yes", "post_build": "yes", "reports": "yes" } }

Esempio di input JSON in Python

{ "details": { "tech_stack": "python", "project_name": "pipeline-python-pjt", "pre_build": "yes", "build": "yes", "post_build": "yes", "reports": "yes" } }
Amministratore AWS, AWS DevOps

Conferma che il CodeCommit repository per la pipeline CI è stato creato.

  1. Accedi alla Console di gestione AWS e quindi apri la CodeCommit console.

  2. Nella pagina Repositories, verifica che il nome del CodeCommit repository che hai creato compaia nell'elenco dei repository. Al nome del repository viene aggiunto quanto segue: -Repo pipeline-java-pjt

  3. Apri il CodeCommit repository e verifica che il codice sorgente di esempio insieme ai file buildspec.yml vengano inviati al ramo principale.

AWS DevOps

Controlla le risorse CodeBuild del progetto.

  1. Accedi alla Console di gestione AWS e apri la CodeBuild console.

  2. Nella pagina Crea progetti, verifica che il nome del CodeBuild progetto che hai creato compaia nell'elenco dei progetti. Al nome del progetto viene aggiunto quanto segue: pipeline-java-pjt -Build

  3. Seleziona il nome del tuo CodeBuild progetto per aprirlo. Quindi, rivedi e convalida le seguenti configurazioni:

    • Configurazione del progetto

    • Origine

    • Ambiente

    • Specifiche di costruzione

    • Configurazione Batch

    • Artefatti

AWS DevOps

Convalida le CodePipeline fasi.

  1. Accedi alla Console di gestione AWS e apri la CodePipeline console.

  2. Nella pagina Pipelines, verifica che il nome della pipeline che hai creato compaia nell'elenco delle pipeline. Al nome della pipeline viene aggiunto quanto segue: -Pipeline pipeline-java-pjt

  3. Seleziona il nome della pipeline per aprirla. Quindi, esamina e convalida ogni fase della pipeline, inclusi Commit e Deploy.

AWS DevOps

Verifica che la pipeline CI sia stata eseguita correttamente.

  1. Nella CodePipeline console, nella pagina Pipelines, seleziona il nome della pipeline per visualizzarne lo stato.

  2. Verifica che ogni fase della pipeline abbia lo stato Operato con successo.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Elimina la pila di risorse inclusa. CloudFormation

Elimina lo stack di risorse della pipeline CI in. CloudFormation

Per ulteriori informazioni, consulta Eliminazione di uno stack sulla CloudFormation console AWS nella CloudFormation documentazione.

Nota

Assicurati di eliminare lo stack denominato -stack. <project_name>

AWS DevOps

Elimina le dipendenze della pipeline CI in Amazon S3 e. CloudFormation

  1. Svuota il bucket Amazon S3 denominato. DeploymentArtifactBucket Per ulteriori informazioni, consulta Svuotare un bucket nella documentazione di Amazon S3.

  2. Elimina lo stack di dipendenze della pipeline CI in. CloudFormation Per ulteriori informazioni, consulta Eliminazione di uno stack sulla CloudFormation console AWS nella CloudFormation documentazione.

Nota

Assicurati di eliminare lo stack denominato. pipeline-creation-dependencies-stack

AWS DevOps

Elimina il bucket di modelli Amazon S3.

Elimina il bucket Amazon s3 che hai creato nella sezione Configura i prerequisiti di questo modello, che memorizza i modelli per questa soluzione.

Per ulteriori informazioni, consulta Eliminazione di un bucket nella documentazione di Amazon S3.

AWS DevOps

Pulizia delle risorse

AttivitàDescrizioneCompetenze richieste

Elimina la pila di risorse inclusa. CloudFormation

Elimina lo stack di risorse della pipeline CI in. CloudFormation

Per ulteriori informazioni, consulta Eliminazione di uno stack sulla CloudFormation console AWS nella CloudFormation documentazione.

Nota

Assicurati di eliminare lo stack denominato -stack. <project_name>

AWS DevOps

Elimina le dipendenze della pipeline CI in Amazon S3 e. CloudFormation

  1. Svuota il bucket Amazon S3 denominato. DeploymentArtifactBucket Per ulteriori informazioni, consulta Svuotare un bucket nella documentazione di Amazon S3.

  2. Elimina lo stack di dipendenze della pipeline CI in. CloudFormation Per ulteriori informazioni, consulta Eliminazione di uno stack sulla CloudFormation console AWS nella CloudFormation documentazione.

Nota

Assicurati di eliminare lo stack denominato. pipeline-creation-dependencies-stack

AWS DevOps

Elimina il bucket di modelli Amazon S3.

Elimina il bucket Amazon s3 che hai creato nella sezione Configura i prerequisiti di questo modello, che memorizza i modelli per questa soluzione.

Per ulteriori informazioni, consulta Eliminazione di un bucket nella documentazione di Amazon S3.

AWS DevOps

Risorse correlate

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.