AWS CodePipelineintegrazione conCodeBuilde build in batch - 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à.

AWS CodePipelineintegrazione conCodeBuilde build in batch

AWS CodeBuildora supporta le build in batch. Questo esempio dimostra come usareAWS CodePipelineper creare un progetto di compilazione che utilizzi build in batch.

È possibile utilizzare un file in formato JSON per definire la struttura della pipeline, quindi utilizzarlo con AWS CLI per creare la pipeline stessa. Per ulteriori informazioni, vedereAWS CodePipelineRiferimento alla struttura della tubazionenelAWS CodePipelineGuida per l'utente.

Costruzione in batch con singoli artefatti

Utilizza il seguente file JSON come esempio di struttura di pipeline che crea una build in batch con artefatti separati. Per abilitare le compilazioni in batchCodePipeline, imposta ilBatchEnabledparametro delconfigurationoggetto atrue.

{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "<my-input-bucket-name>", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "<my-other-input-bucket-name>", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "build1" }, { "name": "build1_artifact1" }, { "name": "build1_artifact2" }, { "name": "build2_artifact1" }, { "name": "build2_artifact2" } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<AWS-CodePipeline-internal-bucket-name>" }, "name": "my-pipeline-name", "version": 1 } }

Di seguito è riportato un esempio diCodeBuildfile buildspec che funzionerà con questa configurazione della pipeline.

version: 0.2 batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM phases: build: commands: - echo 'file' > output_file artifacts: files: - output_file secondary-artifacts: artifact1: files: - output_file artifact2: files: - output_file

I nomi degli artefatti di output specificati nel file JSON della pipeline devono corrispondere all'identificatore delle build e degli artefatti definiti nel file buildspec. La sintassi èBuildIdentifierper gli artefatti primari eBuild Identifier_Identificatore dell'artefattoper gli artefatti secondari.

Ad esempio, per il nome dell'artefatto di outputbuild1,CodeBuildcaricherà l'artefatto principale dibuild1alla posizione dibuild1. Per il nome dell'outputbuild1_artifact1,CodeBuildcaricherà l'artefatto secondarioartifact1dibuild1alla posizione dibuild1_artifact1e così via. Se viene specificata una sola posizione di output, il nome deve essereBuildIdentifiersolo.

Dopo aver creato il file JSON, puoi creare la tua pipeline. Utilizza AWS CLI per eseguire il comando create-pipeline e passare il file al parametro --cli-input-json. Per ulteriori informazioni, vedereCreare una pipeline (CLI)nelAWS CodePipelineGuida per l'utente.

Costruzione in batch con artefatti combinati

Utilizzate il seguente file JSON come esempio di struttura di pipeline che crea una build in batch con artefatti combinati. Per abilitare le compilazioni in batchCodePipeline, imposta ilBatchEnabledparametro delconfigurationoggetto atrue. Per combinare gli artefatti di costruzione nella stessa posizione, imposta ilCombineArtifactsparametro delconfigurationoggetto atrue.

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

Di seguito è riportato un esempio diCodeBuildfile buildspec che funzionerà con questa configurazione della pipeline.

version: 0.2 batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM phases: build: commands: - echo 'file' > output_file artifacts: files: - output_file

Se gli artefatti combinati sono abilitati per la compilazione in batch, è consentito un solo output. CodeBuildcombinerà gli artefatti principali di tutte le build in un unico file ZIP.

Dopo aver creato il file JSON, puoi creare la tua pipeline. Utilizza AWS CLI per eseguire il comando create-pipeline e passare il file al parametro --cli-input-json. Per ulteriori informazioni, vedereCreare una pipeline (CLI)nelAWS CodePipelineGuida per l'utente.