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 da ação de implantação azul/verde do Amazon Elastic Container Service e CodeDeploy
Você pode configurar um pipeline no AWS CodePipeline que implante aplicativos de contêiner usando uma implantação azul/verde. Em uma implantação azul/verde, você pode executar a nova versão da sua aplicação junto com a versão antiga e testar a nova versão antes de redirecionar o tráfego para ela. Você também poderá monitorar o processo de implantação e realizar uma reversão rapidamente se houver algum problema.
O pipeline concluído detecta alterações em suas imagens ou no arquivo de definição de tarefa e usa o CodeDeploy para encaminhar e implantar o tráfego em um cluster e balanceador de carga do Amazon ECS. O CodeDeploy cria um novo receptor em seu balanceador de carga que pode direcionar sua nova tarefa por meio de uma porta especial. Você também pode configurar o pipeline para usar um local de origem, como um repositório do CodeCommit, no qual a definição de tarefa do Amazon ECS é armazenada.
Antes de criar seu pipeline, você já deve ter criado os recursos do Amazon ECS, os recursos do CodeDeploy, o balanceador de carga e o grupo de destino. Você já deve ter marcado e armazenado a imagem no seu repositório de imagens e carregado a definição da tarefa e o arquivo AppSpec no seu repositório de arquivos.
nota
Este tópico descreve a ação de implantação azul/verde do Amazon ECS para CodeDeploy no CodePipeline. Para obter informações de referência sobre as ações de implantação padrão do Amazon ECS no CodePipeline, consulte Referência da ação de implantação do Amazon Elastic Container Service.
Tópicos
Tipo de ação
-
Categoria:
Deploy
-
Proprietário:
AWS
-
Fornecedor:
CodeDeployToECS
-
Versão:
1
Parâmetros de configuração
- ApplicationName
-
Obrigatório: Sim
O nome da aplicação no CodeDeploy. Antes de criar seu pipeline, você já deve ter criado a aplicação no CodeDeploy.
- DeploymentGroupName
-
Obrigatório: Sim
O grupo de implantação especificado para os conjuntos de tarefas do Amazon ECS que você criou para a aplicação do CodeDeploy. Antes de criar seu pipeline, você já deve ter criado o grupo de implantação no CodeDeploy.
- TaskDefinitionTemplateArtifact
-
Obrigatório: Sim
O nome do artefato de entrada que fornece o arquivo de definição de tarefa para a ação de implantação. Geralmente, esse é o nome do artefato de saída da ação de origem. Quando você usa o console, o nome padrão do artefato de saída da ação de origem é
SourceArtifact
. - AppSpecTemplateArtifact
-
Obrigatório: Sim
O nome do artefato de entrada que fornece o arquivo AppSpec para a ação de implantação. Esse valor é atualizado quando o pipeline é executado. Geralmente, esse é o nome do artefato de saída da ação de origem. Quando você usa o console, o nome padrão do artefato de saída da ação de origem é
SourceArtifact
. ParaTaskDefinition
no arquivo AppSpec, você pode manter o texto do espaço reservado<TASK_DEFINITION>
conforme mostrado aqui. - AppSpecTemplatePath
-
Obrigatório: Não
O nome do arquivo AppSpec armazenado no local do arquivo de origem do pipeline, como o repositório do CodeCommit do pipeline. O nome de arquivo padrão é
appspec.yaml
. Se seu arquivo AppSpec tiver o mesmo nome e estiver armazenado no nível raiz do repositório de arquivos, você não precisará fornecer o nome do arquivo. Se o caminho não for o padrão, insira o caminho e o nome do arquivo. - TaskDefinitionTemplatePath
-
Obrigatório: Não
O nome do arquivo de definição armazenado no local do arquivo de origem do arquivo de pipeline; por exemplo, o repositório do CodeCommit do pipeline. O nome de arquivo padrão é
taskdef.json
. Se o arquivo de definição tiver o mesmo nome e estiver armazenado no nível raiz do repositório de arquivos, você não precisará fornecer o nome do arquivo. Se o caminho não for o padrão, insira o caminho e o nome do arquivo. - Image<Number>ArtifactName
-
Obrigatório: Não
O nome do artefato de entrada que fornece a imagem para a ação de implantação. Geralmente, esse é o artefato de saída do repositório de imagens, como a saída da ação de origem do Amazon ECR.
Os valores disponíveis para
<Number>
vão de 1 a 4. - Image<Number>ContainerName
-
Obrigatório: Não
O nome da imagem disponível no repositório de imagens; por exemplo, o repositório de origem do Amazon ECR.
Os valores disponíveis para
<Number>
vão de 1 a 4.
Input artifacts (Artefatos de entrada)
-
Número de artefatos:
1 to 5
-
Descrição: a ação
CodeDeployToECS
primeiro procura o arquivo de definição de tarefa e o arquivo AppSpec no repositório de arquivos de origem. Depois, ela procura a imagem no repositório de imagens, gera dinamicamente uma nova revisão da definição de tarefa e, por fim, executa os comandos do AppSpec para implantar o conjunto de tarefas e o contêiner no cluster.A ação
CodeDeployToECS
procura um arquivoimageDetail.json
que mapeie o URI de imagem para a imagem. Quando você confirmar uma alteração no repositório de imagens do Amazon ECR, a ação de origem do ECR do pipeline criará um arquivoimageDetail.json
para essa confirmação. Você também pode adicionar manualmente um arquivoimageDetail.json
para um pipeline em que a ação não seja automatizada. Para mais informações sobre o arquivoimageDetail.json
, consulte Arquivo imageDetail.json para ações de implantação azul/verde do Amazon ECS.A ação
CodeDeployToECS
gera dinamicamente uma nova revisão da definição de tarefa. Nessa fase, essa ação substitui os espaços reservados no arquivo de definição de tarefa pelo URI de imagem recuperado nos arquivos imageDetail.json. Por exemplo, se você definir IMAGE1_NAME como parâmetro Image1ContainerName, especifique o espaço reservado <IMAGE1_NAME> como valor do campo de imagem em seu arquivo de definição de tarefa. Nesse caso, a ação CodeDeployToECS substitui o espaço reservado <IMAGE1_NAME> no URI de imagem real recuperado no arquivo ImageDetail.json no artefato especificaeo como Image1ArtifactName.Para atualizações de definição de tarefa, o arquivo
AppSpec.yaml
do CodeDeploy contém a propriedadeTaskDefinition
.TaskDefinition: <TASK_DEFINITION>
Essa propriedade será atualizada pela ação
CodeDeployToECS
depois que a nova definição de tarefa for criada.Para o valor do campo
TaskDefinition
, o texto do espaço reservado deve ser <TASK_DEFINITION>. A açãoCodeDeployToECS
substitui esse espaço reservado pelo ARN real da definição de tarefa gerada dinamicamente.
Artefatos de saída
-
Número de artefatos:
0
-
Descrição: os artefatos de saída não se aplicam a esse tipo de ação.
Declaração de ação
Consulte também
Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.
-
Tutorial: Crie um pipeline com uma fonte e ECS-to-CodeDeploy implantação do Amazon ECR – Este tutorial orienta você na criação dos recursos do CodeDeploy e do Amazon ECS necessários para uma implantação azul/verde. O tutorial mostra como enviar por push uma imagem do Docker para o Amazon ECR e criar uma definição de tarefa do Amazon ECS que lista o nome da imagem do Docker, o nome do contêiner, o nome do serviço do Amazon ECS e a configuração do balanceador de carga. Em seguida, o tutorial orienta você pela criação do arquivo AppSpec e do pipeline da sua implantação.
nota
Este tópico e tutorial descrevem a ação de implantação azul/verde do CodeDeploy/ECS no CodePipeline. Para obter informações sobre as ações padrão do ECS no CodePipeline, consulte Tutorial: Implantação contínua com o CodePipeline.
-
Guia do usuário do AWS CodeDeploy: para obter informações sobre como usar o balanceador de carga, o receptor de produção, os grupos de destino e a aplicação do Amazon ECS em uma implantação azul/verde, consulte Tutorial: Implantar um serviço do Amazon ECS. Essas informações de referência no Guia do usuário do AWS CodeDeploy fornecem uma visão geral das implantações azul/verde com o Amazon ECS e o AWS CodeDeploy.
-
Guia do desenvolvedor do Amazon Elastic Container Service: para obter informações sobre como trabalhar com imagens e contêineres do Docker, serviços e clusters do ECS e conjuntos de tarefas do ECS, consulte O que é o Amazon ECS?