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 ilBatchEnabled
parametro delconfiguration
oggetto 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 èBuildIdentifier
per gli artefatti primari eBuild Identifier
_Identificatore dell'artefatto
per gli artefatti secondari.
Ad esempio, per il nome dell'artefatto di outputbuild1
,CodeBuildcaricherà l'artefatto principale dibuild1
alla posizione dibuild1
. Per il nome dell'outputbuild1_artifact1
,CodeBuildcaricherà l'artefatto secondarioartifact1
dibuild1
alla posizione dibuild1_artifact1
e così via. Se viene specificata una sola posizione di output, il nome deve essereBuildIdentifier
solo.
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 ilBatchEnabled
parametro delconfiguration
oggetto atrue
. Per combinare gli artefatti di costruzione nella stessa posizione, imposta ilCombineArtifacts
parametro delconfiguration
oggetto 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.