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à.
Crea un progetto di compilazione in AWS CodeBuild
Puoi utilizzare la AWS CodeBuild console o gli AWS CLI AWS SDK per creare un progetto di compilazione.
Argomenti
Prerequisiti
Prima di creare un progetto di compilazione, rispondi alle domande inPianifica una compilazione.
Creare un progetto di compilazione (console)
Apri la AWS CodeBuild console all'indirizzo https://console.aws.amazon.com/codesuite/codebuild/home
Se viene visualizzata una pagina di CodeBuild informazioni, scegli Crea progetto di compilazione. Altrimenti, nel riquadro di navigazione, espandi Build, scegli Build projects, quindi scegli Create build project.
Scegliere Create build project (Crea progetto di compilazione).
Compila le seguenti sezioni. Una volta completato, scegli Crea progetto di costruzione nella parte inferiore della pagina.
Configurazione del progetto
- Project name (Nome progetto)
-
Inserisci un nome per questo progetto di compilazione. I nomi dei progetti di compilazione devono essere univoci per ogni AWS account.
- Descrizione
-
Inserisci una descrizione opzionale del progetto di compilazione per aiutare gli altri utenti a capire a cosa serve questo progetto.
- Badge Build
-
(Facoltativo) Seleziona Abilita il badge di compilazione per rendere visibile e incorporabile lo stato di compilazione del progetto. Per ulteriori informazioni, consulta Creazione di esempi di badge.
Nota
Il badge di compilazione non si applica se il fornitore di origine è Amazon S3.
- Abilita il limite di compilazione simultanea
-
(Facoltativo) Se desideri limitare il numero di build simultanee per questo progetto, esegui i seguenti passaggi:
-
Seleziona Limita il numero di build simultanee che questo progetto può avviare.
-
In Limite di build simultanee, inserisci il numero massimo di build simultanee consentite per questo progetto. Questo limite non può essere superiore al limite di build simultanee impostato per l'account. Se si tenta di inserire un numero superiore al limite dell'account, viene visualizzato un messaggio di errore.
Le nuove compilazione vengono avviate solo se il numero corrente di compilazioni è minore o uguale a questo limite. Se il conteggio delle compilazioni correnti soddisfa questo limite, le nuove compilazioni vengono limitate e non vengono eseguite.
-
- Informazioni aggiuntive
-
(Facoltativo) Per i tag, inserisci il nome e il valore di tutti i tag che desideri vengano utilizzati AWS dai servizi di supporto. Utilizzare Add row (Aggiungi riga) per aggiungere un tag. Puoi aggiungere fino a 50 tag.
Origine
- Provider di origine
-
Scegli il tipo di provider del codice sorgente. Utilizzate i seguenti elenchi per effettuare le selezioni appropriate per il vostro fornitore di origine:
Nota
CodeBuild non supporta Bitbucket Server.
Ambiente
- Modello di provisioning
-
Esegui una delle seguenti operazioni:
-
Per utilizzare flotte su richiesta gestite da AWS CodeBuild, scegli. On-demand Grazie alle flotte on-demand, CodeBuild fornisce l'elaborazione per le tue build. Le macchine vengono distrutte al termine della costruzione. On-demand le flotte sono completamente gestite e includono funzionalità di scalabilità automatica per gestire i picchi di domanda.
-
Per utilizzare le flotte con capacità riservata gestite da AWS CodeBuild, scegli Capacità riservata, quindi seleziona un nome per la flotta. Con le flotte di capacità riservata, configuri un set di istanze dedicate per il tuo ambiente di compilazione. Queste macchine rimangono inattive, pronte per elaborare immediatamente le build o i test e riducono la durata di compilazione. Grazie a flotte con capacità riservata, le macchine sono sempre in funzione e continueranno a sostenere costi fintanto che saranno disponibili.
Per informazioni, consulta Run si basa su flotte a capacità riservata.
-
- Immagine dell'ambiente
-
Esegui una delle seguenti operazioni:
-
Per utilizzare un'immagine Docker gestita da AWS CodeBuild, scegli Immagine gestita, quindi seleziona Sistema operativo, Runtime (s) , Immagine e Versione dell'immagine. Se disponibile, eseguire una selezione da Environment type (Tipo ambiente).
-
Per utilizzare un'altra immagine Docker, selezionare Custom image (Immagine personalizzata). Per il tipo di ambiente, scegli ARM, Linux, Linux GPU o Windows. Se si sceglie Other registry (Altro registro), fin External registry URL (URL registro esterno), inserire il nome e il tag dell'immagine Docker in Docker Hub, utilizzando il formato
. Se scegli Amazon ECR, utilizza il repository Amazon ECR e l'immagine Amazon ECR per scegliere l'immagine Docker nel tuo account. AWSdocker repository/docker image name -
Per utilizzare un'immagine Docker privata, scegli Immagine personalizzata. Per il tipo di ambiente, scegli ARM, Linux , GPU Linux o Windows. Per Image registry (Registro immagine), selezionare Other registry (Altro registro), quindi immettere l'ARN delle credenziali per l'immagine Docker privata. Le credenziali devono essere create da Secrets Manager. Per ulteriori informazioni, consulta Che cos'è AWS Secrets Manager? nella Guida per l'utente di AWS Secrets Manager .
Nota
CodeBuild sostituisce le immagini Docker
ENTRYPOINTpersonalizzate. -
- Calcolo
-
Esegui una delle seguenti operazioni:
-
Per utilizzare il calcolo EC2, scegli EC2. L'elaborazione EC2 offre una flessibilità ottimizzata durante le esecuzioni delle azioni.
-
Per utilizzare il calcolo Lambda, scegli Lambda. Il calcolo Lambda offre velocità di avvio ottimizzate per le tue build. Lambda supporta build più veloci grazie a una minore latenza di avvio. Inoltre, Lambda si ridimensiona automaticamente, in modo che le build non siano in coda per essere eseguite. Per ulteriori informazioni, consulta Run si basa su AWS Lambda calcolo.
-
- Ruolo del servizio
Esegui una delle seguenti operazioni:
-
Se non disponi di un ruolo CodeBuild di servizio, scegli Nuovo ruolo di servizio. In Nome ruolo, inserisci un nome per il nuovo ruolo.
-
Se disponi di un ruolo CodeBuild di servizio, scegli Ruolo di servizio esistente. In Role ARN, scegli il ruolo del servizio.
Nota
Quando si utilizza la console per creare un progetto di compilazione, è possibile creare contemporaneamente un ruolo di CodeBuild servizio. Per impostazione predefinita, il ruolo funziona solo con tale progetto di compilazione. Se si utilizza la console per associare questo ruolo del servizio con un altro progetto di compilazione, il ruolo viene aggiornato per funzionare con l'altro progetto. Un ruolo del servizio può funzionare con un massimo di 10 progetti di compilazione.
-
- Configurazione aggiuntiva
-
- Auto-retry limite
-
Specifica il numero di tentativi automatici aggiuntivi dopo una compilazione non riuscita. Ad esempio, se il limite di tentativi automatici è impostato su 2, CodeBuild chiamerà l'
RetryBuildAPI per riprovare automaticamente la build per un massimo di 2 volte aggiuntive. - Timeout
-
Specifica un valore, compreso tra 5 minuti e 36 ore, dopo il quale CodeBuild interrompe la compilazione se non è completa. Se hours (ore) e minutes (minuti) vengono lasciati vuoti, viene utilizzato il valore predefinito di 60 minuti.
- Privilegiato
-
(Facoltativo) Seleziona Abilita questo flag se desideri creare immagini Docker o desideri che le tue build ottengano privilegi elevati solo se prevedi di utilizzare questo progetto di compilazione per creare immagini Docker. In caso contrario, tutte le compilazioni associate che tentano di interagire con il daemon Docker avranno esito negativo. È inoltre necessario avviare il daemon Docker in modo che le compilazioni possano interagire con esso. Un modo per farlo è inizializzare il demone Docker nella
installfase di buildspec eseguendo i seguenti comandi di compilazione. Non eseguite questi comandi se avete scelto un'immagine dell'ambiente di compilazione fornita dal supporto Docker. CodeBuildNota
Per impostazione predefinita, il demone Docker è abilitato per le build non VPC. Se desideri utilizzare i contenitori Docker per le build VPC, consulta Runtime Privilege and Linux Capabilities
sul sito Web Docker Docs e abilita la modalità privilegiata. Inoltre, Windows non supporta la modalità privilegiata. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done" - VPC
Se vuoi CodeBuild lavorare con il tuo VPC:
-
Per il VPC, scegli l'ID VPC che utilizza. CodeBuild
-
Per le sottoreti VPC, scegli le sottoreti che includono le risorse che utilizza. CodeBuild
-
Per i gruppi di sicurezza VPC, scegli i gruppi di sicurezza CodeBuild utilizzati per consentire l'accesso alle risorse nei VPC.
Per ulteriori informazioni, consulta Utilizzo AWS CodeBuild con Amazon Virtual Private Cloud.
-
- Calcolo
-
Scegli una delle opzioni disponibili.
- Credenziali di registro
-
Specificate una credenziale di registro quando il progetto è configurato con un'immagine di registro non privata.
Nota
Questa credenziale verrà utilizzata solo se le immagini vengono sostituite con quelle provenienti da registri privati.
- Variabili di ambiente
-
Inserisci il nome e il valore, quindi scegli il tipo di ciascuna variabile di ambiente da utilizzare per le build.
Nota
CodeBuild imposta automaticamente la variabile di ambiente per la tua AWS regione. È necessario impostare le seguenti variabili di ambiente se non le hai aggiunte al tuo buildspec.yml:
-
AWS_ACCOUNT_ID
-
IMAGE_REPO_NAME
-
IMAGE_TAG
La console e AWS CLI gli utenti possono visualizzare le variabili di ambiente. Se la visibilità della variabile di ambiente non rappresenta un problema, configurare i campi Name (Nome) e Value (Valore), quindi impostare Type (Tipo) su Plaintext (Testo normale).
Ti consigliamo di memorizzare una variabile di ambiente con un valore sensibile, ad esempio un ID della chiave di AWS accesso, una chiave di accesso AWS segreta o una password come parametro in Amazon EC2 Systems Manager Parameter Store o AWS Secrets Manager.
Se utilizzi Amazon EC2 Systems Manager Parameter Store, in Tipo, scegli Parameter. Per Nome, inserisci un identificatore a cui CodeBuild fare riferimento. Per Value, inserisci il nome del parametro archiviato in Amazon EC2 Systems Manager Parameter Store. Utilizzando un parametro esemplificativo denominato
/CodeBuild/dockerLoginPassword, per Type (Tipo) selezionare Parameter (Parametro). In Nome, inserisciLOGIN_PASSWORD. In Valore, specifica/CodeBuild/dockerLoginPassword.Importante
Se utilizzi Amazon EC2 Systems Manager Parameter Store, ti consigliamo di memorizzare i parametri con nomi di parametro che iniziano con
/CodeBuild/(ad esempio,/CodeBuild/dockerLoginPassword). Puoi utilizzare la CodeBuild console per creare un parametro in Amazon EC2 Systems Manager. Selezionare Create a parameter (Crea un parametro), quindi seguire le istruzioni nella finestra di dialogo. (In questa finestra di dialogo, per la chiave KMS, puoi specificare l'ARN di una AWS KMS chiave nel tuo account. Amazon EC2 Systems Manager utilizza questa chiave per crittografare il valore del parametro durante l'archiviazione e decrittografarlo durante il recupero.) Se si utilizza la CodeBuild console per creare un parametro, la console inizia con/CodeBuild/il nome del parametro in cui viene archiviato. Per ulteriori informazioni, consulta la procedura dettagliata di Systems Manager Parameter Store e Systems Manager Parameter Store Console nella Amazon EC2 Systems Manager User Guide.Se il progetto di compilazione fa riferimento a parametri memorizzati in Amazon EC2 Systems Manager Parameter Store, il ruolo di servizio del progetto di compilazione deve consentire l'azione.
ssm:GetParametersSe in precedenza hai scelto Nuovo ruolo di servizio, CodeBuild include questa azione nel ruolo di servizio predefinito per il tuo progetto di compilazione. Tuttavia, se invece hai scelto Existing service role (Ruolo del servizio esistente), devi includere questa operazione al ruolo del servizio separatamente.Se il progetto di compilazione fa riferimento a parametri archiviati in Amazon EC2 Systems Manager Parameter Store con nomi di parametri che non iniziano con
/CodeBuild/e hai scelto Nuovo ruolo di servizio, devi aggiornare quel ruolo di servizio per consentire l'accesso ai nomi dei parametri che non iniziano con/CodeBuild/. Ciò dipende dal fatto che tale ruolo consente l'accesso solo a nomi di parametro che iniziano con/CodeBuild/.Se scegli Nuovo ruolo di servizio, il ruolo del servizio include l'autorizzazione a decrittografare tutti i parametri nel
/CodeBuild/namespace in Amazon EC2 Systems Manager Parameter Store.Le variabili di ambiente impostate sostituiscono quelle esistenti. Ad esempio, se l'immagine Docker contiene già una variabile di ambiente denominata
MY_VARcon un valore dimy_value, e si imposta una variabile di ambiente denominataMY_VARcon un valore diother_value, il valoremy_valueviene sostituito daother_value. Allo stesso modo, se l'immagine Docker contiene già una variabile di ambiente denominataPATHcon un valore di/usr/local/sbin:/usr/local/bin, e si imposta una variabile di ambiente denominataPATHcon un valore di$PATH:/usr/share/ant/bin, il valore di/usr/local/sbin:/usr/local/binviene sostituito dal valore letterale$PATH:/usr/share/ant/bin.Non impostare variabili di ambiente con nomi che iniziano con
CODEBUILD_. Questo prefisso è riservato per l'uso interno .Se una variabile di ambiente con lo stesso nome viene definita in più luoghi, il valore viene determinato come segue:
-
Il valore della chiamata all'operazione di inizio della compilazione ha la massima priorità.
-
Il valore della definizione del progetto di compilazione è il seguente in ordine di priorità.
-
Il valore della dichiarazione buildspec ha la minima priorità.
Se utilizzi Secrets Manager, in Tipo, scegli Secrets Manager. Per Nome, inserisci un identificatore CodeBuild a cui fare riferimento. Per Valore, immettere un
reference-keyutilizzando il modello. Per informazioni, consulta Secrets Manager reference-key in the buildspec file.secret-id:json-key:version-stage:version-idImportante
Se utilizzi Secrets Manager, ti consigliamo di archiviare i segreti con nomi che iniziano con
/CodeBuild/(ad esempio,/CodeBuild/dockerLoginPassword). Per ulteriori informazioni, consulta Che cos'è AWS Secrets Manager? nella Guida per l'utente di AWS Secrets Manager .Se il progetto di compilazione fa riferimento a segreti memorizzati in Secrets Manager, il ruolo di servizio del progetto di compilazione deve consentire l'
secretsmanager:GetSecretValueazione. Se in precedenza hai scelto Nuovo ruolo di servizio, CodeBuild include questa azione nel ruolo di servizio predefinito per il tuo progetto di compilazione. Tuttavia, se invece hai scelto Existing service role (Ruolo del servizio esistente), devi includere questa operazione al ruolo del servizio separatamente.Se il progetto di compilazione fa riferimento a segreti archiviati in Secrets Manager con nomi segreti che non iniziano con
/CodeBuild/e hai scelto Nuovo ruolo di servizio, devi aggiornare il ruolo del servizio per consentire l'accesso ai nomi segreti che non iniziano con/CodeBuild/. Questo perché il ruolo del servizio consente l'accesso solo ai nomi segreti che iniziano con/CodeBuild/.Se si sceglie Nuovo ruolo di servizio, il ruolo di servizio include l'autorizzazione a decrittografare tutti i segreti contenuti nel
/CodeBuild/namespace nel Secrets Manager. -
Buildspec
- Specifiche di costruzione
-
Esegui una delle seguenti operazioni:
-
Se il codice sorgente include un file di specifiche di compilazione, selezionare Use a buildspec file (Utilizza un file buildspec). Per impostazione predefinita, CodeBuild cerca un file denominato
buildspec.ymlnella directory principale del codice sorgente. Se il tuo file buildspec utilizza un nome o una posizione diversi, inserisci il percorso dalla radice di origine nel nome Buildspec (ad esempio, o.buildspec-two.ymlconfiguration/buildspec.ymlSe il file buildspec si trova in un bucket S3, deve trovarsi nella stessa regione del progetto di compilazione. AWS Specifica il file buildspec usando il suo ARN (ad esempio,).arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml -
Se il codice sorgente non include un file di specifiche di compilazione o se desideri eseguire comandi di compilazione diversi da quelli specificati per la fase
builddel filebuildspec.ymlnella directory radice del codice sorgente, scegli Insert build commands (Inserisci comandi di compilazione). Per Build commands (Comandi di compilazione), immetti i comandi che desideri eseguire nella fasebuild. In caso di più comandi, separa ogni comando con&&(ad esempiomvn test && mvn package). Per eseguire comandi in altre fasi, o se avete un lungo elenco di comandi per labuildfase, aggiungete unbuildspec.ymlfile alla directory principale del codice sorgente, aggiungete i comandi al file e quindi scegliete Usa buildspec.yml nella directory principale del codice sorgente.
Per ulteriori informazioni, consulta Riferimento per buildspec.
-
Configurazione in batch
È possibile eseguire un gruppo di build come un'unica operazione. Per ulteriori informazioni, consulta Esegui le build in batch.
- Definisci la configurazione in batch
-
Seleziona questa opzione per consentire la compilazione in batch in questo progetto.
- Ruolo del servizio batch
-
Fornisce il ruolo di servizio per le compilazioni in batch.
Seleziona una delle seguenti opzioni:
-
Se non disponi di un ruolo di servizio batch, scegli Nuovo ruolo di servizio. In Ruolo di servizio, inserisci un nome per il nuovo ruolo.
-
Se disponi di un ruolo di servizio batch, scegli Ruolo di servizio esistente. In Ruolo di servizio, scegli il ruolo del servizio.
Le compilazioni in batch introducono un nuovo ruolo di sicurezza nella configurazione in batch. Questo nuovo ruolo è obbligatorio in quanto è CodeBuild necessario poter chiamare le
RetryBuildazioniStartBuildStopBuild, e per conto dell'utente per eseguire le build come parte di un batch. I clienti devono utilizzare un nuovo ruolo e non lo stesso ruolo che usano nella compilazione, per due motivi:-
Dare al ruolo di compilazione le autorizzazioni
StartBuild,StopBuildeRetryBuildconsentirebbe a una singola compilazione di avviare più compilazioni tramite buildspec. -
CodeBuild le build batch prevedono restrizioni che limitano il numero di build e i tipi di calcolo che possono essere utilizzati per le build del batch. Se il ruolo di compilazione dispone di queste autorizzazioni, è possibile che le compilazioni stesse possano ignorare queste restrizioni.
-
- Tipi di calcolo consentiti per il batch
-
Seleziona i tipi di calcolo consentiti per il batch. Seleziona tutte le risposte valide.
- Flotte consentite per lotto
-
Seleziona le flotte consentite per il batch. Seleziona tutte le risposte applicabili.
- Numero massimo di build consentite in batch
-
Inserite il numero massimo di build consentite nel batch. Se un batch supera questo limite, il batch avrà esito negativo.
- Timeout del batch
-
Inserisci il tempo massimo per il completamento della compilazione del batch.
- Combina artefatti
-
Seleziona Combina tutti gli artefatti del batch in un'unica posizione per riunire tutti gli artefatti del batch in un'unica posizione.
- Modalità di segnalazione in batch
-
Seleziona la modalità di report sullo stato della build desiderata per le build in batch.
Nota
Questo campo è disponibile solo quando l'origine del progetto è Bitbucket o GitHub Enterprise e l' GitHubopzione Segnala lo stato di compilazione al fornitore di origine all'inizio e alla fine delle build è selezionato in Fonte.
- Compilazioni aggregate
-
Seleziona questa opzione per riunire gli stati di tutte le build del batch in un unico rapporto sullo stato.
- Compilazioni individuali
-
Seleziona questa opzione per visualizzare separatamente gli stati di compilazione di tutte le build del batch.
Artifacts
- Tipo
-
Esegui una delle seguenti operazioni:
-
Se non si desidera creare alcun artefatto di output di compilazione, scegliere No artifacts (Nessun artefatto). Questa operazione può essere utile se si eseguono solo test di compilazione o se si desidera inviare un'immagine Docker a un repository Amazon ECR.
-
Per archiviare l'output di compilazione in un bucket S3, scegli Amazon S3, quindi procedi come segue:
-
Se desideri utilizzare il tuo nome di progetto per la cartella o il file ZIP di output di compilazione, lascia vuoto il campo Name (Nome). In caso contrario, digitare il nome. Se desideri eseguire l'output di un file ZIP e vuoi che il file ZIP abbia un'estensione di file, assicurati di includerla dopo il nome del file ZIP.
-
Selezionare Enable semantic versioning (Abilita funzione Versioni multiple semantica) se si desidera che un nome specificato nel file buildspec sostituisca qualsiasi nome specificato nella console. Il nome del file di specifiche di compilazione viene calcolato in fase di compilazione e utilizza il linguaggio di comando Shell. Ad esempio, è possibile aggiungere una data e un’ora al nome dell’artefatto in modo che sia sempre univoco. I nomi di artefatto univoci impediscono che gli artefatti vengano sovrascritti. Per ulteriori informazioni, consulta Sintassi buildspec.
-
Per Bucket name (Nome bucket) selezionare il nome del bucket di output.
-
Se hai scelto Insert build commands (Inserisci comandi di compilazione) in una fase precedente di questa procedura, quindi per Output files (File di output), immetti le posizioni dei file di compilazione che desideri inserire nella cartella o nel file ZIP dell'output di compilazione. Per più posizioni, separarne ognuna con una virgola (per esempio,
appspec.yml, target/my-app.jar). Per ulteriori informazioni, consultare la descrizione difilesin Sintassi buildspec. -
Se desideri crittografare gli artefatti di compilazione, seleziona Remove artifacts encryption (Rimuovi crittografia artefatti).
-
Per ogni insieme secondario di artefatti desiderato:
-
Per Artifact identifier (Identificatore di artefatto), inserire un valore inferiore a 128 caratteri e che contiene solo caratteri alfanumerici e trattini bassi.
-
Scegliere Add artifact (Aggiungi artefatto).
-
Seguire le fasi precedenti configurare gli artefatti secondari.
-
Selezionare Save artifact (Salva elemento).
-
- Configurazione aggiuntiva
-
- Chiave di crittografia
-
(Facoltativo) Scegliere una delle seguenti operazioni:
-
Per utilizzare la chiave di crittografia Chiave gestita da AWS per Amazon S3 nel tuo account per crittografare gli artefatti di output della build, lascia vuota la chiave di crittografia. Questa è l’impostazione predefinita.
-
Per utilizzare una chiave gestita dal cliente per crittografare gli artefatti di output della build, in Encryption key, inserisci l'ARN della chiave KMS. Utilizzare il formato
arn:aws:kms:.region-ID:account-ID:key/key-ID
-
- Tipo di cache
In Cache type (Tipo di cache), procedere in uno dei modi seguenti:
-
Se non si desidera utilizzare una cache, scegliere No cache (Nessuna cache).
-
Se desideri utilizzare una cache Amazon S3, scegli Amazon S3, quindi procedi come segue:
-
Per Bucket, selezionare il nome del bucket S3 in cui è archiviata la cache.
-
(Facoltativo) Per il prefisso del percorso della cache, inserisci un prefisso di percorso Amazon S3. Il valore Cache path prefix (Prefisso percorso cache) è simile a un nome di directory. Consente di archiviare la cache sotto la stessa directory in un bucket.
Importante
Non aggiungere una barra finale (/) alla fine del prefisso del percorso.
-
-
Se si desidera utilizzare una cache locale, selezionare Local (Locale), quindi scegliere una o più modalità cache locali.
Nota
La modalità Cache di livello Docker è disponibile solo per Linux. Se la scegli, il progetto deve essere eseguito in modalità privilegiata.
L'utilizzo di una cache consente di risparmiare tempo di compilazione perché alcune parti riutilizzabili dell'ambiente di compilazione vengono memorizzate nella cache e utilizzate in compilazioni diverse. Per informazioni su come specificare una cache nel file di specifiche di compilazione, consulta Sintassi buildspec. Per ulteriori informazioni sul caching, consulta La cache viene creata per migliorare le prestazioni.
-
Log
Scegli i log che desideri creare. Puoi creare Amazon CloudWatch Logs, Amazon S3 o entrambi.
- CloudWatch
-
Se desideri i log di Amazon CloudWatch Logs:
- CloudWatch logs
-
Seleziona CloudWatch i log.
- Group name (Nome gruppo)
-
Inserisci il nome del tuo gruppo di CloudWatch log di Amazon Logs.
- Nome dello stream
-
Inserisci il nome del tuo stream di CloudWatch log di Amazon Logs.
- S3
-
Se desideri i log di Amazon S3:
- Log S3
-
Selezionare S3 logs (Log S3).
- Bucket
-
Scegli il nome del bucket S3 per i tuoi log.
- Prefisso del percorso
-
Inserisci il prefisso per i tuoi log.
- Disattiva la crittografia dei log S3
-
Seleziona se non desideri che i tuoi log S3 siano crittografati.
Crea un progetto di compilazione (AWS CLI)
Per ulteriori informazioni sull'uso di AWS CLI with CodeBuild, vedere ilGuida di riferimento alla riga di comando.
Per creare un progetto di CodeBuild compilazione utilizzando il AWS CLI, si crea una struttura JSON-formatted del progetto, si compila la struttura e si chiama il create-project comando per creare il progetto.
Crea il file JSON
Crea un file JSON scheletrato con il create-project comando, usando l'opzione: --generate-cli-skeleton
aws codebuild create-project --generate-cli-skeleton ><json-file>
Questo crea un file JSON con il percorso e il nome del file specificati da. <json-file>
Compila il file JSON
Modifica i dati JSON come segue e salva i risultati.
{ "name": "<project-name>", "description": "<description>", "source": { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>", "gitCloneDepth": "<git-clone-depth>", "buildspec": "<buildspec>", "InsecureSsl": "<insecure-ssl>", "reportBuildStatus": "<report-build-status>", "buildStatusConfig": { "context": "<context>", "targetUrl": "<target-url>" }, "gitSubmodulesConfig": { "fetchSubmodules": "<fetch-submodules>" }, "auth": { "type": "<auth-type>", "resource": "<auth-resource>" }, "sourceIdentifier": "<source-identifier>" }, "secondarySources": [ { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>", "gitCloneDepth": "<git-clone-depth>", "buildspec": "<buildspec>", "InsecureSsl": "<insecure-ssl>", "reportBuildStatus": "<report-build-status>", "auth": { "type": "<auth-type>", "resource": "<auth-resource>" }, "sourceIdentifier": "<source-identifier>" } ], "secondarySourceVersions": [ { "sourceIdentifier": "<secondary-source-identifier>", "sourceVersion": "<secondary-source-version>" } ], "sourceVersion": "<source-version>", "artifacts": { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<artifacts-location>", "path": "<artifacts-path>", "namespaceType": "<artifacts-namespacetype>", "name": "<artifacts-name>", "overrideArtifactName": "<override-artifact-name>", "packaging": "<artifacts-packaging>" }, "secondaryArtifacts": [ { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<secondary-artifact-location>", "path": "<secondary-artifact-path>", "namespaceType": "<secondary-artifact-namespaceType>", "name": "<secondary-artifact-name>", "packaging": "<secondary-artifact-packaging>", "artifactIdentifier": "<secondary-artifact-identifier>" } ], "cache": { "type": "<cache-type>", "location": "<cache-location>", "mode": [ "<cache-mode>" ] }, "environment": { "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER" | "WINDOWS_SERVER_2022_CONTAINER", "image": "<image>", "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE", "certificate": "<certificate>", "environmentVariables": [ { "name": "<environmentVariable-name>", "value": "<environmentVariable-value>", "type": "<environmentVariable-type>" } ], "registryCredential": [ { "credential": "<credential-arn-or-name>", "credentialProvider": "<credential-provider>" } ], "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE", "privilegedMode": "<privileged-mode>" }, "serviceRole": "<service-role>", "autoRetryLimit":<auto-retry-limit>, "timeoutInMinutes":<timeout>, "queuedTimeoutInMinutes":<queued-timeout>, "encryptionKey": "<encryption-key>", "tags": [ { "key": "<tag-key>", "value": "<tag-value>" } ], "vpcConfig": { "securityGroupIds": [ "<security-group-id>" ], "subnets": [ "<subnet-id>" ], "vpcId": "<vpc-id>" }, "badgeEnabled": "<badge-enabled>", "logsConfig": { "cloudWatchLogs": { "status": "<cloudwatch-logs-status>", "groupName": "<group-name>", "streamName": "<stream-name>" }, "s3Logs": { "status": "<s3-logs-status>", "location": "<s3-logs-location>", "encryptionDisabled": "<s3-logs-encryption-disabled>" } }, "fileSystemLocations": [ { "type": "EFS", "location": "<EFS-DNS-name-1>:/<directory-path>", "mountPoint": "<mount-point>", "identifier": "<efs-identifier>", "mountOptions": "<efs-mount-options>" } ], "buildBatchConfig": { "serviceRole": "<batch-service-role>", "combineArtifacts":<combine-artifacts>, "restrictions": { "maximumBuildsAllowed":<max-builds>, "computeTypesAllowed": [ "<compute-type>" ], "fleetsAllowed": [ "<fleet-name>" ] }, "timeoutInMins":<batch-timeout>, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit":<concurrent-build-limit>}
Sostituisci quanto segue:
nome
Obbligatorio. Il nome di questo progetto di compilazione. Questo nome deve essere univoco in tutti i progetti di compilazione del tuo AWS account.
description
Opzionale. La descrizione di questo progetto di compilazione.
origine
Obbligatorio. Un ProjectSource oggetto che contiene informazioni sulle impostazioni del codice sorgente di questo progetto di compilazione. Dopo aver aggiunto un oggetto source, è possibile aggiungere fino a più di 12 origini utilizzando la Fonti secondarie. Queste impostazioni includono quanto segue:
- fonte/ tipo
-
Obbligatorio. Il tipo di repository che contiene il codice sorgente da compilare. I valori validi includono:
-
CODECOMMIT -
CODEPIPELINE -
GITHUB -
GITHUB_ENTERPRISE -
GITLAB -
GITLAB_SELF_MANAGED -
BITBUCKET -
S3 -
NO_SOURCE
Se utilizzi
NO_SOURCE, la specifica di compilazione non può essere un file perché il progetto non ha un'origine. Invece, devi usare l'buildspecattributo per specificare una YAML-formatted stringa per il tuo buildspec. Per ulteriori informazioni, consulta Crea un progetto di compilazione senza una fonte. -
- fonte/ posizione
-
Obbligatorio a meno che non sia impostato su
<source-type>.CODEPIPELINELa posizione del codice sorgente per il tipo di repository specificato.-
Per CodeCommit, l'URL di clonazione HTTPS del repository che contiene il codice sorgente e il file buildspec (ad esempio,).
https://git-codecommit.<region-id>.amazonaws.com/v1/repos/<repo-name> -
Per Amazon S3, il nome del bucket di input della build, seguito dal percorso e dal nome del file ZIP che contiene il codice sorgente e la buildspec. Ad esempio:
-
Per un file ZIP situato nella radice del bucket di input:.
<bucket-name>/<object-name>.zip -
Per un file ZIP che si trova in una sottocartella del bucket di input:.
<bucket-name>/<subfoler-path>/<object-name>.zip
-
-
Per GitHub, l'URL clone HTTPS del repository che contiene il codice sorgente e il file buildspec. L'URL deve contenere github.com. Devi connettere il tuo account al tuo account. AWS GitHub Per fare ciò, usa la CodeBuild console per creare un progetto di compilazione.
-
Selezionare Authorize application (Autorizza applicazione). (Dopo esserti connesso al tuo GitHub account, non è necessario completare la creazione del progetto di compilazione. Puoi chiudere la CodeBuild console.)
-
-
Per GitHub Enterprise Server, l'URL di clonazione HTTP o HTTPS del repository che contiene il codice sorgente e il file buildspec. È inoltre necessario connettere il proprio AWS account al proprio account Enterprise Server. GitHub A tale scopo, usa la CodeBuild console per creare un progetto di compilazione.
-
Crea un token di accesso personale in GitHub Enterprise Server.
-
Copia questo token negli appunti in modo da poterlo utilizzare durante la CodeBuild creazione del progetto. Per ulteriori informazioni, consulta Creazione di un token di accesso personale per la riga di comando nel sito
Web di GitHub assistenza. -
Quando usi la console per creare il tuo CodeBuild progetto, in Source, per Source provider, scegli GitHub Enterprise.
-
Per Personal Access Token (Token di accesso personale), incollare il token che è stato copiato negli Appunti. Selezionare Save Token (Salva token). Il tuo CodeBuild account è ora connesso al tuo account GitHub Enterprise Server.
-
-
In modalità GitLab GitLab autogestita, l'URL di clonazione HTTPS del repository che contiene il codice sorgente e il file buildspec. Nota che se lo usi, l'URL deve contenere GitLab gitlab.com. Se usi l' GitLab autogestito, non è necessario che l'URL contenga gitlab.com. Devi connettere il tuo AWS account al tuo account o a quello autogestito. GitLab GitLab Per fare ciò, utilizzare la console CodeBuild per creare un progetto di compilazione.
-
Nel riquadro di navigazione degli Strumenti per sviluppatori, scegli Impostazioni , Connessioni e quindi Crea connessione. In questa pagina, crea una connessione GitLab o una connessione GitLab autogestita, quindi scegli Connetti a GitLab.
-
-
Per Bitbucket, l'URL clone HTTPS del repository che contiene il codice sorgente e il file buildspec. L'URL deve contenere bitbucket.org. Devi anche connettere il tuo AWS account al tuo account Bitbucket. Per fare ciò, usa la CodeBuild console per creare un progetto di compilazione.
-
Quando utilizzi la console per connetterti (o riconnetterti) a Bitbucket, nella pagina Confirm access to your account (Conferma l'accesso al tuo account) di Bitbucket, scegli Grant access (Concedi accesso). (Dopo esserti connesso al tuo account Bitbucket, non è necessario completare la creazione del progetto di compilazione. Puoi chiudere la CodeBuild console.)
-
-
Per AWS CodePipeline, non specificare un
locationvalore persource. CodePipeline ignora questo valore perché quando create una pipeline in CodePipeline, specificate la posizione del codice sorgente nella fase Source della pipeline.
-
- source/ git CloneDepth
-
Opzionale. La profondità della cronologia da scaricare. Il valore minimo è 0. Se il valore è pari a 0, maggiore di 25 o non fornito, viene scaricata la cronologia completa con ogni progetto di build. Se il tipo di origine è Amazon S3, questo valore non è supportato.
- fonte/ buildspec
-
Opzionale. La definizione o il file delle specifiche di compilazione da utilizzare. Se tale valore non è fornito o è impostato su una stringa vuota, il codice di origine deve contenere un file
buildspec.ymlnella directory radice. Se questo valore è impostato, può essere una definizione buildspec in linea, il percorso di un file buildspec alternativo relativo alla directory principale della fonte primaria o il percorso di un bucket S3. Il bucket deve trovarsi nella stessa regione del progetto di compilazione. AWS Specificare il file buildspec utilizzando il relativo ARN (ad esempio,arn:aws:s3:::). Per ulteriori informazioni, consulta Nome del file buildspec e posizione di storage.<my-codebuild-sample2>/buildspec.yml - fonte/ auth
-
Contiene informazioni sulle impostazioni di autorizzazione per accedere CodeBuild al codice sorgente da compilare.
- source/auth/tipo
-
Obbligatorio. Il tipo di autorizzazione da utilizzare. I valori validi sono:
-
OAUTH -
CODECONNECTIONS -
SECRETS_MANAGER
-
- source/auth/risorsa
-
Opzionale. Il valore della risorsa che si applica al tipo di autorizzazione specificato. Può essere il Secrets Manager ARN o l' CodeConnections ARN.
- fonte/rapporto BuildStatus
-
Specifica se inviare al provider di origine lo stato di avvio e di completamento di una compilazione. Se lo imposti con un provider di origine diverso GitHub da GitHub Enterprise Server o Bitbucket, viene generato un.
invalidInputExceptionPer poter segnalare lo stato di compilazione al provider di origine, l'utente associato al provider di origine deve avere accesso in scrittura al repository. Se l'utente non dispone dell'accesso in scrittura, lo stato della build non può essere aggiornato. Per ulteriori informazioni, consulta Accesso al provider di origine.
- fonte/ build StatusConfig
-
Contiene informazioni che definiscono il modo in cui il progetto di CodeBuild compilazione riporta lo stato di compilazione al fornitore di origine. Questa opzione viene utilizzata solo quando il tipo di origine è
GITHUB,GITHUB_ENTERPRISE, oBITBUCKET.- source/buildStatusConfig/contesto
-
Per i sorgenti Bitbucket, questo parametro viene utilizzato per il
nameparametro nello stato di commit di Bitbucket. Per GitHub le sorgenti, questo parametro viene utilizzato per ilcontextparametro nello stato di commit. GitHubAd esempio, puoi fare in modo che
contextcontenga il numero di build e il webhook utilizzando le variabili di CodeBuild ambiente:AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGERCiò fa sì che il contesto appaia così per la build #24 attivato da un evento di pull request del webhook:
AWS CodeBuild sample-project Build #24 - pr/8
- source/buildStatusConfig/targetURL
-
Per le sorgenti Bitbucket, questo parametro viene utilizzato per il
urlparametro nello stato di commit di Bitbucket. Per GitHub le sorgenti, questo parametro viene utilizzato per iltarget_urlparametro nello stato di commit. GitHubAd esempio, puoi impostare
targetUrltohttps://aws.amazon.com/codebuild/e lo stato di commit verrà collegato a questo URL.<path to build>Puoi anche includere variabili di CodeBuild ambiente
targetUrlper aggiungere ulteriori informazioni all'URL. Ad esempio, per aggiungere l'area di compilazione all'URL, imposta su:targetUrl"targetUrl": "https://aws.amazon.com/codebuild/<path to build>?region=$AWS_REGION"Se l'area di costruzione è
us-east-2, questa si espanderà fino a:https://aws.amazon.com/codebuild/<path to build>?region=us-east-2
- fonte/ git SubmodulesConfig
-
Opzionale. Informazioni sulla configurazione dei moduli secondari Git. Utilizzato solo con CodeCommit GitHub, GitHub Enterprise Server e Bitbucket.
- source/gitSubmodulesConfig/FetchSubmodules
-
Impostare
fetchSubmodulessutruese desideri includere i moduli secondari Git nel repository. I moduli secondari Git inclusi devono essere configurati come HTTPS.
- fonte/ InsecureSsl
-
Opzionale. Utilizzato solo con GitHub Enterprise Server. Impostate questo valore su per
trueignorare gli avvisi TLS durante la connessione al repository di progetti GitHub Enterprise Server. Il valore predefinito èfalse.InsecureSsldeve essere utilizzato solo a scopo di test. Non deve essere utilizzato in un ambiente di produzione. - source/ SourceIdentifier
-
Un identificatore definito dall'utente per la fonte del progetto. Facoltativo per la fonte principale. Obbligatorio per le fonti secondarie.
Fonti secondarie
Opzionale. Una serie di ProjectSource oggetti che contengono informazioni sulle fonti secondarie per un progetto di compilazione. È possibile aggiungere fino a 12 fonti secondarie. Gli secondarySources oggetti utilizzano le stesse proprietà utilizzate dall'origineoggetto. In un oggetto sorgente secondario, sourceIdentifier è obbligatorio.
secondario SourceVersions
Opzionale. Un array di oggetti ProjectSourceVersion. Se secondarySourceVersions vengono specificate a livello di compilazione, hanno la precedenza su questo.
versione di origine
Opzionale. La versione dell'input di compilazione da creare per questo progetto. Se non è specificato, viene utilizzata la versione più recente. Se specificato, deve essere uno tra:
-
Per CodeCommit, l'ID di commit, il branch o il tag Git da usare.
-
Per GitHub, l'ID del commit, l'ID della pull request, il nome del branch o il nome del tag che corrisponde alla versione del codice sorgente che vuoi creare. Se si specifica l'ID di una richiesta pull, deve utilizzare il formato
pr/pull-request-ID(ad esempiopr/25). Se un nome ramo è specificato, viene utilizzato l'ID commit HEAD del ramo. Se non è specificato, viene utilizzato l'ID commit HEAD del ramo predefinito. -
Per GitLab, l'ID del commit, l'ID della pull request, il nome della filiale, il nome del tag o il riferimento e un ID di commit. Per ulteriori informazioni, consulta Esempio di versione sorgente con AWS CodeBuild.
-
Per Bitbucket, l'ID commit, il nome ramo o il nome del tag che corrisponde alla versione del codice sorgente che si desidera creare. Se un nome ramo è specificato, viene utilizzato l'ID commit HEAD del ramo. Se non è specificato, viene utilizzato l'ID commit HEAD del ramo predefinito.
-
Per Amazon S3, l'ID versione dell'oggetto che rappresenta il file ZIP di input della compilazione da utilizzare.
Se sourceVersion è specificata a livello di compilazione, questa versione ha la precedenza rispetto a sourceVersion (a livello di progetto). Per ulteriori informazioni, consulta Esempio di versione sorgente con AWS CodeBuild.
artefatti
Obbligatorio. Un ProjectArtifacts oggetto che contiene informazioni sulle impostazioni degli artefatti di output di questo progetto di compilazione. Dopo aver aggiunto un oggetto artifacts, è possibile aggiungere fino a più di 12 artefatti utilizzando la Artefatti secondari. Queste impostazioni includono quanto segue:
- artefatti/ tipo
-
Obbligatorio. Tipo di artefatto di output della build. I valori validi sono:
-
CODEPIPELINE -
NO_ARTIFACTS -
S3
-
- artefatti/ ubicazione
-
Utilizzato solo con il tipo di artefatto.
S3Non utilizzato per altri tipi di artefatto.Il nome del bucket di output creato o identificato nei prerequisiti.
- artefatti/ percorso
-
Utilizzato solo con il tipo di artefatto.
S3Non utilizzato per altri tipi di artefatto.Il percorso del bucket di output in cui inserire il file o la cartella ZIP. Se non si specifica un valore per
path, CodeBuild utilizzanamespaceType(se specificato) and pernamedeterminare il percorso e il nome del file o della cartella ZIP di output della compilazione. Ad esempio, se si specificaMyPathforpatheMyArtifact.zipforname, il percorso e il nome sarannoMyPath/MyArtifact.zip. - artefatti/ namespaceType
-
Utilizzato solo con il tipo di artefatto.
S3Non utilizzato per altri tipi di artefatto.Lo spazio dei nomi del file o della cartella ZIP di output della compilazione. I valori validi includono
BUILD_IDeNONE. UtilizzareBUILD_IDper inserire l'ID di compilazione nel percorso del file o della cartella ZIP di output di compilazione. In caso contrario, utilizzareNONE. Se non si specifica un valore pernamespaceType, CodeBuild utilizzapath(se specificato) and pernamedeterminare il percorso e il nome del file o della cartella ZIP di output della compilazione. Ad esempio, se si specificaMyPathforpathnamespaceType,BUILD_IDfor eMyArtifact.zipforname, il percorso e il nome sarannoMyPath/.build-ID/MyArtifact.zip - artifacts/name
-
Utilizzato solo con il tipo di
S3artefatto. Non utilizzato per altri tipi di artefatto.Il nome del file ZIP di output della build o della cartella all'interno di.
locationAd esempio, se si specificaMyPathforpatheMyArtifact.zipforname, il percorso e il nome sarannoMyPath/MyArtifact.zip. - artefatti/ sovrascrivi ArtifactName
-
Utilizzato solo con il tipo di artefatto S3. Non utilizzato per altri tipi di artefatto.
Opzionale. Se impostato su
true, il nome specificato nelartifactsblocco del file buildspec ha la precedenza.namePer ulteriori informazioni, consulta Riferimento alle specifiche di compilazione per CodeBuild. - artefatti/imballaggi
-
Utilizzato solo con il tipo di artefatto.
S3Non utilizzato per altri tipi di artefatto.Opzionale. Specifica come impacchettare gli artefatti. I valori consentiti sono:
- NONE
-
Crea una cartella che contenga gli artefatti di compilazione. Si tratta del valore di default.
- ZIP
-
Crea un file ZIP che contenga gli artefatti di compilazione.
Artefatti secondari
Opzionale. Una serie di ProjectArtifacts oggetti che contengono informazioni sulle impostazioni degli artefatti secondari per un progetto di compilazione. È possibile aggiungere fino a 12 artefatti secondari. Il secondaryArtifacts utilizza molte delle stesse impostazioni utilizzate dall'oggetto artefatti.
cache
Obbligatorio. Un ProjectCache oggetto che contiene informazioni sulle impostazioni della cache di questo progetto di compilazione. Per ulteriori informazioni, consulta Compilazioni della cache.
ambiente
Obbligatorio. Un ProjectEnvironment oggetto che contiene informazioni sulle impostazioni dell'ambiente di compilazione di questo progetto. Queste impostazioni includono:
- ambiente/ tipo
-
Obbligatorio. Il tipo di ambiente di compilazione. Per ulteriori informazioni, consulta Type in CodeBuild API Reference.
- ambiente/ immagine
-
Obbligatorio. L'identificatore dell'immagine Docker utilizzato da questo ambiente di compilazione. In genere, questo identificatore è espresso come
image-name:.tagAd esempio, nel repository Docker che CodeBuild utilizza per gestire le sue immagini Docker, questo potrebbe essere.aws/codebuild/standard:5.0In Docker Hub,maven:3.3.9-jdk-8. In Amazon ECR,.Per ulteriori informazioni, consulta Immagini Docker fornite da CodeBuild.account-id.dkr.ecr.region-id.amazonaws.com/your-Amazon-ECR-repo-name:tag - ambiente/tipo di computer
-
Obbligatorio. Specifica le risorse di calcolo utilizzate da questo ambiente di compilazione. Per ulteriori informazioni, vedere ComputeType nell'API Reference. CodeBuild
- ambiente/ certificato
-
Opzionale. L'ARN del bucket Amazon S3, il prefisso del percorso e la chiave oggetto che contiene il certificato. PEM-encoded La chiave oggetto può essere solo il file .pem o un file .zip contenente il certificato. PEM-encoded Ad esempio, se il nome del bucket Amazon S3 è
, il prefisso del percorso è e il nome della chiave dell'oggetto è<my-bucket>, i formati accettabili per sono<cert>o.<certificate.pem>certificate<my-bucket/cert/certificate.pem>arn:aws:s3:::<my-bucket/cert/certificate.pem> - ambiente/ variabili di ambiente
-
Opzionale. Un array di EnvironmentVariable oggetti che contiene le variabili di ambiente che desideri specificare per questo ambiente di compilazione. Ogni variabile di ambiente è espressa come un oggetto che contiene a
namevalue,, etypedinamevalue, etype.La console e AWS CLI gli utenti possono vedere tutte le variabili di ambiente. Se non hai dubbi sulla visibilità della tua variabile di ambiente, imposta
nameevaluee impostatypesuPLAINTEXT.Ti consigliamo di memorizzare le variabili di ambiente con valori sensibili, come un ID della chiave di AWS accesso, una chiave di accesso AWS segreta o una password, come parametro in Amazon EC2 Systems Manager Parameter Store o AWS Secrets Manager. Per
name, per quel parametro memorizzato, imposta un identificatore CodeBuild a cui fare riferimento.Se utilizzi Amazon EC2 Systems Manager Parameter Store, per
value, imposta il nome del parametro come memorizzato nel Parameter Store. ImpostatypesuPARAMETER_STORE. Utilizzando un parametro denominato/CodeBuild/dockerLoginPasswordcome esempio, impostato suname.LOGIN_PASSWORDImpostavaluesu/CodeBuild/dockerLoginPassword. ImpostatypesuPARAMETER_STORE.Importante
Se utilizzi Amazon EC2 Systems Manager Parameter Store, ti consigliamo di memorizzare i parametri con nomi di parametro che iniziano con
/CodeBuild/(ad esempio,/CodeBuild/dockerLoginPassword). Puoi utilizzare la CodeBuild console per creare un parametro in Amazon EC2 Systems Manager. Selezionare Create a parameter (Crea un parametro), quindi seguire le istruzioni nella finestra di dialogo. (In questa finestra di dialogo, per la chiave KMS, puoi specificare l'ARN di una AWS KMS chiave nel tuo account. Amazon EC2 Systems Manager utilizza questa chiave per crittografare il valore del parametro durante l'archiviazione e decrittografarlo durante il recupero.) Se si utilizza la CodeBuild console per creare un parametro, la console inizia con/CodeBuild/il nome del parametro in cui viene archiviato. Per ulteriori informazioni, consulta la procedura dettagliata di Systems Manager Parameter Store e Systems Manager Parameter Store Console nella Amazon EC2 Systems Manager User Guide.Se il progetto di compilazione fa riferimento a parametri memorizzati in Amazon EC2 Systems Manager Parameter Store, il ruolo di servizio del progetto di compilazione deve consentire l'azione.
ssm:GetParametersSe in precedenza hai scelto Nuovo ruolo di servizio, CodeBuild include questa azione nel ruolo di servizio predefinito per il tuo progetto di compilazione. Tuttavia, se invece hai scelto Existing service role (Ruolo del servizio esistente), devi includere questa operazione al ruolo del servizio separatamente.Se il progetto di compilazione fa riferimento a parametri archiviati in Amazon EC2 Systems Manager Parameter Store con nomi di parametri che non iniziano con
/CodeBuild/e hai scelto Nuovo ruolo di servizio, devi aggiornare quel ruolo di servizio per consentire l'accesso ai nomi dei parametri che non iniziano con/CodeBuild/. Ciò dipende dal fatto che tale ruolo consente l'accesso solo a nomi di parametro che iniziano con/CodeBuild/.Se scegli Nuovo ruolo di servizio, il ruolo del servizio include l'autorizzazione a decrittografare tutti i parametri nel
/CodeBuild/namespace in Amazon EC2 Systems Manager Parameter Store.Le variabili di ambiente impostate sostituiscono quelle esistenti. Ad esempio, se l'immagine Docker contiene già una variabile di ambiente denominata
MY_VARcon un valore dimy_value, e si imposta una variabile di ambiente denominataMY_VARcon un valore diother_value, il valoremy_valueviene sostituito daother_value. Allo stesso modo, se l'immagine Docker contiene già una variabile di ambiente denominataPATHcon un valore di/usr/local/sbin:/usr/local/bin, e si imposta una variabile di ambiente denominataPATHcon un valore di$PATH:/usr/share/ant/bin, il valore di/usr/local/sbin:/usr/local/binviene sostituito dal valore letterale$PATH:/usr/share/ant/bin.Non impostare variabili di ambiente con nomi che iniziano con
CODEBUILD_. Questo prefisso è riservato per l'uso interno .Se una variabile di ambiente con lo stesso nome viene definita in più luoghi, il valore viene determinato come segue:
-
Il valore della chiamata all'operazione di inizio della compilazione ha la massima priorità.
-
Il valore della definizione del progetto di compilazione è il seguente in ordine di priorità.
-
Il valore della dichiarazione buildspec ha la minima priorità.
Se utilizzi Secrets Manager, per
value, imposta il nome del parametro come memorizzato in Secrets Manager. ImpostatypesuSECRETS_MANAGER. Usando un segreto chiamato/CodeBuild/dockerLoginPasswordcome esempio, impostanamesuLOGIN_PASSWORD. Impostavaluesu/CodeBuild/dockerLoginPassword. ImpostatypesuSECRETS_MANAGER.Importante
Se utilizzi Secrets Manager, ti consigliamo di archiviare i segreti con nomi che iniziano con
/CodeBuild/(ad esempio,/CodeBuild/dockerLoginPassword). Per ulteriori informazioni, consulta Che cos'è AWS Secrets Manager? nella Guida per l'utente di AWS Secrets Manager .Se il progetto di compilazione fa riferimento a segreti memorizzati in Secrets Manager, il ruolo di servizio del progetto di compilazione deve consentire l'
secretsmanager:GetSecretValueazione. Se in precedenza hai scelto Nuovo ruolo di servizio, CodeBuild include questa azione nel ruolo di servizio predefinito per il tuo progetto di compilazione. Tuttavia, se invece hai scelto Existing service role (Ruolo del servizio esistente), devi includere questa operazione al ruolo del servizio separatamente.Se il progetto di compilazione fa riferimento a segreti archiviati in Secrets Manager con nomi segreti che non iniziano con
/CodeBuild/e hai scelto Nuovo ruolo di servizio, devi aggiornare il ruolo del servizio per consentire l'accesso ai nomi segreti che non iniziano con/CodeBuild/. Questo perché il ruolo del servizio consente l'accesso solo ai nomi segreti che iniziano con/CodeBuild/.Se si sceglie Nuovo ruolo di servizio, il ruolo di servizio include l'autorizzazione a decrittografare tutti i segreti contenuti nel
/CodeBuild/namespace nel Secrets Manager. -
- ambiente/registryCredential
-
Opzionale. Un RegistryCredential oggetto che specifica le credenziali che forniscono l'accesso a un registro Docker privato.
- environment/registryCredential/credenziale
-
Specifica l'ARN o il nome delle credenziali create utilizzando. AWS Managed Services Puoi utilizzare il nome delle credenziali solo se sono presenti nella regione corrente.
- environment/registryCredential/CredentialProvider
-
L’unico valore valido è
SECRETS_MANAGER.
Quando questo è impostato:
-
imagePullCredentialsdeve essere impostato suSERVICE_ROLE. -
L'immagine non può essere un'immagine curata o un'immagine Amazon ECR.
- ambiente/immagine PullCredentialsType
-
Opzionale. Il tipo di credenziali CodeBuild utilizzate per estrarre le immagini nella build. Esistono due valori validi:
- CODEBUILD
-
CODEBUILDspecifica che CodeBuild utilizza le proprie credenziali. È necessario modificare la politica del repository Amazon ECR per considerare attendibile il principale del servizio. CodeBuild - SERVICE_ROLE
-
Specifica che CodeBuild utilizza il ruolo di servizio del progetto di compilazione.
Quando utilizzi un'immagine di registro condivisa tra account o privata, devi utilizzare le credenziali
SERVICE_ROLE. Quando si utilizza un'immagine CodeBuild curata, è necessario utilizzareCODEBUILDle credenziali. - ambiente/modalità privilegiata
-
Impostato su
truesolo se prevedi di utilizzare questo progetto di compilazione per creare immagini Docker. In caso contrario, tutte le compilazioni associate che tentano di interagire con il daemon Docker avranno esito negativo. È inoltre necessario avviare il daemon Docker in modo che le compilazioni possano interagire con esso. Un modo per fare ciò è inizializzare il daemon Docker nella faseinstalldel file buildspec eseguendo i comandi di compilazione seguenti. Non eseguire questi comandi se è stata specificata un'immagine dell'ambiente di compilazione fornita da CodeBuild con supporto Docker.Nota
Per impostazione predefinita, il demone Docker è abilitato per le build non VPC. Se desideri utilizzare i contenitori Docker per le build VPC, consulta Runtime Privilege and Linux Capabilities
sul sito Web Docker Docs e abilita la modalità privilegiata. Inoltre, Windows non supporta la modalità privilegiata. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
serviceRole
Obbligatorio. L'ARN del ruolo di servizio CodeBuild viene utilizzato per interagire con i servizi per conto dell'utente (ad esempio,arn:aws:iam::).account-id:role/role-name
auto RetryLimit
Opzionale. Il numero di tentativi automatici aggiuntivi dopo una compilazione non riuscita. Ad esempio, se il limite di tentativi automatici è impostato su 2, CodeBuild chiamerà l'RetryBuildAPI per riprovare automaticamente la build per un massimo di 2 volte aggiuntive.
timeout InMinutes
Opzionale. Il numero di minuti, compreso tra 5 e 2160 (36 ore), trascorsi i quali CodeBuild interrompe la compilazione se non è completa. Se non specificato, viene utilizzato il valore predefinito di 60. Per determinare se e quando una compilazione è stata CodeBuild interrotta a causa di un timeout, esegui il batch-get-builds comando. Per determinare se la compilazione si è interrotta, cercare nell'output un valore buildStatus di FAILED. Per determinare quando è scaduta la compilazione, cercare nell'output il valore endTime associato a un valore phaseStatus di TIMED_OUT.
in coda TimeoutInMinutes
Opzionale. Il numero di minuti, compreso tra 5 e 480 (8 ore), trascorsi i quali CodeBuild interrompe la compilazione se è ancora in coda. Se non specificato, viene utilizzato il valore predefinito di 60.
Chiave di crittografia
Opzionale. L'alias o l'ARN AWS KMS key utilizzato da per CodeBuild crittografare l'output della build. Se si specifica un alias, utilizzare il formato arn:aws:kms: oppure, se un alias esiste, utilizzare il formato region-ID:account-ID:key/key-IDalias/. Se non specificato, viene utilizzata la chiave KMS AWS gestita per Amazon S3.key-alias
tag
Opzionale. Una serie di oggetti Tag che forniscono i tag da associare a questo progetto di compilazione. È possibile specificare fino a 50 tag. Questi tag possono essere utilizzati da qualsiasi AWS servizio che supporti i tag del progetto di CodeBuild compilazione. Ogni tag è espresso come un oggetto con a key e avalue.
vpcConfig
Opzionale. Un VpcConfig oggetto che contiene informazioni sulla configurazione VPC per il tuo progetto. Per ulteriori informazioni, consulta Utilizzo AWS CodeBuild con Amazon Virtual Private Cloud.
Queste proprietà includono:
- vpcId
-
Obbligatorio. L'ID VPC che CodeBuild utilizza. Eseguire questo comando per ottenere l'elenco di tutti gli ID VPC nella regione:
aws ec2 describe-vpcs --region<region-ID> - sottoreti
-
Obbligatorio. Una serie di ID di sottorete che includono le risorse utilizzate da. CodeBuild Per ottenere questi ID, eseguire questo comando:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region<region-ID> - sicurezza GroupIds
-
Obbligatorio. Una serie di ID di gruppi di sicurezza utilizzati da CodeBuild per consentire l'accesso alle risorse nel VPC. Per ottenere questi ID, eseguire questo comando:
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --<region-ID>
Badge abilitato
Opzionale. Specifica se includere i badge di costruzione nel progetto. CodeBuild Imposta per true abilitare i badge di compilazione o altro. false Per ulteriori informazioni, consulta Crea un esempio di badge con CodeBuild.
LogsConfig
Un LogsConfig oggetto che contiene informazioni su dove si trovano i log di questa build.
- LogsConfig/ cloud WatchLogs
-
Un CloudWatchLogsConfig oggetto che contiene informazioni sull'invio di log a Logs. CloudWatch
- LogsConfig/ S3logs
-
Un S3LogsConfig oggetto che contiene informazioni sull'invio di log ad Amazon S3.
file SystemLocations
Opzionale. Una serie di ProjectFileSystemsLocation oggetti che contengono informazioni sulla configurazione di Amazon EFS.
costruire BatchConfig
Opzionale. L'buildBatchConfigoggetto è una ProjectBuildBatchConfig struttura che contiene le informazioni di configurazione della compilazione in batch per il progetto.
- buildBatchConfig/ServiceRole
-
Il ruolo di servizio ARN per il progetto di compilazione in batch.
- buildBatchConfig/combineArtifacts
-
Un valore booleano che specifica se combinare gli artefatti di compilazione per la compilazione in batch in un'unica posizione degli artefatti.
- buildBatchConfig/restrictions/massimo BuildsAllowed
-
Il numero massimo di build consentite.
- buildBatchConfig/restrictions/calcola TypesAllowed
-
Array di stringhe che specificano i tipi di calcolo consentiti per la compilazione batch. Vedi Build Environment Compute types per questi valori.
- buildBatchConfig/restrictions/Flotte consentite
-
Una serie di stringhe che specificano le flotte consentite per la compilazione in batch. Per maggiori informazioni, consulta Run builds on reserved capacity fleet.
- build/timeout BatchConfig InMinutes
-
Il tempo massimo, in minuti, entro il quale deve essere completata la compilazione del batch.
- BatchConfigcompilazione/batch ReportMode
-
Specifica la modalità di invio dei rapporti sullo stato di compilazione al provider di origine per la compilazione in batch. I valori validi includono:
REPORT_AGGREGATED_BATCH-
(Impostazione predefinita) Aggrega tutti gli stati di compilazione in un unico rapporto.
REPORT_INDIVIDUAL_BUILDS-
Invia un rapporto distinto per ogni singola compilazione.
concorrente BuildLimit
Il numero massimo di compilazioni simultanee consentite per il progetto.
Le nuove compilazione vengono avviate solo se il numero corrente di compilazioni è minore o uguale a questo limite. Se il conteggio delle compilazioni correnti soddisfa questo limite, le nuove compilazioni vengono limitate e non vengono eseguite.
Creazione del progetto
Per creare il progetto, esegui nuovamente il create-project comando, passando il tuo file JSON:
aws codebuild create-project --cli-input-json file://<json-file>
In caso di successo, la rappresentazione JSON di un oggetto Project viene visualizzata nell'output della console. Vedi la sintassi della CreateProject risposta per un esempio di questi dati.
A eccezione del nome del progetto di compilazione, è possibile modificare tutte le impostazioni del progetto di compilazione in un secondo momento. Per ulteriori informazioni, consulta Modificare le impostazioni di un progetto di compilazione (AWS CLI).
Per avviare l'esecuzione di una compilazione, consulta Esegui una build (AWS CLI).
Se il codice sorgente è archiviato in un GitHub repository e desideri CodeBuild ricostruirlo ogni volta che una modifica al codice viene inviata al repository, consulta. Avvio di esecuzioni di compilazione automaticamente (AWS CLI)
Crea un progetto di compilazione (AWS SDK)
Per informazioni sull'utilizzo AWS CodeBuild con gli AWS SDK, consulta. AWS Riferimento agli SDK e agli strumenti
Crea un progetto di compilazione (CloudFormation)
Per informazioni sull'utilizzo di AWS CodeBuild with CloudFormation, consulta il CloudFormation modello CodeBuild nella Guida per l'AWS CloudFormation utente.