View a markdown version of this page

AWS CodeBuild riferimento all'azione di compilazione e test - AWS CodePipeline

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 CodeBuild riferimento all'azione di compilazione e test

Consente di eseguire compilazioni e test come parte della pipeline. Quando si esegue un'azione di CodeBuild compilazione o di test, i comandi specificati in buildspec vengono eseguiti all'interno di un contenitore. CodeBuild Tutti gli artefatti specificati come elementi di input per un' CodeBuild azione sono disponibili all'interno del contenitore che esegue i comandi. CodeBuild può fornire un'azione di compilazione o di test. Per ulteriori informazioni, consulta la Guida per l’utente di AWS CodeBuild.

Quando si utilizza la CodePipeline procedura guidata nella console per creare un progetto di compilazione, il progetto di CodeBuild compilazione mostra che il fornitore dei sorgenti è CodePipeline. Quando si crea un progetto di compilazione nella CodeBuild console, non è possibile specificare CodePipeline come fornitore di origine, ma l'aggiunta dell'azione di compilazione alla pipeline modifica il codice sorgente nella console. CodeBuild Per ulteriori informazioni, consulta ProjectSource nella documentazione di riferimento dell’API AWS CodeBuild .

Tipo di operazione

  • Categoria: Build o Test

  • Proprietario: AWS

  • Provider: CodeBuild

  • Versione: 1

Parametri di configurazione

ProjectName

Obbligatorio: sì

ProjectNameè il nome del progetto di compilazione in. CodeBuild

PrimarySource

Obbligatorio: condizionale

Il valore del PrimarySource parametro deve essere il nome di uno degli elementi di input dell'azione. CodeBuild cerca il file buildspec ed esegue i comandi buildspec nella directory che contiene la versione decompressa di questo artefatto.

Questo parametro è obbligatorio se vengono specificati più artefatti di input per un'operazione CodeBuild . Quando è presente un solo artefatto di origine per l'operazione, l'impostazione predefinita per l'artefatto PrimarySource è tale artefatto.

BatchEnabled

Obbligatorio: no

Il valore booleano del BatchEnabled parametro consente all'azione di eseguire più build nella stessa esecuzione di build.

Quando questa opzione è abilitata, l'CombineArtifactsopzione è disponibile.

Per esempi di pipeline con build batch abilitate, vedi CodePipeline Integrazione con CodeBuild e compilazioni in batch.

BuildspecOverride

Obbligatorio: no

Una definizione buildspec o una dichiarazione di file buildspec in linea che sovrascrive l'ultima definita nel progetto di compilazione, solo per questa build. La buildspec definita nel progetto non viene modificata.

Se questo valore è impostato, può essere uno dei seguenti:

  • Una definizione buildspec in linea. Per ulteriori informazioni, vedere il riferimento alla sintassi in Buildspec syntax. https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax

  • Il percorso di un file buildspec alternativo relativo al valore della variabile di CODEBUILD_SRC_DIR ambiente integrata o al percorso di un bucket S3. Il bucket deve essere nello stesso del progetto di compilazione. Regione AWS Specificare il file buildspec utilizzando il relativo ARN (ad esempio, arn:aws:s3:::my-codebuild-sample2/buildspec.yml). Se questo valore non viene fornito o è impostato su una stringa vuota, il codice sorgente deve contenere un file buildspec nella sua directory principale. Per ulteriori informazioni sull'aggiunta di un percorso, vedere Buildspec File Name and Storage Location.

Nota

Poiché questa proprietà consente di modificare i comandi di compilazione che verranno eseguiti nel contenitore, tieni presente che un principal IAM con la possibilità di chiamare questa API e impostare questo parametro può sovrascrivere le impostazioni predefinite. Inoltre, ti consigliamo di utilizzare una posizione buildspec affidabile, ad esempio un file nel tuo repository di origine o un bucket Amazon S3.

CombineArtifacts

Obbligatorio: no

Il valore booleano del CombineArtifacts parametro combina tutti gli artefatti di compilazione di una build batch in un unico file di artifact per l'azione di compilazione.

Per utilizzare questa opzione, il parametro deve essere abilitato. BatchEnabled

EnvironmentVariables

Obbligatorio: no

Il valore di questo parametro viene utilizzato per impostare le variabili di ambiente per l'operazione CodeBuild nella pipeline. Il valore per il parametro EnvironmentVariables assume la forma di un array JSON di oggetti variabili di ambiente. Vedi il parametro di esempio in Dichiarazione di azione (CodeBuild esempio).

Ogni oggetto ha tre parti, tutte costituite da stringhe:

  • name: il nome o la chiave della variabile di ambiente.

  • value: il valore della variabile di ambiente. Quando si utilizza il SECRETS_MANAGER tipo PARAMETER_STORE or, questo valore deve essere rispettivamente il nome di un parametro già memorizzato in AWS Systems Manager Parameter Store o un segreto già memorizzato in AWS Secrets Manager.

    Nota

    Sconsigliamo vivamente l'uso di variabili di ambiente per memorizzare valori sensibili, in particolare AWS le credenziali. Quando si utilizza la CodeBuild console o la AWS CLI, le variabili di ambiente vengono visualizzate in testo semplice. Per i valori sensibili, si consiglia di utilizzare invece il tipo SECRETS_MANAGER.

  • type: (facoltativo) il tipo di variabile di ambiente. I valori validi sono PARAMETER_STORE, SECRETS_MANAGER o PLAINTEXT. Se il valore non viene specificato, viene usato il valore predefinito PLAINTEXT.

Nota

Quando inserite i valori namevalue, e type per la configurazione delle variabili di ambiente, specialmente se la variabile di ambiente contiene la sintassi della variabile di CodePipeline output, non superate il limite di 1000 caratteri per il campo del valore della configurazione. Quando questo limite viene superato, viene restituito un errore di convalida.

Per ulteriori informazioni, consulta la sezione API EnvironmentVariable Reference. AWS CodeBuild Per un esempio di CodeBuild azione con una variabile di ambiente che si risolve nel nome del GitHub ramo, vedi. Esempio: utilizzare una BranchName variabile con variabili di CodeBuild ambiente

ServiceRoleArnOverride

Obbligatorio: no

Un ruolo IAM ARN che CodeBuild utilizza come ruolo di servizio per le build attivate da questa azione, sovrascrivendo il ruolo di servizio predefinito configurato nel progetto. CodeBuild Quando è assente, il CodeBuild progetto utilizza il ruolo di servizio predefinito.

Il ruolo specificato deve avere una politica di fiducia che consenta al codebuild.amazonaws.com servizio di assumerlo. Sia l'identità utilizzata per creare o aggiornare la pipeline sia il ruolo del servizio di pipeline devono disporre dell'iam:PassRoleautorizzazione per il ruolo specificato. Per un esempio di policy, consulta Autorizzazioni relative ai ruoli di servizio: azione CodeBuild.

Come best practice di sicurezza, quando un CodeBuild progetto è condiviso su più pipeline, consigliamo di specificare un ruolo con ambito per ogni pipeline in modo da rispettare il principio del privilegio minimo. Per le pipeline che utilizzano azioni di CodeConnections origine, vedi un CodeBuild GitClone Aggiungi le GitHub autorizzazioni GitHub per le connessioni a Bitbucket, Enterprise Server o GitLab.com esempio di definizione dell'ambito delle autorizzazioni di connessione del ruolo a un repository specifico.

Nota

Il ruolo deve essere nello stesso AWS account del progetto. CodeBuild

Input artifact (Artefatti di input)

  • Numero di artefatti: 1 to 5

  • Descrizione: CodeBuild cerca il file buildspec ed esegue i comandi buildspec dalla directory dell'artefatto sorgente primario. Quando viene specificata una singola sorgente di input o quando viene specificata più di una sorgente di input per l' CodeBuild azione, il singolo artefatto o l'artefatto primario nel caso di più sorgenti di input, deve essere impostato utilizzando il parametro di configurazione dell'azione in. PrimarySource CodePipeline

    Ogni artefatto di input viene estratto nella propria directory, le cui posizioni sono archiviate in variabili di ambiente. La directory per l'artefatto di origine principale viene resa disponibile con $CODEBUILD_SRC_DIR. Le directory per tutti gli altri artefatti di input sono rese disponibili con $CODEBUILD_SRC_DIR_yourInputArtifactName.

    Nota

    L'artefatto configurato nel CodeBuild progetto diventa l'artefatto di input utilizzato dall'azione nella pipeline. CodeBuild

Artefatti di output

  • Numero di artefatti: 0 to 5

  • Descrizione: possono essere usati per rendere disponibili gli artefatti definiti nel file CodeBuild buildspec per le azioni successive nella pipeline. Quando viene definito un solo artefatto di output, questo artefatto può essere definito direttamente nella sezione del file buildspec. artifacts Quando viene specificato più di un artefatto di output, tutti gli artefatti a cui si fa riferimento devono essere definiti come artefatti secondari nel file buildspec. I nomi degli artefatti di output in devono corrispondere agli identificatori degli artefatti nel file buildspec. CodePipeline

    Nota

    L'artefatto configurato nel progetto diventa l'artefatto di input nell'azione della pipeline. CodeBuild CodePipeline

    Se il CombineArtifacts parametro è selezionato per le build batch, la posizione dell'artefatto di output contiene gli artefatti combinati di più build eseguite nella stessa esecuzione.

Variabili di output

Questa azione produrrà come variabili tutte le variabili di ambiente che sono state esportate come parte della build. Per maggiori dettagli su come esportare le variabili di ambiente, consulta la Guida alle API. EnvironmentVariable AWS CodeBuild

Per ulteriori informazioni sull'utilizzo delle variabili di CodeBuild ambiente in CodePipeline, consulta gli esempi inCodeBuild variabili di output delle azioni. Per un elenco delle variabili di ambiente che è possibile utilizzare CodeBuild, vedere Variabili di ambiente negli ambienti di compilazione nella Guida per l'AWS CodeBuild utente.

Autorizzazioni relative ai ruoli di servizio: azione CodeBuild

Per CodeBuild assistenza, aggiungi quanto segue alla tua dichiarazione sulla politica:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "codebuild:BatchGetBuilds", "codebuild:StartBuild", "codebuild:BatchGetBuildBatches", "codebuild:StartBuildBatch" ], "Resource": [ "arn:aws:codebuild:*:111122223333:project/[[ProjectName]]" ], "Effect": "Allow" } ] }

Se utilizzi il ServiceRoleArnOverride parametro, aggiungi la seguente iam:PassRole autorizzazione CodePipeline per consentire il passaggio del ruolo a CodeBuild:

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/your-codebuild-override-role", "Condition": { "StringEquals": { "iam:PassedToService": "codebuild.amazonaws.com" } } }

Dichiarazione di azione (CodeBuild esempio)

YAML
Name: Build Actions: - Name: PackageExport ActionTypeId: Category: Build Owner: AWS Provider: CodeBuild Version: '1' RunOrder: 1 Configuration: BatchEnabled: 'true' CombineArtifacts: 'true' ProjectName: my-build-project PrimarySource: MyApplicationSource1 EnvironmentVariables: '[{"name":"TEST_VARIABLE","value":"TEST_VALUE","type":"PLAINTEXT"},{"name":"ParamStoreTest","value":"PARAMETER_NAME","type":"PARAMETER_STORE"}]' ServiceRoleArnOverride: 'arn:aws:iam::111122223333:role/my-scoped-codebuild-role' OutputArtifacts: - Name: MyPipeline-BuildArtifact InputArtifacts: - Name: MyApplicationSource1 - Name: MyApplicationSource2
JSON
{ "Name": "Build", "Actions": [ { "Name": "PackageExport", "ActionTypeId": { "Category": "Build", "Owner": "AWS", "Provider": "CodeBuild", "Version": "1" }, "RunOrder": 1, "Configuration": { "BatchEnabled": "true", "CombineArtifacts": "true", "ProjectName": "my-build-project", "PrimarySource": "MyApplicationSource1", "EnvironmentVariables": "[{\"name\":\"TEST_VARIABLE\",\"value\":\"TEST_VALUE\",\"type\":\"PLAINTEXT\"},{\"name\":\"ParamStoreTest\",\"value\":\"PARAMETER_NAME\",\"type\":\"PARAMETER_STORE\"}]", "ServiceRoleArnOverride": "arn:aws:iam::111122223333:role/my-scoped-codebuild-role" }, "OutputArtifacts": [ { "Name": "MyPipeline-BuildArtifact" } ], "InputArtifacts": [ { "Name": "MyApplicationSource1" }, { "Name": "MyApplicationSource2" } ] } ] }

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.