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
È possibile utilizzare la AWS CodeBuild console o AWS SDKs creare un progetto di compilazione. AWS CLI
Argomenti
Prerequisiti
Prima di creare un progetto di compilazione, rispondi alle domande contenute inPianifica una compilazione.
Creare un progetto di compilazione (console)
Apri la AWS CodeBuild console su 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 Crea, scegli Crea progetti, quindi scegli Crea progetto di compilazione.
Scegliere Create build project (Crea progetto di compilazione).
Compila le seguenti sezioni. Una volta completato, scegli Crea progetto di compilazione 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 build 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.
- Costruisci un badge
-
(Facoltativo) Seleziona Abilita il badge di costruzione per rendere visibile e incorporabile lo stato di costruzione del progetto. Per ulteriori informazioni, consulta Creazione di esempi di badge.
Nota
Il badge Build non si applica se il provider 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 creazione simultanea 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. Utilizza i seguenti elenchi per effettuare le selezioni appropriate per il tuo provider di origine:
Nota
CodeBuild non supporta Bitbucket Server.
Ambiente
- Modello di provisioning
-
Esegui una di queste operazioni:
-
Per utilizzare flotte on-demand gestite da AWS CodeBuild, scegli On-demand. Con le flotte on-demand, CodeBuild fornisce elaborazione per le tue build. Le macchine vengono distrutte al termine della costruzione. Le flotte on-demand sono completamente gestite e includono funzionalità di scalabilità automatica per gestire i picchi di domanda.
-
Per utilizzare flotte a capacità riservata gestite da AWS CodeBuild, scegli Capacità riservata, quindi seleziona il nome di una flotta. Con le flotte a capacità riservata, puoi configurare un set di istanze dedicate per il tuo ambiente di costruzione. Queste macchine rimangono inattive, pronte per l'elaborazione immediata di build o test e riducono la durata di costruzione. Con flotte a capacità riservata, le macchine sono sempre in funzione e continueranno a sostenere costi finché verranno rifornite.
Per informazioni, consultare Run si basa su flotte a capacità riservata.
-
- Immagine dell'ambiente
-
Esegui una di queste operazioni:
-
Per utilizzare un'immagine Docker gestita da AWS CodeBuild, scegli Immagine gestita, quindi effettua le selezioni tra 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 ARM, scegli LinuxGPU, Linux o Windows. Se scegli Altro registro, per Registro esterno URL, inserisci il nome e il tag dell'immagine Docker in Docker Hub, utilizzando il formato.
Se scegli Amazon ECR, utilizza il ECRrepository Amazon e ECRl'immagine Amazon per scegliere l'immagine Docker nel tuo AWS account.docker repository
/docker image name
-
Per utilizzare un'immagine Docker privata, scegli Immagine personalizzata. Per Tipo di ambiente ARM, scegli LinuxGPU, Linux o Windows. Per Registro immagini, scegli Altro registro, quindi inserisci le ARN 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
ENTRYPOINT
personalizzate. -
- Calcolo
-
Esegui una di queste operazioni:
-
Per usare EC2 compute, scegli. EC2 EC2compute offre una flessibilità ottimizzata durante le operazioni.
-
Per usare l'elaborazione Lambda, scegli Lambda. L'elaborazione Lambda offre velocità di avvio ottimizzate per le tue build. Lambda supporta build più veloci grazie a una minore latenza di avvio. Lambda inoltre si ridimensiona automaticamente, quindi le build non devono attendere in coda per essere eseguite. Per informazioni, consultare Esegui build in modalità di calcolo AWS Lambda.
-
- Ruolo di servizio
Esegui una di queste 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 hai un ruolo CodeBuild di servizio, scegli Ruolo di servizio esistente. In Ruolo ARN, scegli il ruolo di servizio.
Nota
Quando utilizzi la console per creare un progetto di compilazione, puoi 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
-
- Limite di tentativi automatici
-
Specificate il numero di tentativi automatici aggiuntivi dopo una compilazione non riuscita. Ad esempio, se il limite di tentativi automatici è impostato su 2, CodeBuild chiamerà per
RetryBuild
API riprovare automaticamente la build per un massimo di 2 volte aggiuntive. - Timeout
-
Specificate 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 fare ciò è inizializzare il daemon Docker nella fase
install
delle specifiche di compilazione eseguendo i comandi di compilazione seguenti. Non eseguire questi comandi se hai scelto un'immagine dell'ambiente di compilazione fornita dal supporto Docker. CodeBuildNota
Per impostazione predefinita, il demone Docker è abilitato per le versioni non compilate. VPC Se desideri utilizzare i contenitori Docker per le VPC build, consulta Runtime Privilege e Linux Capabilities sul sito Web di 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 tuoVPC:
-
Per VPC, scegli l'VPCID che CodeBuild utilizza.
-
Per VPCSottoreti, scegli le sottoreti che includono le risorse che utilizza. CodeBuild
-
Per i gruppi VPC di sicurezza, scegli i gruppi di sicurezza da CodeBuild utilizzare per consentire l'accesso alle risorse in. VPCs
Per ulteriori informazioni, consulta Utilizzo AWS CodeBuild con Amazon Virtual Private Cloud.
-
- Calcolo
-
Scegli una delle opzioni disponibili.
- Variabili di ambiente
-
Inserisci il nome e il valore, quindi scegli il tipo di ogni 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, come un ID di 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, per Tipo scegli Parameter. Per Nome, inserisci un identificativo CodeBuild a cui fare riferimento. Per Value, inserisci il nome del parametro memorizzato in Amazon EC2 Systems Manager Parameter Store. Utilizzando un parametro esemplificativo denominato
/CodeBuild/dockerLoginPassword
, per Type (Tipo) selezionare Parameter (Parametro). Per Nome, immettiLOGIN_PASSWORD
. In Valore, specifica/CodeBuild/dockerLoginPassword
.Importante
Se utilizzi Amazon EC2 Systems Manager Parameter Store, ti consigliamo di memorizzare i parametri con nomi di parametri che iniziano con
/CodeBuild/
(ad esempio,/CodeBuild/dockerLoginPassword
). Puoi usare 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 quella finestra di dialogo, per KMSchiave, puoi specificare il valore 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 usi la CodeBuild console per creare un parametro, la console avvia il nome del parametro con il/CodeBuild/
momento in cui viene memorizzato. Per ulteriori informazioni, consulta la procedura dettagliata della console di Systems Manager Parameter Store e Systems Manager Parameter Store nella Guida per l'utente di Amazon EC2 Systems Manager.Se il progetto di compilazione si riferisce a parametri memorizzati in Amazon EC2 Systems Manager Parameter Store, il ruolo di servizio del progetto di compilazione deve consentire l'
ssm:GetParameters
azione. Se in precedenza hai scelto Nuovo ruolo di servizio, CodeBuild include questa azione nel ruolo di servizio predefinito per il tuo progetto di build. Tuttavia, se invece hai scelto Existing service role (Ruolo del servizio esistente), devi includere questa operazione al ruolo del servizio separatamente.Se il tuo progetto di build si riferisce a parametri memorizzati 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 di servizio include l'autorizzazione a decrittografare tutti i parametri nello
/CodeBuild/
spazio dei nomi 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_VAR
con un valore dimy_value
, e si imposta una variabile di ambiente denominataMY_VAR
con un valore diother_value
, il valoremy_value
viene sostituito daother_value
. Allo stesso modo, se l'immagine Docker contiene già una variabile di ambiente denominataPATH
con un valore di/usr/local/sbin:/usr/local/bin
, e si imposta una variabile di ambiente denominataPATH
con un valore di$PATH:/usr/share/ant/bin
, il valore di/usr/local/sbin:/usr/local/bin
viene 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 usi Secrets Manager, per Tipo, scegli Secrets Manager. Per Nome, inserite un identificatore CodeBuild a cui fare riferimento. Per Valore, immettere un
reference-key
utilizzando il modello
. Per informazioni, consultare Secrets Manager reference-key in the buildspec file.secret-id
:json-key
:version-stage
:version-id
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 tuo progetto di build fa riferimento a segreti archiviati in Secrets Manager, il ruolo di servizio del progetto di build deve consentire l'
secretsmanager:GetSecretValue
azione. Se in precedenza hai scelto Nuovo ruolo di servizio, CodeBuild include questa azione nel ruolo di servizio predefinito per il tuo progetto di build. Tuttavia, se invece hai scelto Existing service role (Ruolo del servizio esistente), devi includere questa operazione al ruolo del servizio separatamente.Se il tuo progetto di build 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 di servizio per consentire l'accesso ai nomi segreti che non iniziano con/CodeBuild/
. Questo perché il ruolo di servizio consente l'accesso solo ai nomi segreti che iniziano con/CodeBuild/
.Se scegli Nuovo ruolo di servizio, il ruolo di servizio include l'autorizzazione a decrittografare tutti i segreti nello spazio dei
/CodeBuild/
nomi in Secrets Manager. -
Buildspec
- Specifiche di costruzione
-
Esegui una di queste 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.yml
nella directory principale del codice sorgente. Se il file buildspec utilizza un nome o una posizione diversi, inserisci il percorso dalla radice di origine in Buildspec name (ad esempio, o.buildspec-two.yml
configuration/buildspec.yml
Se il file buildspec si trova in un bucket S3, deve trovarsi nella stessa regione del progetto di build. AWS Specificate il file buildspec utilizzandolo (ad esempio,). ARNarn: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
build
del filebuildspec.yml
nella 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 disponi di un lungo elenco di comandi per labuild
fase, aggiungi unbuildspec.yml
file alla directory principale del codice sorgente, aggiungi i comandi al file e quindi scegli Usa il buildspec.yml nella directory principale del codice sorgente.
Per ulteriori informazioni, consulta la Riferimento per buildspec.
-
Configurazione Batch
È possibile eseguire un gruppo di build come singola operazione. Per ulteriori informazioni, consulta Esegui le build in batch.
- Definire la configurazione in batch
-
Seleziona questa opzione per consentire le compilazioni in batch in questo progetto.
- Ruolo del servizio Batch
-
Fornisce il ruolo di servizio per le build 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 di servizio.
Le build batch introducono un nuovo ruolo di sicurezza nella configurazione batch. Questo nuovo ruolo è obbligatorio in quanto è CodeBuild necessario poter richiamare
StartBuild
StopBuild
, eRetryBuild
le azioni 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 utilizzato nella build, per due motivi:-
L'assegnazione del ruolo
StartBuild
di build eRetryBuild
delle autorizzazioni consentirebbe a una singola build di avviare più build tramite buildspec.StopBuild
-
CodeBuild le build in batch forniscono 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 build dispone di queste autorizzazioni, è possibile che le build stesse possano aggirare queste restrizioni.
-
- Tipi di calcolo consentiti per batch
-
Seleziona i tipi di calcolo consentiti per il batch. Seleziona tutte le risposte pertinenti.
- Numero massimo di build consentite in batch
-
Immettere il numero massimo di build consentite nel batch. Se un batch supera questo limite, il batch avrà esito negativo.
- Timeout del batch
-
Immettere il periodo di tempo massimo per il completamento della creazione del batch.
- Combina artefatti
-
Seleziona Combina tutti gli artefatti del batch in un'unica posizione per combinare tutti gli artefatti del batch in un'unica posizione.
- Modalità report Batch
-
Seleziona la modalità di report sullo stato della build desiderata per le compilazioni in batch.
Nota
Questo campo è disponibile solo quando l'origine del progetto è Bitbucket o GitHub Enterprise e in Origine è selezionato Segnala lo stato della build al fornitore di origine quando le build iniziano e finiscono. GitHub
- Building aggregate
-
Seleziona questa opzione per combinare gli stati di tutte le build del batch in un unico rapporto sullo stato.
- Building individuali
-
Seleziona questa opzione per far sì che gli stati di compilazione di tutte le build del batch vengano riportati separatamente.
Artifacts
- Tipo
-
Esegui una di queste operazioni:
-
Se non si desidera creare alcun artefatto di output di compilazione, scegliere No artifacts (Nessun artefatto). Potresti volerlo fare se stai solo eseguendo test di build o desideri inviare un'immagine Docker a un ECR repository Amazon.
-
Per archiviare l'output della build in un bucket S3, scegli Amazon S3, quindi procedi come segue:
-
Se desideri utilizzare il nome del progetto per il ZIP file o la cartella di output della build, lascia vuoto il campo Nome. In caso contrario, digitare il nome. (Se vuoi generare un ZIP file e vuoi che il ZIP file abbia un'estensione, assicurati di includerla dopo il nome del ZIP file.)
-
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 avete scelto Inserisci comandi di compilazione in precedenza in questa procedura, per i file di output, inserite le posizioni dei file della build che desiderate inserire nel ZIP file o nella cartella di output della build. Per più posizioni, separarne ognuna con una virgola (per esempio,
appspec.yml, target/my-app.jar
). Per ulteriori informazioni, consultare la descrizione difiles
in 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 Chiave di crittografia, inserisci la chiave. ARN 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 e 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 del 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 Creazioni di cache per migliorare le prestazioni.
-
Log
Scegli i log che desideri creare. Puoi creare Amazon CloudWatch Logs, Amazon S3 log o entrambi.
- CloudWatch
-
Se desideri i log di Amazon CloudWatch Logs:
- CloudWatch registri
-
Seleziona i CloudWatch registri.
- Group name (Nome gruppo)
-
Inserisci il nome del tuo gruppo di CloudWatch log Amazon Logs.
- Nome dello stream
-
Inserisci il nome del flusso di CloudWatch log di Amazon Logs.
- S3
-
Se desideri i log di Amazon S3:
- Registri 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 registri S3 siano crittografati.
Creazione di un progetto di compilazione (AWS CLI)
Per ulteriori informazioni sull'utilizzo di AWS CLI with CodeBuild, consulta. Guida di riferimento alla riga di comando
Per creare un progetto di CodeBuild compilazione utilizzando AWS CLI, JSON create una struttura di progetto formattata, compilate la struttura e chiamate il create-project
comando per creare il progetto.
Crea il file JSON
Crea un JSON file scheletro con il create-project
comando, usando l'--generate-cli-skeleton
opzione:
aws codebuild create-project --generate-cli-skeleton >
<json-file>
Questo crea un JSON file con il percorso e il nome di file specificati da <json-file>
.
Compila il JSON file
Modifica i JSON dati 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>
" ] }, "timeoutInMins":<batch-timeout>
, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit":<concurrent-build-limit>
}
Sostituisci quanto segue:
name
Obbligatorio. Il nome di questo progetto di compilazione. Questo nome deve essere univoco per tutti i progetti di build del tuo AWS account.
description
Facoltativo. La descrizione di questo progetto di compilazione.
source (origine)
Obbligatorio. Un ProjectSourceoggetto che contiene informazioni sulle impostazioni del codice sorgente di questo progetto di build. Dopo aver aggiunto un oggetto source
, è possibile aggiungere fino a più di 12 origini utilizzando la secondarySources. 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'buildspec
attributo per specificare una stringa in YAML formato -per il tuo buildspec. Per ulteriori informazioni, consulta Crea un progetto di compilazione senza una fonte. -
- fonte/ ubicazione
-
Richiesto a meno che non sia stato impostato
<source-type>
aCODEPIPELINE
. La posizione del codice sorgente per il tipo di repository specificato.-
Per CodeCommit, il HTTPS clone URL 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 ZIP file che contiene il codice sorgente e la buildspec. Per esempio:
-
Per un ZIP file che si trova nella radice del bucket di input:.
<bucket-name>
/<object-name>
.zip -
Per un ZIP file che si trova in una sottocartella del bucket di input:.
<bucket-name>
/<subfoler-path>
/<object-name>
.zip
-
-
Per GitHub, il HTTPS clone URL del repository che contiene il codice sorgente e il file buildspec. Deve contenere github.com. URL Devi connettere il tuo AWS account al tuo account. 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, clona HTTP o HTTPS clona URL nel repository che contiene il codice sorgente e il file buildspec. È inoltre necessario collegare l' AWS account all'account Enterprise Server. GitHub A tale scopo, utilizzate 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 sul sito Web
di GitHub Help. -
Quando usi la console per creare il tuo CodeBuild progetto, in Source, for Source provider, scegli GitHubEnterprise.
-
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 collegato al tuo account GitHub Enterprise Server.
-
-
Autogestito GitLab e GitLab autogestito, il HTTPS clone URL del repository che contiene il codice sorgente e il file buildspec. Nota che se lo usi GitLab, deve contenere gitlab.com. URL Se usi la GitLab gestione automatica, non è necessario che contenga URL gitlab.com. Devi connettere il tuo AWS account al tuo account o al tuo GitLab account autogestito. GitLab Per fare ciò, usa la CodeBuild console per creare un progetto di compilazione.
-
Nel riquadro di navigazione Strumenti per sviluppatori, scegli Impostazioni, Connessioni, quindi Crea connessione. In questa pagina, crea una connessione GitLab o una connessione GitLab gestita automaticamente, quindi scegli Connetti a GitLab.
-
-
Per Bitbucket, il HTTPS clone URL del repository che contiene il codice sorgente e il file buildspec. Deve contenere URL 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 build. Puoi chiudere la CodeBuild console.)
-
-
Per AWS CodePipeline, non specificare un
location
valore persource
. CodePipeline ignora questo valore perché quando create una pipeline in CodePipeline, specificate la posizione del codice sorgente nella fase Source della pipeline.
-
- fonte/ gitCloneDepth
-
Facoltativo. 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.
- sorgente/ buildspec
-
Facoltativo. 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.yml
nella 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 Specificate il file buildspec utilizzando il suo ARN (ad esempio,).arn:aws:s3:::
Per ulteriori informazioni, consulta Nome del file buildspec e posizione di storage.<my-codebuild-sample2>
/buildspec.yml - fonte/ autenticazione
-
Contiene informazioni sulle impostazioni di autorizzazione per l'accesso CodeBuild al codice sorgente da compilare.
- source/auth/ type
-
Obbligatorio. Il tipo di autorizzazione da utilizzare. I valori validi sono:
-
OAUTH
-
CODECONNECTIONS
-
SECRETS_MANAGER
-
- source/auth/ risorsa
-
Facoltativo. Il valore della risorsa che si applica al tipo di autorizzazione specificato. Può essere il Secrets Manager ARN o il CodeConnections ARN.
- fonte/ reportBuildStatus
-
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.
invalidInputException
Per poter segnalare lo stato della build al provider di origine, l'utente associato al provider di origine deve disporre dell'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/ buildStatusConfig
-
Contiene informazioni che definiscono il modo in cui il progetto di CodeBuild compilazione riporta lo stato della compilazione al fornitore di origine. Questa opzione viene utilizzata solo quando il tipo di origine è
GITHUB
GITHUB_ENTERPRISE
, oBITBUCKET
.- contesto source//buildStatusConfig
-
Per le sorgenti Bitbucket, questo parametro viene utilizzato per il
name
parametro nello stato del commit di Bitbucket. Per GitHub le fonti, questo parametro viene utilizzato per ilcontext
parametro nello stato del commit. GitHubAd esempio, puoi fare in modo che
context
contenga il numero di build e il trigger del webhook utilizzando le variabili di CodeBuild ambiente:AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
Il risultato è che il contesto appare così per la build #24 innescato da un evento di pull request del webhook:
AWS CodeBuild sample-project Build #24 - pr/8
- fonte//buildStatusConfigtargetUrl
-
Per le sorgenti Bitbucket, questo parametro viene utilizzato per il
url
parametro nello stato del commit di Bitbucket. Per GitHub le fonti, questo parametro viene utilizzato per iltarget_url
parametro nello stato del commit. GitHubAd esempio, puoi impostare
targetUrl
tohttps://aws.amazon.com/codebuild/
e lo stato di commit si collegherà a questoURL.<path to build>
È inoltre possibile includere variabili di CodeBuild ambiente in
targetUrl
per aggiungere ulteriori informazioni aURL. Ad esempio, per aggiungere la regione di compilazione aURL, impostatargetUrl
su:"targetUrl": "https://aws.amazon.com/codebuild/
<path to build>
?region=$AWS_REGION"Se l'area di creazione è
us-east-2
, questa si espanderà a:https://aws.amazon.com/codebuild/
<path to build>
?region=us-east-2
- fonte/ gitSubmodulesConfig
-
Facoltativo. Informazioni sulla configurazione dei moduli secondari Git. Utilizzato solo con CodeCommit GitHub, GitHub Enterprise Server e Bitbucket.
- fonte//gitSubmodulesConfigfetchSubmodules
-
Impostare
fetchSubmodules
sutrue
se desideri includere i moduli secondari Git nel repository. I sottomoduli Git inclusi devono essere configurati comeHTTPS.
- fonte/ InsecureSsl
-
Facoltativo. Utilizzato solo con GitHub Enterprise Server. Impostate questo valore su per
true
ignorare TLS gli avvisi durante la connessione al repository del progetto GitHub Enterprise Server. Il valore predefinito èfalse
.InsecureSsl
deve essere utilizzato solo a scopo di test. Non deve essere utilizzato in un ambiente di produzione. - fonte/ sourceIdentifier
-
Un identificatore definito dall'utente per l'origine del progetto. Facoltativo per la fonte principale. Obbligatorio per le fonti secondarie.
secondarySources
Facoltativo. Una serie di ProjectSourceoggetti 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'source (origine)oggetto. In un oggetto di origine secondario, sourceIdentifier
è obbligatorio.
secondarySourceVersions
Facoltativo. Un array di oggetti ProjectSourceVersion. Se secondarySourceVersions
vengono specificate a livello di compilazione, hanno la precedenza su questo.
sourceVersion
Facoltativo. 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 ramo o il tag Git da utilizzare.
-
Ad GitHub esempio, l'ID di commit, l'ID della richiesta pull, il nome del ramo o il nome del tag che corrisponde alla versione del codice sorgente che desideri creare. Se si specifica l'ID di una richiesta pull, deve utilizzare il formato
pr/pull-request-ID
(ad esempiopr/25
). Se viene specificato un nome di ramo, viene utilizzato l'ID di HEAD commit del ramo. Se non viene specificato, viene utilizzato l'ID di HEAD commit del ramo predefinito. -
Per GitLab, l'ID di commit, l'ID della richiesta pull, il nome del ramo, 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 viene specificato il nome di un ramo, viene utilizzato l'ID di HEAD commit del ramo. Se non viene specificato, viene utilizzato l'ID di HEAD commit del ramo predefinito.
-
Per Amazon S3, l'ID di versione dell'oggetto che rappresenta il ZIP file di input della build 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 ProjectArtifactsoggetto che contiene informazioni sulle impostazioni degli artefatti di output di questo progetto di build. Dopo aver aggiunto un oggetto artifacts
, è possibile aggiungere fino a più di 12 artefatti utilizzando la secondaryArtifacts. Queste impostazioni includono quanto segue:
- artefatti/ tipo
-
Obbligatorio. Tipo di artefatto di output della build. I valori validi sono:
-
CODEPIPELINE
-
NO_ARTIFACTS
-
S3
-
- artefatti/ posizione
-
Utilizzato solo con il tipo di artefatto.
S3
Non utilizzato per altri tipi di artefatti.Il nome del bucket di output che hai creato o identificato nei prerequisiti.
- artefatti/ percorso
-
Utilizzato solo con il tipo di artefatto.
S3
Non utilizzato per altri tipi di artefatti.Il percorso all'interno del bucket di output in cui inserire il ZIP file o la cartella. Se non specificate un valore per
path
, CodeBuild utilizzanamespaceType
(se specificato) e pername
determinare il percorso e il nome del ZIP file o della cartella di output della build. Ad esempio, se si specificaMyPath
forpath
eMyArtifact.zip
forname
, il percorso e il nome sarebberoMyPath/MyArtifact.zip
. - artefatti/ namespaceType
-
Utilizzato solo con il tipo di artefatto.
S3
Non utilizzato per altri tipi di artefatti.Lo spazio dei nomi del file o della cartella di output ZIP della build. I valori validi includono
BUILD_ID
eNONE
. UtilizzatoBUILD_ID
per inserire l'ID di build nel percorso del ZIP file o della cartella di output della build. In caso contrario, utilizzareNONE
. Se non specificate un valore pernamespaceType
, CodeBuild utilizzapath
(se specificato) e pername
determinare il percorso e il nome del ZIP file o della cartella di output della build. Ad esempio, se si specificaMyPath
forpath
namespaceType
,BUILD_ID
for eMyArtifact.zip
forname
, il percorso e il nome sarebberoMyPath/
.build-ID
/MyArtifact.zip - artifacts/name
-
Utilizzato solo con il tipo di
S3
artefatto. Non utilizzato per altri tipi di artefatti.Il nome del ZIP file o della cartella di output della build all'interno di.
location
Ad esempio, se si specificaMyPath
forpath
eMyArtifact.zip
forname
, il percorso e il nome sarebberoMyPath/MyArtifact.zip
. - artefatti/ overrideArtifactName
-
Utilizzato solo con il tipo di artefatto S3. Non utilizzato per altri tipi di artefatti.
Facoltativo. Se impostato su
true
, il nome specificato nelartifacts
blocco del file buildspec ha la precedenza.name
Per ulteriori informazioni, consulta Riferimento alle specifiche di costruzione per CodeBuild. - artefatti/ imballaggio
-
Utilizzato solo con il tipo di artefatto.
S3
Non utilizzato per altri tipi di artefatti.Facoltativo. Specifica come impacchettare gli artefatti. I valori consentiti sono:
- NONE
-
Crea una cartella che contenga gli artefatti della build. Si tratta del valore di default.
- ZIP
-
Crea un ZIP file che contenga gli artefatti della build.
secondaryArtifacts
Facoltativo. Una serie di ProjectArtifactsoggetti 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 ProjectCacheoggetto che contiene informazioni sulle impostazioni della cache di questo progetto di build. Per ulteriori informazioni, consulta Compilazioni di cache.
ambiente
Obbligatorio. Un ProjectEnvironmentoggetto 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 APIReference.
- ambiente/ immagine
-
Obbligatorio. L'identificatore dell'immagine Docker utilizzato da questo ambiente di compilazione. In genere, questo identificatore è espresso come
image-name
:tag
. Ad esempio, nel repository Docker che CodeBuild utilizza per gestire le sue immagini Docker, questo potrebbe essere.aws/codebuild/standard:5.0
In Docker Hub,maven:3.3.9-jdk-8
. In AmazonECR,
. Per ulteriori informazioni, consulta Immagini Docker fornite da CodeBuild.account-id
.dkr.ecr.region-id
.amazonaws.com/your-Amazon-ECR-repo-name
:tag
- ambiente/ computeType
-
Obbligatorio. Specifica le risorse di calcolo utilizzate da questo ambiente di compilazione. Per ulteriori informazioni, vedere computeTypenella Guida di riferimento. CodeBuild API
- ambiente/ certificato
-
Facoltativo. Il ARN bucket Amazon S3, il prefisso del percorso e la chiave oggetto che contiene il certificato con codifica. PEM La chiave dell'oggetto può essere solo il file.pem o un file.zip contenente il certificato -encoded. PEM Ad esempio, se il nome del bucket Amazon S3 è
, il prefisso del percorso è e il nome della chiave dell'oggetto è<my-bucket>
<cert>
, allora i formati accettabili per sono o.<certificate.pem>
certificate
<my-bucket/cert/certificate.pem>
arn:aws:s3:::
<my-bucket/cert/certificate.pem>
- ambiente/ environmentVariables
-
Facoltativo. Una matrice di EnvironmentVariableoggetti che contiene le variabili di ambiente che si desidera specificare per questo ambiente di compilazione. Ogni variabile di ambiente è espressa come un oggetto che contiene un
name
value
, etype
ofname
value
, etype
.La console e AWS CLI gli utenti possono visualizzare tutte le variabili di ambiente. Se non avete dubbi sulla visibilità della variabile di ambiente, impostate
name
evalue
impostatetype
suPLAINTEXT
.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. Infatti
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 così come memorizzato nel Parameter Store. Impostatype
suPARAMETER_STORE
. Utilizzando un parametro denominato/CodeBuild/dockerLoginPassword
come esempio, impostaname
suLOGIN_PASSWORD
. Impostavalue
su/CodeBuild/dockerLoginPassword
. Impostatype
suPARAMETER_STORE
.Importante
Se utilizzi Amazon EC2 Systems Manager Parameter Store, ti consigliamo di memorizzare i parametri con nomi di parametri che iniziano con
/CodeBuild/
(ad esempio,/CodeBuild/dockerLoginPassword
). Puoi usare 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 quella finestra di dialogo, per KMSchiave, puoi specificare il valore 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 usi la CodeBuild console per creare un parametro, la console avvia il nome del parametro con il/CodeBuild/
momento in cui viene memorizzato. Per ulteriori informazioni, consulta la procedura dettagliata della console di Systems Manager Parameter Store e Systems Manager Parameter Store nella Guida per l'utente di Amazon EC2 Systems Manager.Se il progetto di compilazione si riferisce a parametri memorizzati in Amazon EC2 Systems Manager Parameter Store, il ruolo di servizio del progetto di compilazione deve consentire l'
ssm:GetParameters
azione. Se in precedenza hai scelto Nuovo ruolo di servizio, CodeBuild include questa azione nel ruolo di servizio predefinito per il tuo progetto di build. Tuttavia, se invece hai scelto Existing service role (Ruolo del servizio esistente), devi includere questa operazione al ruolo del servizio separatamente.Se il tuo progetto di build si riferisce a parametri memorizzati 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 di servizio include l'autorizzazione a decrittografare tutti i parametri nello
/CodeBuild/
spazio dei nomi 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_VAR
con un valore dimy_value
, e si imposta una variabile di ambiente denominataMY_VAR
con un valore diother_value
, il valoremy_value
viene sostituito daother_value
. Allo stesso modo, se l'immagine Docker contiene già una variabile di ambiente denominataPATH
con un valore di/usr/local/sbin:/usr/local/bin
, e si imposta una variabile di ambiente denominataPATH
con un valore di$PATH:/usr/share/ant/bin
, il valore di/usr/local/sbin:/usr/local/bin
viene 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 usi Secrets Manager, for
value
, imposta il nome del parametro come memorizzato in Secrets Manager. Impostatype
suSECRETS_MANAGER
. Utilizzando un segreto denominato/CodeBuild/dockerLoginPassword
come esempio, impostatename
suLOGIN_PASSWORD
. Impostavalue
su/CodeBuild/dockerLoginPassword
. Impostatype
suSECRETS_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 tuo progetto di build fa riferimento a segreti archiviati in Secrets Manager, il ruolo di servizio del progetto di build deve consentire l'
secretsmanager:GetSecretValue
azione. Se in precedenza hai scelto Nuovo ruolo di servizio, CodeBuild include questa azione nel ruolo di servizio predefinito per il tuo progetto di build. Tuttavia, se invece hai scelto Existing service role (Ruolo del servizio esistente), devi includere questa operazione al ruolo del servizio separatamente.Se il tuo progetto di build 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 di servizio per consentire l'accesso ai nomi segreti che non iniziano con/CodeBuild/
. Questo perché il ruolo di servizio consente l'accesso solo ai nomi segreti che iniziano con/CodeBuild/
.Se scegli Nuovo ruolo di servizio, il ruolo di servizio include l'autorizzazione a decrittografare tutti i segreti nello spazio dei
/CodeBuild/
nomi in Secrets Manager. -
- ambiente/ registryCredential
-
Facoltativo. Un RegistryCredentialoggetto che specifica le credenziali che forniscono l'accesso a un registro Docker privato.
- ambiente//credenziale registryCredential
-
Speciifica il nome ARN o il nome delle credenziali create utilizzando. AWS Managed Services Puoi utilizzare il nome delle credenziali solo se sono presenti nella regione corrente.
- ambiente//registryCredentialcredentialProvider
-
L'unico valore valido è
SECRETS_MANAGER
.
Quando questo è impostato:
-
imagePullCredentials
deve essere impostato suSERVICE_ROLE
. -
L'immagine non può essere un'immagine curata o un'ECRimmagine Amazon.
- ambiente/ Tipo imagePullCredentials
-
Facoltativo. Il tipo di credenziali CodeBuild utilizzate per estrarre le immagini nella build. Esistono due valori validi:
- CODEBUILD
-
CODEBUILD
specifica che CodeBuild utilizza le proprie credenziali. È necessario modificare la politica del ECR repository Amazon per considerare affidabile il responsabile del CodeBuild servizio. - SERVICE_ROLE
-
Specifica che CodeBuild utilizza il ruolo di servizio del tuo progetto di build.
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 utilizzareCODEBUILD
le credenziali. - ambiente/ privilegedMode
-
Imposta su
true
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 fare ciò è inizializzare il daemon Docker nella faseinstall
del file buildspec eseguendo i comandi di compilazione seguenti. Non eseguire questi comandi se hai specificato un'immagine dell'ambiente di compilazione CodeBuild fornita dal supporto Docker.Nota
Per impostazione predefinita, il demone Docker è abilitato per le versioni non compilate. VPC Se desideri utilizzare i contenitori Docker per le VPC build, consulta Runtime Privilege e Linux Capabilities sul sito Web di 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. Il ruolo ARN del servizio CodeBuild viene utilizzato per interagire con i servizi per conto dell'utente (ad esempio,arn:aws:iam::
).account-id
:role/role-name
autoRetryLimit
Facoltativo. Il numero di tentativi automatici aggiuntivi dopo una compilazione non riuscita. Ad esempio, se il limite di tentativi automatici è impostato su 2, CodeBuild chiamerà per RetryBuild
API riprovare automaticamente la build per un massimo di 2 volte aggiuntive.
timeoutInMinutes
Facoltativo. 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
.
queuedTimeoutInMinuti
Facoltativo. Il numero di minuti, compreso tra 5 e 480 (8 ore), dopo i quali CodeBuild interrompe la compilazione se è ancora in coda. Se non specificato, viene utilizzato il valore predefinito di 60.
encryptionKey
Facoltativo. L'alias o ARN dell'alias AWS KMS key usato 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-ID
alias/
. Se non specificato, viene utilizzata la KMS chiave AWS gestita per Amazon S3.key-alias
tags
Facoltativo. Una serie di oggetti Tag che forniscono i tag da associare a questo progetto di build. È 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
Facoltativo. Un VpcConfigoggetto che contiene informazioni sulla VPC configurazione del progetto. Per ulteriori informazioni, consulta Utilizzo AWS CodeBuild con Amazon Virtual Private Cloud.
Queste proprietà includono:
- vpcId
-
Obbligatorio. L'VPCID che CodeBuild utilizza. Esegui questo comando per ottenere un elenco di tutti i dati VPC IDs presenti nella tua regione:
aws ec2 describe-vpcs --region
<region-ID>
- sottoreti
-
Obbligatorio. Un array di sottoreti IDs che include le risorse utilizzate da CodeBuild. Esegui questo comando per ottenere questiIDs:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region
<region-ID>
- securityGroupIds
-
Obbligatorio. Una serie di gruppi di sicurezza IDs utilizzati da CodeBuild per consentire l'accesso alle risorse inVPC. Esegui questo comando per ottenere questiIDs:
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=
<vpc-id>
" --<region-ID>
badgeEnabled
Facoltativo. Specifica se includere i badge di costruzione nel progetto. CodeBuild Imposta per true
abilitare i badge di costruzione o altro. false
Per ulteriori informazioni, consulta Crea un esempio di badge con CodeBuild.
logsConfig
Un LogsConfigoggetto che contiene informazioni su dove si trovano i log di questa build.
- logsConfig/cloudWatchLogs
-
Un CloudWatchLogsConfigoggetto che contiene informazioni sull'invio di log a Logs. CloudWatch
- logsConfig/S3logs
-
Un LogsConfig oggetto S3 che contiene informazioni sull'invio di log ad Amazon S3.
fileSystemLocations
Facoltativo. Una serie di ProjectFileSystemsLocationoggetti che contiene informazioni sulla tua configurazione AmazonEFS.
buildBatchConfig
Facoltativo. L'buildBatchConfig
oggetto è una ProjectBuildBatchConfigstruttura che contiene le informazioni di configurazione della build 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 elementi di compilazione per la creazione in batch in un'unica posizione dell'artefatto.
- buildBatchConfig/restrizioni/ maximumBuildsAllowed
-
Il numero massimo di build consentite.
- buildBatchConfig/restrizioni/ computeTypesAllowed
-
Array di stringhe che specificano i tipi di calcolo consentiti per la compilazione batch. Vedi Tipi di calcolo dell'ambiente di compilazione per questi valori.
- buildBatchConfig/timeoutInMinutes
-
Il tempo massimo, in minuti, entro il quale la compilazione in batch deve essere completata.
- buildBatchConfig/batchReportMode
-
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.
concurrentBuildLimit
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 JSON file:
aws codebuild create-project --cli-input-json file://
<json-file>
In caso di successo, la JSON rappresentazione di un oggetto Project viene visualizzata nell'output della console. Vedi la sintassi di 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 Modifica delle impostazioni di un progetto di compilazione (AWS CLI).
Per avviare l'esecuzione di una compilazione, consulta Esecuzione di una compilazione (AWS CLI).
Se il codice sorgente è archiviato in un GitHub repository e desideri CodeBuild ricostruirlo ogni volta che viene inserita una modifica al codice nel repository, consulta. Avvio di esecuzioni di compilazione automaticamente (AWS CLI)
Creazione di un progetto di compilazione (AWS SDKs)
Per informazioni sull'utilizzo AWS CodeBuild con, consulta la AWS SDKs. Riferimento per strumenti e SDK AWS
Creazione di un progetto di compilazione (AWS CloudFormation)
Per informazioni sull'utilizzo AWS CodeBuild con AWS CloudFormation, consultate il AWS CloudFormation modello disponibile CodeBuild nella Guida per l'AWS CloudFormation utente.