

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Referência de arquivo de definições de imagem
<a name="file-reference"></a>

Esta seção é apenas uma referência. Para obter informações sobre a criação de um pipeline com origem ou implantar ações para contêineres, consulte [Criar um pipeline, estágios e ações](pipelines-create.md).

AWS CodePipeline trabalhadores que trabalham para ações de contêiner, como uma ação de origem do Amazon ECR ou ações de implantação do Amazon ECS, usam arquivos de definições para mapear o URI da imagem e o nome do contêiner para a definição da tarefa. Cada arquivo de definições é um arquivo em formato JSON usado pelo provedor de ação da seguinte forma:
+ As implantações padrão do Amazon ECS requerem um arquivo `imagedefinitions.json` como entrada para a ação de implantação. Para obter um tutorial que usa a ação de implantação padrão do Amazon ECS em CodePipeline, consulte[Tutorial: Implantação padrão do Amazon ECS com CodePipeline](ecs-cd-pipeline.md). Para ver outro exemplo de tutorial que usa a ação de implantação padrão do Amazon ECS CodePipeline junto com a ECRBuild AndPublish ação, consulte[Tutorial: Crie e envie uma imagem do Docker para o Amazon ECR com CodePipeline (tipo V2)](tutorials-ecr-build-publish.md).
+  blue/green As implantações do Amazon ECS exigem um `imageDetail.json` arquivo como entrada para a ação de implantação. Para ver um tutorial com um exemplo blue/green de implantação, consulte[Tutorial: Crie um pipeline com uma fonte e ECS-to-CodeDeploy implantação do Amazon ECR](tutorials-ecs-ecr-codedeploy.md).
  + Ações de origem do Amazon ECR geram um arquivo `imageDetail.json`, que é fornecido como uma saída da ação de origem.

**Topics**
+ [Arquivo imagedefinitions.json para ações de implantação padrão do Amazon ECS](#pipelines-create-image-definitions)
+ [Arquivo ImageDetail.json para ações de implantação do Amazon ECS blue/green](#file-reference-ecs-bluegreen)

## Arquivo imagedefinitions.json para ações de implantação padrão do Amazon ECS
<a name="pipelines-create-image-definitions"></a>

Um documento de definições de imagem é um arquivo JSON que descreve o nome de contêiner, a imagem e a tag do Amazon ECS. Se você estiver implantando aplicativos baseados em contêineres, deverá gerar um arquivo de definições de imagem para fornecer ao funcionário o CodePipeline contêiner do Amazon ECS e a identificação da imagem para recuperar do repositório de imagens, como o Amazon ECR.

**nota**  
O nome do arquivo padrão para o arquivo é `imagedefinitions.json`. Se você optar por usar um nome de arquivo diferente, você deve fornecê-lo ao criar o estágio de implantação do pipeline.

Crie o arquivo `imagedefinitions.json` considerando o seguinte:
+ O arquivo deve usar a codificação UTF-8.
+ O limite máximo de tamanho de um arquivo de definições de imagem é 100 KB.
+ Você deve criar o arquivo como origem ou artefato de compilação para que ele seja um artefato de entrada para a ação de implantação. Em outras palavras, certifique-se de que o arquivo seja carregado no local de origem, como seu CodeCommit repositório, ou gerado como um artefato de saída criado.

O arquivo `imagedefinitions.json` fornece o nome do contêiner e o URI da imagem. Ele deve ser construído com o seguinte conjunto de pares de chave/valor.


| Chave | Valor | 
| --- | --- | 
| name | container\$1name | 
| imageUri | imageUri | 

**nota**  
O campo nome é usado para o nome da imagem do contêiner, ou seja, o nome da imagem do Docker.

Aqui está a estrutura JSON, na qual o nome do contêiner é `sample-app`. O URI da imagem é `ecs-repo` e a tag é `latest`:

```
[
  {
    "name": "sample-app",
    "imageUri": "11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest"
  }
]
```

Você também pode construir o arquivo para listar vários pares de contêiner-imagem. 

Estrutura do JSON:

```
[
  {
    "name": "simple-app",
    "imageUri": "httpd:2.4"
  },
  {
    "name": "simple-app-1",
    "imageUri": "mysql"
  },
  {
    "name": "simple-app-2",
    "imageUri": "java1.8"
  }
]
```

Antes de criar o pipeline, use as etapas a seguir para configurar o arquivo `imagedefinitions.json`.

1. Como parte do planejamento de implantação de aplicativos baseados em contêiner para o pipeline, planejar o estágio de origem e o estágio de compilação, se aplicável.

1. Escolha uma das seguintes opções:

   1.  Se o pipeline foi projetado para ignorar o estágio de compilação, será necessário criar o arquivo JSON manualmente e submetê-lo a upload para o repositório de origem a fim de que a ação de origem possa fornecer o artefato. Crie o arquivo usando um editor de texto, atribua um nome ao arquivo ou use o nome de arquivo padrão `imagedefinitions.json`. Envie o arquivo de definições de imagem ao repositório de origem.
**nota**  
Se o repositório de origem for um bucket do Amazon S3, lembre-se de compactar o arquivo JSON.

   1. Se o pipeline tiver um estágio de compilação, adicione um comando ao arquivo de especificações de compilação que gere o arquivo de definições de imagem em seu repositório de origem durante a fase de compilação. O exemplo a seguir usa o comando **printf** para criar um arquivo `imagedefinitions.json`. Liste esse comando na seção `post_build` do arquivo `buildspec.yml`:

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

      Você deve incluir o arquivo de definições de imagem como artefato de saída no arquivo `buildspec.yml`.

1. Ao criar o pipeline no console, na página **Deploy (Implantar)** do assistente **Create Pipeline (Criar pipeline)**, em **Image Filename (Nome da imagem)**, insira o nome de arquivo de definições da imagem.

Para ver um step-by-step tutorial sobre a criação de um pipeline que usa o Amazon ECS como provedor de implantação, consulte [Tutorial: Implantação contínua com CodePipeline](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html).

## Arquivo ImageDetail.json para ações de implantação do Amazon ECS blue/green
<a name="file-reference-ecs-bluegreen"></a>

Um documento `imageDetail.json` é um arquivo JSON que descreve o URI da imagem do Amazon ECS. Se você estiver implantando aplicativos baseados em contêineres para uma blue/green implantação, deverá gerar o `imageDetail.json` arquivo para fornecer ao Amazon ECS e CodeDeploy ao funcionário a identificação da imagem a ser recuperada do repositório de imagens, como o Amazon ECR.

**nota**  
O nome do arquivo deve ser `imageDetail.json`.

Para obter uma descrição da ação e respectivos parâmetros, consulte [Amazon Elastic Container Service e referência de ação de implantação CodeDeploy azul-verde](action-reference-ECSbluegreen.md).

Você deve criar o arquivo `imageDetail.json` como origem ou artefato de compilação para que ele seja um artefato de entrada para a ação de implantação. Você pode usar um destes métodos para fornecer o arquivo `imageDetail.json` no pipeline: 
+ Inclua o `imageDetail.json` arquivo em seu local de origem para que ele seja fornecido no pipeline como entrada para sua ação de blue/green implantação do Amazon ECS.
**nota**  
Se o repositório de origem for um bucket do Amazon S3, lembre-se de compactar o arquivo JSON.
+ Ações de origem do Amazon ECR geram automaticamente um arquivo `imageDetail.json` como artefato de entrada para a próxima ação.
**nota**  
Como a ação de origem do Amazon ECR cria esse arquivo, os pipelines com uma ação de origem do Amazon ECR não precisam fornecer um arquivo `imageDetail.json` manualmente.   
Para obter um tutorial sobre a criação de um pipeline que inclua um estágio de origem do Amazon ECR, consulte [Tutorial: Crie um pipeline com uma fonte e ECS-to-CodeDeploy implantação do Amazon ECR](tutorials-ecs-ecr-codedeploy.md).

![\[Diagrama mostrando o arquivo imageDetail.json contido no bucket de artefatos\]](http://docs.aws.amazon.com/pt_br/codepipeline/latest/userguide/images/imageDetail_file_diagram.png)


O arquivo `imageDetail.json` fornece o URI da imagem. Ele deve ser construído com o seguinte par de chave/valor.


| Chave | Valor | 
| --- | --- | 
| ImageURI | image\$1URI | 

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

Esta é a estrutura JSON, em que o URI da imagem é `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) ]

Um arquivo `imageDetail.json` é gerado automaticamente pela ação de origem do Amazon ECR cada vez que uma alteração é enviada por push ao repositório de imagens. O `imageDetail.json` gerado por ações de origem do Amazon ECR é fornecido como um artefato de saída da ação de origem para a próxima ação no pipeline.

Esta é a estrutura JSON, em que o nome do repositório é `dk-image-repo`, o URI da imagem é `ecs-repo`, e a tag de imagem é `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"
    ]
}
```

O arquivo `imageDetail.json` mapeia o URI da imagem e nome do contêiner para a definição de tarefa do Amazon ECS da seguinte maneira:
+ `ImageSizeInBytes`: O tamanho, em bytes, da imagem no repositório.
+ `ImageDigest`: A compilação `sha256` do manifesto da imagem.
+ `Version`: A versão da imagem.
+ `ImagePushedAt`: A data e a hora em que a última imagem foi enviada ao repositório.
+ `RegistryId`: a ID da AWS conta associada ao registro que contém o repositório.
+ `RepositoryName`: o nome do repositório do Amazon ECR ao qual a imagem foi enviada por push.
+ `ImageURI`: O URI para a imagem.
+ `ImageTags`: A tag usada para a imagem.

------

Antes de criar o pipeline, use as etapas a seguir para configurar o arquivo `imageDetail.json`.

1. Como parte do planejamento da blue/green implantação do aplicativo baseado em contêiner para seu pipeline, planeje o estágio de origem e o estágio de construção, se aplicável.

1. Escolha uma das seguintes opções:

   1.  Se seu pipeline pulou o estágio de construção, você deve criar manualmente o arquivo JSON e carregá-lo no seu repositório de origem, por exemplo, para que a ação de origem possa fornecer o artefato. CodeCommit Crie o arquivo usando um editor de texto, atribua um nome ao arquivo ou use o nome de arquivo padrão `imageDetail.json`. Envie o arquivo `imageDetail.json` para o repositório de origem.

   1. Se o pipeline tiver um estágio de compilação, execute o seguinte:

      1. Adicione um comando ao arquivo de especificações de compilação que gere o arquivo de definições de imagem em seu repositório de origem durante a fase de compilação. O exemplo a seguir usa o comando **printf** para criar um arquivo `imageDetail.json`. Liste esse comando na seção `post_build` do arquivo buildspec.yml:

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

         Você deve incluir o arquivo `imageDetail.json` como um artefato de saída no arquivo `buildspec.yml`.

      1. Adicione o `imageDetail.json` como artefato no arquivo `buildspec.yml`.

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