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à.
Riferimento per il file di definizioni delle immagini
Questa sezione è solo per riferimento. Per ulteriori informazioni su come creare una pipeline con l'origine o distribuire operazioni di distribuzione per container, consulta Crea una pipeline, fasi e azioni.
AWS CodePipeline i job worker per le azioni relative ai container, come Amazon ECR source action o Amazon ECS deploy actions, utilizzano i file delle definizioni per mappare l'immagine URI e il nome del contenitore alla definizione dell'attività. Ogni file di definizioni è un file in JSON formato -utilizzato dal provider di azioni come segue:
-
ECSLe distribuzioni standard di Amazon richiedono un
imagedefinitions.json
file come input per l'azione di distribuzione. Per un tutorial che utilizza l'azione di distribuzione ECS standard di Amazon in CodePipeline, consultaTutorial: distribuzione ECS standard di Amazon con CodePipeline. -
Le distribuzioni di Amazon ECS blu/green richiedono un
imageDetail.json
file come input per l'azione di distribuzione. Per un tutorial con un esempio di implementazione blu/verde, consulta. Tutorial: crea una pipeline con un ECR codice sorgente Amazon e la ECS relativa distribuzione CodeDeploy-
Le azioni di ECR origine di Amazon generano un
imageDetail.json
file che viene fornito come output dall'azione di origine.
-
Argomenti
file imagedefinitions.json per le azioni di distribuzione standard di Amazon ECS
Un documento di definizione delle immagini è un JSON file che descrive il nome del ECS contenitore Amazon, l'immagine e il tag. Se stai distribuendo applicazioni basate su container, devi generare un file di definizioni delle immagini per fornire al CodePipeline job worker il ECS contenitore Amazon e l'identificazione dell'immagine da recuperare dal repository di immagini, come Amazon. ECR
Nota
Il nome file predefinito è imagedefinitions.json
. Se scegli di utilizzare un nome di file diverso, è necessario fornirlo quando la fase di distribuzione della pipeline.
Crea il file imagedefinitions.json
con le seguenti considerazioni:
-
Il file deve utilizzare la codifica -8. UTF
-
Il limite massimo delle dimensioni del file di definizioni delle immagini è di 100 KB.
-
È necessario creare il file come un artefatto di origine o di compilazione in modo che sia un artefatto di input per l'operazione di distribuzione. In altre parole, assicuratevi che il file sia caricato nella posizione di origine, ad esempio nel CodeCommit repository, o generato come elemento di output integrato.
Il imagedefinitions.json
file fornisce il nome e l'immagine del contenitore. URI Deve essere costruito con il seguente set di coppie chiave-valore.
Chiave | Valore |
---|---|
nome | container_name |
imageUri | imageUri |
Nota
Il campo name viene utilizzato per il nome dell'immagine del contenitore, ovvero il nome dell'immagine Docker.
Ecco la JSON struttura, dove si trovano il nome del contenitore sample-app
ecs-repo
, URI l'immagine e il latest
tag:
[ { "name": "sample-app", "imageUri": "11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest" } ]
È anche possibile costruire il file per elencare più coppie container-immagine.
JSONstruttura:
[ { "name": "simple-app", "imageUri": "httpd:2.4" }, { "name": "simple-app-1", "imageUri": "mysql" }, { "name": "simple-app-2", "imageUri": "java1.8" } ]
Prima di creare la pipeline, utilizza la procedura descritta di seguito per impostare il file imagedefinitions.json
.
-
Come parte della pianificazione della distribuzione dell'applicazione basata su container per la pipeline, pianifica la fase di origine e la fase di compilazione, se applicabili.
-
Seleziona una delle seguenti opzioni:
-
Se la pipeline è stata creata in modo da saltare la fase di compilazione, è necessario creare manualmente il JSON file e caricarlo nel repository di origine in modo che l'azione sorgente possa fornire l'artefatto. Crea il file utilizzando un editor di testo e assegna un nome al file o utilizza il nome file predefinito
imagedefinitions.json
. Esegui il push del file di definizioni delle immagini nel repository di origine.Nota
Se il tuo repository di origine è un bucket Amazon S3, ricordati di comprimere il file. JSON
-
Se la pipeline dispone di una fase di compilazione, aggiungi un comando al file delle specifiche di compilazione che genera il file di definizioni delle immagini nel repository di origine durante la fase di compilazione. L'esempio seguente usa il comando printf per creare un file
imagedefinitions.json
. Elencare il comando nella sezionepost_build
del filebuildspec.yml
:printf '[{"name":"
container_name
","imageUri":"image_URI
"}]' > imagedefinitions.jsonIl file di definizioni delle immagini deve essere incluso come un artefatto di output nel file
buildspec.yml
.
-
-
Quando si crea la pipeline nella console, nella pagina Deploy (Distribuzione) della procedura guidata Create Pipeline (Creazione pipeline) in Image Filename (Nome file immagini) immettere il nome del file di definizioni delle immagini.
Per un step-by-step tutorial sulla creazione di una pipeline che utilizza Amazon ECS come fornitore di distribuzione, consulta Tutorial: Continuous Deployment with CodePipeline.
imageDetailfile.json per le azioni di distribuzione di Amazon ECS blue/green
Un imageDetail.json
documento è un JSON file che descrive la tua ECS immagine AmazonURI. Se stai distribuendo applicazioni basate su container per una distribuzione blu/verde, devi generare il file per fornire imageDetail.json
ad Amazon ECS e a CodeDeploy Job Worker l'identificazione dell'immagine da recuperare dall'archivio di immagini, come Amazon. ECR
Nota
Il nome del file deve essere imageDetail.json
.
Per una descrizione dell'azione e dei relativi parametri, consulta. Riferimento alle azioni di distribuzione di Amazon Elastic Container Service e CodeDeploy blue-green
È necessario creare il file imageDetail.json
come un artefatto di origine o di compilazione in modo che sia un artefatto di input per l'operazione di distribuzione. Puoi utilizzare uno di questi metodi per fornire il file imageDetail.json
nella pipeline:
-
Includi il
imageDetail.json
file nella posizione di origine in modo che venga fornito nella pipeline come input per la tua azione di distribuzione di Amazon ECS blu/green.Nota
Se il tuo repository di origine è un bucket Amazon S3, ricordati di comprimere il file. JSON
-
Le azioni di ECR origine di Amazon generano automaticamente un
imageDetail.json
file come elemento di input per l'azione successiva.Nota
Poiché l'azione ECR sorgente di Amazon crea questo file, le pipeline con un'azione di ECR origine Amazon non devono fornire manualmente un
imageDetail.json
file.Per un tutorial sulla creazione di una pipeline che includa una fase ECR sorgente Amazon, consultaTutorial: crea una pipeline con un ECR codice sorgente Amazon e la ECS relativa distribuzione CodeDeploy .
Il file fornisce l'immagine. imageDetail.json
URI Deve essere costruito con la seguente coppia chiave-valore.
Chiave | Valore |
---|---|
Immagine URI | image_URI |
Prima di creare la pipeline, utilizza la procedura descritta di seguito per impostare il file imageDetail.json
.
-
Come parte della pianificazione della distribuzione blu/verde dell'applicazione basata su container per la pipeline, pianifica la fase di origine e la fase di compilazione, se applicabili.
-
Seleziona una delle seguenti opzioni:
-
Se la pipeline ha saltato la fase di creazione, è necessario creare manualmente il JSON file e caricarlo nel repository di origine, ad esempio in modo che l'azione sorgente possa fornire l'artefatto. CodeCommit Crea il file utilizzando un editor di testo e assegna un nome al file o utilizza il nome file predefinito
imageDetail.json
. Invia il fileimageDetail.json
al repository di origine. -
Se la pipeline ha una fase di compilazione, esegui questa procedura:
-
Aggiungi un comando al file delle specifiche di compilazione che genera il file di definizioni delle immagini nel repository di origine durante la fase di compilazione. L'esempio seguente usa il comando printf per creare un file
imageDetail.json
. Elenca questo comando nella sezionepost_build
del file buildspec.yml:printf '{"ImageURI":"
image_URI
"}' > imageDetail.jsonÈ necessario includere il file
imageDetail.json
come un artefatto di output nel filebuildspec.yml
. -
Aggiungi il file
imageDetail.json
come file dell'artefatto nel filebuildspec.yml
.artifacts: files: - imageDetail.json
-
-