Creazione di una pipeline che utilizza CodeBuild (AWS CLI) - AWS CodeBuild

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

Creazione di una pipeline che utilizza CodeBuild (AWS CLI)

Procedi come segue per creare una pipeline che utilizza CodeBuild per creare il codice sorgente.

Per utilizzareAWS CLI per creare una pipeline che distribuisce il codice sorgente creato o che testa solo il codice sorgente, è possibile adattare le istruzioni in Modifica una pipeline (AWS CLI) e il riferimento alla struttura dellaCodePipeline pipeline nella Guida per l'AWS CodePipelineutente.

  1. Creare o identificare un progetto di compilazione in CodeBuild. Per ulteriori informazioni, consulta Creazione di un progetto di compilazione.

    Importante

    Il progetto di compilazione deve definire le impostazioni di artefatto di output di compilazione (anche se CodePipeline le ignora). Per ulteriori informazioni, consultare la descrizione di artifacts in Creazione di un progetto di compilazione (AWS CLI).

  2. Assicurati di averlo configuratoAWS CLI con la chiave diAWS accesso e la chiave di accessoAWS segreta che corrispondono a una delle entità IAM descritte in questo argomento. Per ulteriori informazioni, consultare l'argomento relativo a Come configurare AWS Command Line Interface nella Guida per l'utente AWS Command Line Interface.

  3. Creare un file in formato JSON che rappresenta la struttura della pipeline. Nominare il file create-pipeline.json o simile. Ad esempio, questa struttura in formato JSON crea una pipeline con un'operazione sorgente che fa riferimento a un bucket di input S3 e un'operazione di compilazione che utilizza CodeBuild:

    { "pipeline": { "roleArn": "arn:aws:iam::<account-id>:role/<AWS-CodePipeline-service-role-name>", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "<bucket-name>", "S3ObjectKey": "<source-code-file-name.zip>" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "default" } ], "configuration": { "ProjectName": "<build-project-name>" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<CodePipeline-internal-bucket-name>" }, "name": "<my-pipeline-name>", "version": 1 } }

    In questi dati in formato JSON:

    • Il valore di roleArn deve corrispondere all'ARN del ruolo del servizio CodePipeline che hai creato o identificato come parte dei prerequisiti.

    • I valori di S3Bucket e S3ObjectKey in configuration presumono che il codice sorgente venga archiviato in un bucket S3. Per le impostazioni per altri tipi di repository di codice sorgente, consultare Riferimento per la struttura della pipeline CodePipeline nella Guida per l'utente di AWS CodePipeline.

    • Il valore ProjectName è il nome del progetto di compilazione CodeBuild che hai creato in precedenza in questa procedura.

    • Il valore location è il nome del bucket S3 utilizzato da questa pipeline. Per ulteriori informazioni, consultare l'argomento relativo alla creazione di una policy per un bucket S3 da utilizzare come archivio di artefatti per CodePipeline nella Guida per l'utente di AWS CodePipeline.

    • Il valore di name è il nome di questa pipeline. Tutti i nomi di pipeline devono essere univoci per l'account.

    Anche se questi dati descrivono solo un'operazione sorgente e un'operazione di compilazione, è possibile aggiungere operazioni per attività correlate ai test, alla distribuzione dell'artefatto di output di compilazione, richiamando le funzioni AWS Lambda e altro. Per ulteriori informazioni, consultare l'argomento relativo al riferimento della struttura della pipeline AWS CodePipeline nella Guida per l'utente di AWS CodePipeline.

  4. Passare alla cartella che contiene il file JSON ed eseguire il comando CodePipeline create-pipeline, specificando il nome del file:

    aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
    Nota

    È necessario creare la pipeline in una regione AWS in cui CodeBuild è supportato. Per ulteriori informazioni, consulta AWS CodeBuild nella Riferimenti generali di Amazon Web Services.

    I dati in formato JSON appaiono nell'output e CodePipeline crea la pipeline.

  5. Per ottenere informazioni sullo stato della pipeline, eseguire il comando CodePipeline get-pipeline-state, specificando il nome della pipeline:

    aws codepipeline get-pipeline-state --name <my-pipeline-name>

    Nell'output, cercare le informazioni che confermano la buona riuscita della compilazione. Le ellissi (...) vengono utilizzate per visualizzare i dati che sono stati omessi per brevità.

    { ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }

    Se si esegue il comando troppo presto, potrebbe non essere possibile visualizzare le informazioni sull'operazione di compilazione. Potrebbe essere necessario eseguire questo comando più volte fino a quando la pipeline ha terminato l'esecuzione dell'operazione di compilazione.

  6. Dopo una compilazione riuscita, seguire le istruzioni per ottenere l'artefatto di output di compilazione. Apri la console di Amazon S3 su https://console.aws.amazon.com/s3/.

    Nota

    È anche possibile ottenere l'artefatto di output di compilazione selezionando il collegamento Build artifacts (Artefatti di compilazione) nella pagina dei dettagli di compilazione correlati nella console CodeBuild. Per accedere a questa pagina, ignorare le fasi rimanenti in questa procedura e consultare Visualizzazione dei dettagli delle compilazioni (console).

  7. Nell'elenco dei bucket, aprire il bucket utilizzato dalla pipeline. Il nome del bucket deve seguire il formato codepipeline-<region-ID>-<random-number>. È possibile ottenere il nome del bucket dal file create-pipeline.json oppure è possibile eseguire il comando CodePipeline get-pipeline per ottenere il nome del bucket.

    aws codepipeline get-pipeline --name <pipeline-name>

    Nell'output, l'oggetto pipeline contiene un oggetto artifactStore, che contiene un valore location con il nome del bucket.

  8. Aprire la cartella corrispondente al nome della pipeline (ad esempio <pipeline-name>).

  9. In questa cartella, aprire la cartella denominata default.

  10. Estrai i contenuti del file . Se sono presenti più file in questa cartella, estrarre i contenuti del file con il timestamp Last Modified (Ultima modifica) più recente. (Potrebbe essere necessario fornire un'estensione .zip al file per poterlo utilizzare nell'utilità ZIP del sistema). L'artefatto di output della compilazione si trova nei contenuti estratti del file.