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
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 Crie um pipeline em CodePipeline.
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. -
As implantações azul/verde do Amazon ECS requerem um arquivo
imageDetail.json
como entrada para a ação de implantação.-
Ações de origem do Amazon ECR geram um arquivo
imageDetail.json
, que é fornecido como uma saída da ação de origem.
-
Tópicos
Arquivo imagedefinitions.json para ações de implantação padrão do Amazon ECS
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_name |
imageUri | imageUri |
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
.
-
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.
-
Escolha uma das seguintes opções:
-
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.
-
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çãopost_build
do arquivobuildspec.yml
:printf '[{"name":"
container_name
","imageUri":"image_URI
"}]' > imagedefinitions.jsonVocê deve incluir o arquivo de definições de imagem como artefato de saída no arquivo
buildspec.yml
.
-
-
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.
Arquivo imageDetail.json para ações de implantação azul/verde do Amazon ECS
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 implantação azul/verde, deverá gerar o arquivo imageDetail.json
para fornecer ao Amazon ECS e ao funcionário a identificação da imagem a CodeDeploy 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 CodeDeploy azul esverdeado.
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 arquivo
imageDetail.json
no local de origem para que seja fornecido no pipeline como entrada para a ação de implantação azul/verde 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 Amazon ECR e uma implantação de ECS para- CodeDeploy .
![](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_URI |
Antes de criar o pipeline, use as etapas a seguir para configurar o arquivo imageDetail.json
.
-
Como parte do planejamento de implantação de aplicativos baseados em contêiner azul/verde para o pipeline, planeje o estágio de origem e o estágio de compilação, se aplicável.
-
Escolha uma das seguintes opções:
-
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 arquivoimageDetail.json
para o repositório de origem. -
Se o pipeline tiver um estágio de compilação, execute o seguinte:
-
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çãopost_build
do arquivo buildspec.yml:printf '{"ImageURI":"
image_URI
"}' > imageDetail.jsonVocê deve incluir o arquivo
imageDetail.json
como um artefato de saída no arquivobuildspec.yml
. -
Adicione o
imageDetail.json
como artefato no arquivobuildspec.yml
.artifacts: files: - imageDetail.json
-
-