Referência da ação de implantação do Amazon Elastic Container Service - AWS CodePipeline

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 do Amazon Elastic Container Service

Você pode usar uma ação do Amazon ECS para implantar um serviço e um conjunto de tarefas do Amazon ECS. Um serviço do Amazon ECS é uma aplicação de contêiner implantada em um cluster do Amazon ECS. Um cluster do Amazon ECS é um conjunto de instâncias que hospedam sua aplicação de contêiner na nuvem. A implantação exige uma definição de tarefa que você cria no Amazon ECS e um arquivo de definições de imagem que CodePipeline usa para implantar a imagem.

Importante

A ação de implantação padrão do Amazon ECS para CodePipeline cria sua própria revisão da definição da tarefa com base na revisão usada pelo serviço Amazon ECS. Se você criar novas revisões para a definição de tarefa sem atualizar o serviço Amazon ECS, a ação de implantação ignorará essas revisões.

Antes de criar seu pipeline, você já deve ter criado os recursos do Amazon ECS, marcado e armazenado a imagem em seu repositório de imagens e carregado o BuildSpec arquivo em seu repositório de arquivos.

nota

Este tópico de referência descreve a ação de implantação padrão do Amazon ECS para CodePipeline. Para obter informações de referência sobre as ações de implantação CodeDeploy azul/verde do Amazon ECS em CodePipeline, consulte. Amazon Elastic Container Service e referência de ação de implantação CodeDeploy azul-verde

Tipo de ação

  • Categoria: Deploy

  • Proprietário: AWS

  • Fornecedor: ECS

  • Versão: 1

Parâmetros de configuração

ClusterName

Obrigatório: Sim

O cluster do Amazon ECS no Amazon ECS.

ServiceName

Obrigatório: Sim

O serviço Amazon ECS que você criou no Amazon ECS.

FileName

Obrigatório: Não

O nome do arquivo de definições de imagem, o arquivo JSON que descreve o nome de contêiner, a imagem e a tag do serviço. Você usa esse arquivo para implantações padrão do ECS. Para obter mais informações, consulte Input artifacts (Artefatos de entrada) e Arquivo imagedefinitions.json para ações de implantação padrão do Amazon ECS.

DeploymentTimeout

Obrigatório: Não

O tempo limite da ação de implantação do Amazon ECS em minutos. O tempo limite é configurável até o tempo limite padrão máximo para essa ação. Por exemplo:

"DeploymentTimeout": "15"

Input artifacts (Artefatos de entrada)

  • Número de artefatos: 1

  • Descrição: a ação procura um arquivo imagedefinitions.json no repositório de arquivos de origem do pipeline. Um documento de definições de imagem é um arquivo JSON que descreve o nome do contêiner do Amazon ECS, a imagem e a tag. CodePipeline usa o arquivo para recuperar a imagem do seu repositório de imagens, como o Amazon ECR. Você também pode adicionar manualmente um arquivo imagedefinitions.json para um pipeline em que a ação não seja automatizada. Para mais informações sobre o arquivo imagedefinitions.json, consulte Arquivo imagedefinitions.json para ações de implantação padrão do Amazon ECS.

    A ação requer uma imagem existente que já tenha sido enviada por push para o repositório de imagens. Como o mapeamento da imagem é fornecido pelo arquivo imagedefinitions.json, a ação não exige que a fonte do Amazon ECR seja incluída como uma ação de origem no pipeline.

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.

Permissões da função de serviço: ação padrão do Amazon ECS

Para o Amazon ECR, estas são as permissões mínimas necessárias para criar pipelines com uma ação de implantação do Amazon ECS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TaskDefinitionPermissions", "Effect": "Allow", "Action": [ "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition" ], "Resource": [ "*" ] }, { "Sid": "ECSServicePermissions", "Effect": "Allow", "Action": [ "ecs:DescribeServices", "ecs:UpdateService" ], "Resource": [ "arn:aws:ecs:*:{{customerAccountId}}:service/[[clusters]]/*" ] }, { "Sid": "ECSTagResource", "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": [ "arn:aws:ecs:*:{{customerAccountId}}:task-definition/[[taskDefinitions]]:*" ], "Condition": { "StringEquals": { "ecs:CreateAction": [ "RegisterTaskDefinition" ] } } }, { "Sid": "IamPassRolePermissions", "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::{{customerAccountId}}:role/[[passRoles]]" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "ecs.amazonaws.com", "ecs-tasks.amazonaws.com" ] } } } ] }

Você pode aceitar o uso da autorização para atribuição de tags no Amazon ECS. Ao aceitar, você deve conceder as seguintes permissões: ecs:TagResource. Para obter mais informações sobre como aceitar e determinar se a permissão será necessária e a autorização de tag será aplicada, consulte o Cronograma de autorização para atribuição de tags no Guia do desenvolvedor do Amazon Elastic Container Service.

Você deve adicionar as iam:PassRole permissões para usar as funções do IAM para tarefas. Para obter mais informações, consulte Perfil do IAM para execução de tarefas do Amazon ECS e Perfis do IAM para tarefas. Use o seguinte texto de política:

Declaração de ação

YAML
Name: DeployECS ActionTypeId: Category: Deploy Owner: AWS Provider: ECS Version: '1' RunOrder: 2 Configuration: ClusterName: my-ecs-cluster ServiceName: sample-app-service FileName: imagedefinitions.json DeploymentTimeout: '15' OutputArtifacts: [] InputArtifacts: - Name: my-image
JSON
{ "Name": "DeployECS", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "ECS", "Version": "1" }, "RunOrder": 2, "Configuration": { "ClusterName": "my-ecs-cluster", "ServiceName": "sample-app-service", "FileName": "imagedefinitions.json", "DeploymentTimeout": "15" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "my-image" } ] },

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.

  • Veja Tutorial: Crie e envie uma imagem do Docker para o Amazon ECR com CodePipeline (tipo V2) um tutorial que mostra como usar a ação ECRBuildand Publish para enviar uma imagem e, em seguida, usar a ação padrão do ECS para implantá-la no Amazon ECS.

  • Tutorial: Implantação contínua com CodePipeline — Este tutorial mostra como criar um Dockerfile que você armazena em um repositório de arquivos de origem, como. CodeCommit A seguir, o tutorial mostra como incorporar um CodeBuild BuildSpec arquivo que cria e envia sua imagem do Docker para o Amazon ECR e cria seu arquivo imagedefinitions.json. Por fim, você cria uma definição de serviço e tarefa do Amazon ECS e, em seguida, cria seu pipeline com uma ação de implantação do Amazon ECS.

    nota

    Este tópico e tutorial descrevem a ação de implantação padrão do Amazon ECS para CodePipeline. Para obter informações sobre as ações de implantação do Amazon ECS para CodeDeploy azul/verde em CodePipeline, consulte. Tutorial: Crie um pipeline com uma fonte e ECS-to-CodeDeploy implantação do Amazon ECR

  • 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 Amazon ECS e conjuntos de tarefas do ECS, consulte O que é o Amazon ECS?