

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
<a name="file-reference"></a>

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](pipelines-create.md).

AWS CodePipeline i job worker per le azioni relative ai container, come un'azione sorgente Amazon ECR o le azioni di distribuzione di Amazon ECS, utilizzano i file delle definizioni per mappare l'URI dell'immagine e il nome del contenitore alla definizione dell'attività. Ogni file di definizioni è un file in formato JSON utilizzato dal provider di operazioni come segue:
+ Le distribuzioni standard di Amazon ECS richiedono un `imagedefinitions.json` file come input per l'azione di distribuzione. Per un tutorial che utilizza l'azione di distribuzione standard di Amazon ECS in CodePipeline, consulta[Tutorial: distribuzione standard di Amazon ECS con CodePipeline](ecs-cd-pipeline.md). Per un altro esempio di tutorial che utilizza l'azione di distribuzione standard di Amazon ECS CodePipeline insieme all' ECRBuildAndPublish azione, consulta[Tutorial: crea e invia un'immagine Docker ad Amazon ECR con CodePipeline (tipo V2)](tutorials-ecr-build-publish.md).
+ Le blue/green distribuzioni di Amazon ECS richiedono un `imageDetail.json` file come input per l'azione di distribuzione. Per un tutorial con una distribuzione di esempio blue/green , consulta. [Tutorial: crea una pipeline con una sorgente e una distribuzione Amazon ECR ECS-to-CodeDeploy](tutorials-ecs-ecr-codedeploy.md)
  + Le operazioni di origine Amazon ECR generano un file `imageDetail.json` file che viene fornito come un output dall’operazione di origine.

**Topics**
+ [file imagedefinitions.json per le azioni di distribuzione standard di Amazon ECS](#pipelines-create-image-definitions)
+ [File ImageDetail.json per le azioni di distribuzione di Amazon ECS blue/green](#file-reference-ecs-bluegreen)

## file imagedefinitions.json per le azioni di distribuzione standard di Amazon ECS
<a name="pipelines-create-image-definitions"></a>

Un documento di definizioni delle immagini è un file JSON che descrive il nome del contenitore Amazon ECS, 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 contenitore Amazon ECS 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 UTF-8.
+ 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 file `imagedefinitions.json` fornisce il nome del container e l'URI dell'immagine. Deve essere costruito con il seguente set di coppie chiave-valore.


| Chiave | Valore | 
| --- | --- | 
| nome | container\$1name | 
| imageUri | imageUri | 

**Nota**  
Il campo name viene utilizzato per il nome dell'immagine del contenitore, ovvero il nome dell'immagine Docker.

Di seguito è riportata la struttura JSON, in cui il nome del container è `sample-app`, l'URI dell'immagine è `ecs-repo` e il tag è `latest`:

```
[
  {
    "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. 

Struttura JSON:

```
[
  {
    "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`.

1. 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.

1. Seleziona una delle seguenti opzioni:

   1.  Se la pipeline è stata creata in modo da saltare la fase di compilazione, è necessario creare manualmente il file JSON 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.

   1. 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 sezione `post_build` del file `buildspec.yml`:

      ```
      printf '[{"name":"container_name","imageUri":"image_URI"}]' >
      imagedefinitions.json
      ```

      Il file di definizioni delle immagini deve essere incluso come un artefatto di output nel file `buildspec.yml`.

1. 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 provider di distribuzione, consulta [Tutorial: Continuous Deployment with](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html). CodePipeline

## File ImageDetail.json per le azioni di distribuzione di Amazon ECS blue/green
<a name="file-reference-ecs-bluegreen"></a>

Un `imageDetail.json` documento è un file JSON che descrive l'URI dell'immagine Amazon ECS. Se stai distribuendo applicazioni basate su container per una blue/green distribuzione, devi generare il `imageDetail.json` file per fornire ad Amazon ECS e al CodeDeploy job worker l'identificazione dell'immagine da recuperare dal repository 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](action-reference-ECSbluegreen.md)

È 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 l'azione di blue/green distribuzione di Amazon ECS.
**Nota**  
Se il tuo repository di origine è un bucket Amazon S3, ricordati di comprimere il file JSON.
+ Le azioni sorgente di Amazon ECR generano automaticamente un `imageDetail.json` file come elemento di input per l'azione successiva.
**Nota**  
Poiché l'azione di origine di Amazon ECR crea questo file, le pipeline con un'azione di origine Amazon ECR non devono fornire manualmente un file. `imageDetail.json`   
Per un tutorial sulla creazione di una pipeline che includa una fase sorgente di Amazon ECR, consulta. [Tutorial: crea una pipeline con una sorgente e una distribuzione Amazon ECR ECS-to-CodeDeploy](tutorials-ecs-ecr-codedeploy.md)

![\[Diagramma che mostra il file ImageDetail.json contenuto nel bucket degli artefatti\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/imageDetail_file_diagram.png)


Il file `imageDetail.json` fornisce l'URI dell'immagine. Deve essere costruito con la seguente coppia chiave-valore.


| Chiave | Valore | 
| --- | --- | 
| ImageURI | image\$1URI | 

------
#### [ imageDetail.json ]

Questa è la struttura JSON, che contiene l'URI dell'immagine `ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3`:

```
{
"ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3"
}
```

------
#### [ imageDetail.json (generated by ECR) ]

Un `imageDetail.json` file viene generato automaticamente dall'azione sorgente di Amazon ECR ogni volta che una modifica viene inserita nell'archivio di immagini. Le azioni di origine `imageDetail.json` generate da Amazon ECR vengono fornite come artefatto di output dall'azione di origine all'azione successiva nella pipeline.

Questa è la struttura JSON, dove il nome del repository è `dk-image-repo`, l'URI dell'immagine è `ecs-repo` e il tag dell'immagine è `latest`:

```
{
    "ImageSizeInBytes": "44728918",
    "ImageDigest": "sha256:EXAMPLE11223344556677889900bfea42ea2d3b8a1ee8329ba7e68694950afd3",
    "Version": "1.0",
    "ImagePushedAt": "Mon Jan 21 20:04:00 UTC 2019",
    "RegistryId": "EXAMPLE12233",
    "RepositoryName": "dk-image-repo",
    "ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3",
    "ImageTags": [
        "latest"
    ]
}
```

Il `imageDetail.json` file mappa l'URI dell'immagine e il nome del contenitore alla definizione del task Amazon ECS come segue:
+ `ImageSizeInBytes`: le dimensioni in byte dell'immagine nel repository.
+ `ImageDigest`: il file digest `sha256` del manifest delle immagini.
+ `Version`: la versione dell'immagine.
+ `ImagePushedAt`: la data e l'ora in cui l'immagine più recente è stata inviata al repository.
+ `RegistryId`: l'ID AWS dell'account associato al registro che contiene il repository.
+ `RepositoryName`: il nome del repository Amazon ECR in cui è stata inserita l'immagine.
+ `ImageURI`: l'URI dell'immagine.
+ `ImageTags`: il tag utilizzato per l'immagine.

------

Prima di creare la pipeline, utilizza la procedura descritta di seguito per impostare il file `imageDetail.json`.

1. Come parte della pianificazione della blue/green distribuzione delle applicazioni basate su container per la tua pipeline, pianifica la fase di origine e la fase di creazione, se applicabile.

1. Seleziona una delle seguenti opzioni:

   1.  Se la pipeline ha saltato la fase di creazione, è necessario creare manualmente il file JSON e caricarlo nel repository di origine, ad esempio in modo che l'azione di origine possa fornire l' CodeCommitartefatto. Crea il file utilizzando un editor di testo e assegna un nome al file o utilizza il nome file predefinito `imageDetail.json`. Invia il file `imageDetail.json` al repository di origine.

   1. Se la pipeline ha una fase di compilazione, esegui questa procedura:

      1. 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 sezione `post_build` del file buildspec.yml:

         ```
         printf '{"ImageURI":"image_URI"}' > imageDetail.json
         ```

         È necessario includere il file `imageDetail.json` come un artefatto di output nel file`buildspec.yml`.

      1. Aggiungi il file `imageDetail.json` come file dell'artefatto nel file `buildspec.yml`.

         ```
         artifacts:
           files:
             - imageDetail.json
         ```