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, estágios e ações.
AWS CodePipeline trabalhadores que trabalham para ações de contêiner, como uma ação de ECR origem da Amazon ou ações de ECS implantação da Amazon, usam arquivos de definições para mapear a imagem URI e o nome do contêiner para a definição da tarefa. Cada arquivo de definições é um arquivo JSON formatado usado pelo provedor de ação da seguinte forma:
-
As implantações ECS padrão da Amazon exigem um
imagedefinitions.json
arquivo como entrada para a ação de implantação. Para obter um tutorial que usa a ação de implantação ECS padrão da Amazon em CodePipeline, consulteTutorial: Implantação ECS padrão da Amazon com CodePipeline. -
As implantações ECS azul/verde da Amazon exigem um
imageDetail.json
arquivo como entrada para a ação de implantação. Para ver um tutorial com um exemplo de implantação azul/verde, consulte. Tutorial: Crie um pipeline com uma ECR fonte da Amazon e ECS para implantação CodeDeploy-
As ações ECR de origem da Amazon geram um
imageDetail.json
arquivo que é fornecido como uma saída da ação de origem.
-
Tópicos
arquivo imagedefinitions.json para ações de implantação padrão da Amazon ECS
Um documento de definições de imagem é um JSON arquivo que descreve o nome do ECS contêiner da Amazon, a imagem e a tag. 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 ECS contêiner e a identificação da imagem da Amazon para recuperar do repositório de imagens, como a 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 imagedefinitions.json
arquivo fornece o nome e a imagem do contêinerURI. Ele deve ser construído com o seguinte conjunto de pares de chave/valor.
Chave | Valor |
---|---|
name | container_name |
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 JSON estrutura, onde está sample-app
o nome do contêinerecs-repo
, a imagem URI e a taglatest
:
[ { "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.
JSONestrutura:
[ { "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 seu pipeline for criado de forma que ele pule o estágio de construção, você deverá criar o JSON arquivo manualmente e carregá-lo no repositório de origem para 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 seu repositório de origem for um bucket do Amazon S3, lembre-se de compactar o arquivoJSON.
-
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 como criar um pipeline que usa a Amazon ECS como provedor de implantação, consulte Tutorial: Implantação contínua com CodePipeline.
imageDetailArquivo.json para ações de implantação ECS azul/verde da Amazon
Um imageDetail.json
documento é um JSON arquivo que descreve sua ECS imagem da AmazonURI. Se você estiver implantando aplicativos baseados em contêineres para uma implantação azul/verde, deverá gerar o arquivo imageDetail.json
para fornecer à Amazon ECS e CodeDeploy ao funcionário a identificação da imagem a ser recuperada do repositório de imagens, como a 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.
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 implantação ECS azul/verde da Amazon.nota
Se o seu repositório de origem for um bucket do Amazon S3, lembre-se de compactar o arquivoJSON.
-
As ações ECR de origem da Amazon geram automaticamente um
imageDetail.json
arquivo como artefato de entrada para a próxima ação.nota
Como a ação de ECR origem da Amazon cria esse arquivo, os pipelines com uma ação de ECR origem da Amazon não precisam fornecer um
imageDetail.json
arquivo manualmente.Para ver um tutorial sobre a criação de um pipeline que inclui um estágio de ECR origem da Amazon, consulteTutorial: Crie um pipeline com uma ECR fonte da Amazon e ECS para implantação CodeDeploy .
O imageDetail.json
arquivo fornece a imagemURI. Ele deve ser construído com o seguinte par de chave/valor.
Chave | Valor |
---|---|
Imagem URI | 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 JSON arquivo 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
-
-