Esercitazione: creazione di un progetto in AWS CodeStar con la AWS CLI - AWS CodeStar

Il 31 luglio 2024, Amazon Web Services (AWS) interromperà il supporto per la creazione e la visualizzazione AWS CodeStar di progetti. Dopo il 31 luglio 2024, non potrai più accedere alla AWS CodeStar console o creare nuovi progetti. Tuttavia, le AWS risorse create da AWS CodeStar, inclusi gli archivi di origine, le pipeline e le build, non saranno influenzate da questa modifica e continueranno a funzionare. AWS CodeStar Le connessioni e AWS CodeStar le notifiche non saranno influenzate da questa interruzione.

 

Se desideri monitorare il lavoro, sviluppare codice e creare, testare e distribuire le tue applicazioni, Amazon CodeCatalyst offre un processo introduttivo semplificato e funzionalità aggiuntive per gestire i tuoi progetti software. Scopri di più sulle funzionalità e sui prezzi di Amazon CodeCatalyst.

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

Esercitazione: creazione di un progetto in AWS CodeStar con la AWS CLI

Questo tutorial mostra come utilizzare per AWS CLI creare un AWS CodeStar progetto con codice sorgente di esempio e un modello di toolchain di esempio. AWS CodeStarfornisce l'AWSinfrastruttura e le risorse IAM specificate in un modello di AWS CloudFormation toolchain. Il progetto gestisce le risorse della toolchain per creare e distribuire il codice sorgente.

AWS CodeStar utilizza AWS CloudFormation per creare e distribuire il codice di esempio. Questo codice di esempio crea un servizio Web ospitato in Amazon API Gateway AWS Lambda e accessibile tramite Amazon API Gateway.

Prerequisiti:

  • Completa le fasi descritte in Configurazione AWS CodeStar.

  • Devi aver creato un bucket di storage Amazon S3. In questa esercitazione è possibile caricare il codice sorgente di esempio e il modello della toolchain in questa posizione.

Nota

Sull'account AWS potrebbero essere addebitati i costi correlati a questa esercitazione, inclusi i costi per i servizi AWS utilizzati da AWS CodeStar. Per ulteriori informazioni, consulta Prezzi di AWS CodeStar.

Fase 1: Scaricare e rivedere il codice sorgente di esempio

Per questa esercitazione, è disponibile un file ZIP per il download. Questo contiene un esempio di codice sorgente di un'applicazione di esempio Node.js sulla piattaforma di elaborazione Lambda. Quando il codice sorgente viene copiato sul repository, la cartella e i file appaiono come segue:

tests/ app.js buildspec.yml index.js package.json README.md template.yml

Nel codice sorgente del progetto di esempio, sono presenti i seguenti elementi del progetto:

  • tests/: impostazioni dell'unit test configurato per questo progetto CodeBuild. Questa cartella è inclusa nel codice di esempio, ma non è necessaria per creare un progetto.

  • app.js: codice sorgente dell'applicazione del progetto.

  • buildspec.yml: istruzioni per la compilazione da utilizzare durante la fase di compilazione delle risorse CodeBuild. Questo file è obbligatorio per un modello di toolchain con una risorsa CodeBuild .

  • package.json: informazioni sulle dipendenze per il codice sorgente dell'applicazione.

  • README.md: file README del progetto incluso in tutti i progetti AWS CodeStar. Questo file è incluso nel codice di esempio, ma non è necessario per creare un progetto.

  • template.yml: file del modello dell'infrastruttura o il file del modello SAM inclusi in tutti i progetti AWS CodeStar. Questo è diverso dal file template.yml della toolchain caricato più avanti in questa esercitazione. Questo file è incluso nel codice di esempio, ma non è necessario per creare un progetto.

Fase 2: Scaricare il modello di esempio della toolchain

Il modello di toolchain di esempio fornito per questo tutorial crea un repository (CodeCommit), una pipeline (CodePipeline) e un container (CodeBuild) e utilizza AWS CloudFormation per distribuire il codice sorgente su una piattaforma Lambda. Oltre a queste risorse, ci sono anche ruoli IAM che puoi utilizzare per definire le autorizzazioni del tuo ambiente di runtime, un bucket Amazon S3 che viene utilizzato per archiviare gli elementi della distribuzione e CloudWatch una regola Events CodePipeline che viene utilizzata per attivare le distribuzioni di pipeline quando invii codice al tuo repository. Per allinearsi alle best practice AWS IAM, limitare le policy dei ruoli toolchain definiti in questo esempio.

Scaricare e decomprimere il modello AWS CloudFormation di esempio in formato YAML.

Quando esegui il comando create-project successivamente nel tutorial, questo modello crea le seguenti risorse della toolchain personalizzate in AWS CloudFormation. Per ulteriori informazioni sulle risorse create in questa esercitazione, consulta i seguenti argomenti nella Guida per l'utente AWS CloudFormation:

  • La CodeCommit risorsa crea un repository. AWS::CodeCommit::RepositoryAWS CloudFormation

  • La AWS::CodeBuild::ProjectAWS CloudFormationrisorsa crea un progetto di CodeBuild compilazione.

  • La AWS::CodeDeploy::ApplicationAWS CloudFormationrisorsa crea un' CodeDeployapplicazione.

  • La AWS::CodePipeline::PipelineAWS CloudFormationrisorsa crea una CodePipeline pipeline.

  • La AWS::S3::BucketAWS CloudFormationrisorsa crea il bucket di artefatti della pipeline.

  • La AWS::S3::BucketPolicyAWS CloudFormationrisorsa crea la policy relativa al bucket di artefatti della pipeline.

  • La AWS::IAM::RoleAWS CloudFormationrisorsa crea il ruolo di lavoratore CodeBuild IAM che fornisce AWS CodeStar le autorizzazioni per gestire il progetto di compilazione. CodeBuild

  • La AWS::IAM::RoleAWS CloudFormationrisorsa crea il ruolo di lavoratore CodePipeline IAM che fornisce AWS CodeStar le autorizzazioni per creare la pipeline.

  • La AWS::IAM::RoleAWS CloudFormationrisorsa crea il ruolo di lavoratore AWS CloudFormation IAM che fornisce AWS CodeStar le autorizzazioni per creare lo stack di risorse.

  • La AWS::IAM::RoleAWS CloudFormationrisorsa crea il ruolo di lavoratore AWS CloudFormation IAM che fornisce AWS CodeStar le autorizzazioni per creare lo stack di risorse.

  • La AWS::IAM::RoleAWS CloudFormationrisorsa crea il ruolo di lavoratore AWS CloudFormation IAM che fornisce AWS CodeStar le autorizzazioni per creare lo stack di risorse.

  • La AWS::Events::RuleAWS CloudFormationrisorsa crea la regola CloudWatch Events che monitora il tuo repository alla ricerca di eventi push.

  • La AWS::IAM::RoleAWS CloudFormationrisorsa crea il ruolo CloudWatch Events IAM.

Fase 3: Testare il modello di toolchain in AWS CloudFormation

Prima di caricare il modello di toolchain, è possibile testare il modello di toolchain su AWS CloudFormation e risolvere gli eventuali errori.

  1. Salvare il modello aggiornato sul computer locale e aprire la console AWS CloudFormation. Scegliere Create Stack (Crea stack). Le nuove risorse dovrebbero essere visibili nell'elenco.

  2. Visualizza lo stack per evidenziare la presenza di eventuali errori di creazione dello stack.

  3. Dopo aver completato il test, eliminare lo stack.

    Nota

    Assicurarsi di eliminare lo stack e tutte le risorse create in AWS CloudFormation. In caso contrario, al momento della creazione di un progetto, è possibile che si verifichino errori a causa dei nomi delle risorse già in uso.

Fase 4: Caricare il codice sorgente e il modello di toolchain

Per creare un AWS CodeStar progetto, devi prima impacchettare il codice sorgente in un file.zip e inserirlo in Amazon S3. AWS CodeStarinizializza il tuo repository con questi contenuti. È possibile specificare questa posizione nel file di input quando si esegue il comando per creare il progetto nella AWS CLI.

È inoltre necessario caricare il toolchain.yml file e inserirlo in Amazon S3. È possibile specificare questa posizione nel file di input quando si esegue il comando per creare il progetto nella AWS CLI.

Per caricare il codice sorgente e il modello di toolchain
  1. L'esempio seguente mostra la struttura del file sorgente e del modello di toolchain pronti per essere compressi e caricati. Il codice di esempio include il file template.yml. Ricordare che questo file è diverso dal file toolchain.yml.

    ls src toolchain.yml ls src/ README.md app.js buildspec.yml index.js package.json template.yml tests
  2. Creare il file .zip contenente i file del codice sorgente.

    cd src; zip -r "../src.zip" *; cd ../
  3. Usa il cp comando e includi i file come parametri.

    I seguenti comandi caricano il file.zip e toolchain.yml lo caricano su Amazon S3.

    aws s3 cp src.zip s3://MyBucket/src.zip aws s3 cp toolchain.yml s3://MyBucket/toolchain.yml
Per configurare il bucket Amazon S3 per condividere il codice sorgente
  • Poiché stai archiviando il codice sorgente e la toolchain in Amazon S3, puoi utilizzare le policy dei bucket di Amazon S3 e gli ACL degli oggetti per garantire che altri utenti AWS o account IAM possano creare progetti a partire dai tuoi esempi. AWS CodeStarassicura che ogni utente che crea un progetto personalizzato abbia accesso alla toolchain e alla fonte che desidera utilizzare.

    Per consentire a chiunque di utilizzare l'esempio, eseguire i comandi seguenti:

    aws s3api put-object-acl --bucket MyBucket --key toolchain.yml --acl public-read aws s3api put-object-acl --bucket MyBucket --key src.zip --acl public-read

Fase 5: crea un progetto in AWS CodeStar

Per creare il progetto, utilizzare questa procedura.

Importante

Assicurati di configurare la AWS regione preferita inAWS CLI. Il progetto viene creato nella AWS regione configurata inAWS CLI.

  1. Eseguire il comando create-project e includere il parametro --generate-cli-skeleton:

    aws codestar create-project --generate-cli-skeleton

    Nell'output vengono visualizzati dati in formato JSON. Copiare i dati in un file, ad esempio input.json, in un percorso nel computer locale o sull'istanza in cui è installata la AWS CLI. Modificare i dati copiati come segue, quindi salvare i risultati. Questo file di input è configurato per un progetto denominato MyProject con nome di bucket myBucket.

    • Assicurarsi di indicare il parametro roleArn. Nel caso di modelli personalizzati, come il modello di esempio in questo tutorial, è necessario specificare un ruolo. Questo ruolo deve disporre delle autorizzazioni per la creazione di tutte le risorse specificate in Fase 2: Scaricare il modello di esempio della toolchain.

    • Assicurarsi di indicare il parametro ProjectId alla voce stackParameters. Il modello di esempio fornito per questa esercitazione richiede obbligatoriamente tale parametro.

    { "name": "MyProject", "id": "myproject", "description": "Sample project created with the CLI", "sourceCode": [ { "source": { "s3": { "bucketName": "MyBucket", "bucketKey": "src.zip" } }, "destination": { "codeCommit": { "name": "myproject" } } } ], "toolchain": { "source": { "s3": { "bucketName": "MyBucket", "bucketKey": "toolchain.yml" } }, "roleArn": "role_ARN", "stackParameters": { "ProjectId": "myproject" } } }
  2. Passare alla directory contenente il file appena salvato ed eseguire nuovamente il comando create-project. Includere il parametro --cli-input-json.

    aws codestar create-project --cli-input-json file://input.json
  3. Se eseguito correttamente, nell'output compaiono dei dati simili ai seguenti:

    { "id": "project-ID", "arn": "arn" }
    • L'output contiene informazioni sul nuovo progetto.:

      • Il valore id rappresenta l'ID del progetto.

      • Il valore arn rappresenta l'ARN del progetto.

  4. Per controllare lo stato della creazione del progetto, utilizzare il comando describe-project. Includere il parametro --id.

    aws codestar describe-project --id <project_ID>

    Nell'output compaiono informazioni simili alle seguenti:

    { "name": "MyProject", "id": "myproject", "arn": "arn:aws:codestar:us-east-1:account_ID:project/myproject", "description": "", "createdTimeStamp": 1539700079.472, "stackId": "arn:aws:cloudformation:us-east-1:account_ID:stack/awscodestar-myproject/stack-ID", "status": { "state": "CreateInProgress" } }
    • L'output contiene informazioni sul nuovo progetto.:

      • Il valore id rappresenta l'ID univoco del progetto.

      • Il valore state rappresenta lo stato della creazione del progetto, ad esempio CreateInProgress o CreateComplete.

Durante la creazione del progetto, è possibile aggiungere membri del team o configurare l'accesso al repository del progetto dalla riga di comando o dall'IDE preferito.