Referência da ação de compilação ECRBuildAndPublish - 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 compilação ECRBuildAndPublish

Esta ação de compilação permite a você automatizar a compilação e o envio de uma nova imagem quando ocorre uma alteração na origem. Esta ação é compilada com base em uma localização específica do arquivo do Docker e envia a imagem por push. Esta ação de compilação não é igual à ação de origem do Amazon ECR no CodePipeline, que dispara o pipeline quando ocorre uma alteração no repositório de origem do Amazon ECR. Para obter informações sobre essa ação, consulte Referência da ação de origem do Amazon ECR.

Esta não é uma ação de origem que vai disparar o pipeline. Esta ação compila uma imagem e a envia para o repositório de imagens do Amazon ECR.

Você já deve ter criado um repositório do Amazon ECR e adicionado um Dockerfile ao repositório do código-fonte, como o GitHub, para adicionar a ação ao pipeline.

Importante

Essa ação usa a computação do CodeBuild gerenciada pelo CodePipeline para executar comandos em um ambiente de compilação. A execução da ação Comandos incorrerá em cobranças separadas no AWS CodeBuild.

nota

Esta só está disponível para pipelines do tipo V2.

Tipo de ação

  • Categoria: Build

  • Proprietário: AWS

  • Fornecedor: ECRBuildAndPublish

  • Versão: 1

Parâmetros de configuração

ECRRepositoryName

Obrigatório: Sim

O nome do repositório do Amazon ECR para o qual a imagem é enviada por push.

DockerFilePath

Obrigatório: Não

O local do arquivo do Docker usado para compilar a imagem. Você também poderá oferecer um local de arquivo do docker alternativo, se não estiver no nível raiz.

nota

Se um valor para DockerFilePath não for especificado, o valor assumirá como padrão o nível raiz do repositório de origem.

ImageTags

Obrigatório: Não

As tags usadas para a imagem. Você pode inserir várias tags como uma lista de strings delimitada por vírgulas.

nota

Se não for especificado um valor para ImageTags, o valor assumirá latest como padrão.

RegistryType

Obrigatório: Não

Especifica se o repositório é público ou privado. Os valores válidos são private | public.

nota

Se não for especificado um valor para RegistryType, o valor assumirá private como padrão.

Input artifacts (Artefatos de entrada)

  • Número de artefatos: 1

  • Descrição: o artefato produzido pela ação de origem que contém o Dockerfile necessário para compilar a imagem.

Artefatos de saída

  • Número de artefatos: 0

Variáveis de saída

Quando configurada, essa ação produz variáveis que podem ser referenciadas pela configuração de ação de uma ação downstream no pipeline. Esta ação produz variáveis que podem ser visualizadas como variáveis de saída, mesmo que a ação não tenha um namespace. Configure uma ação com um namespace a fim de disponibilizar as variáveis para a configuração de ações downstream.

Para obter mais informações, consulte Referência de variáveis.

ECRImageDigestId

O resumo sha256 do manifesto da imagem.

ECRRepositoryName

O nome do repositório do Amazon ECR ao qual a imagem foi enviada por push.

Permissões do perfil de serviço: ação ECRBuildAndPublish

Para suporte à ação ECRBuildAndPublish, adicione o seguinte à declaração da política:

{ "Statement": [ { "Sid": "ECRRepositoryAllResourcePolicy", "Effect": "Allow", "Action": [ "ecr:DescribeRepositories", "ecr:GetAuthorizationToken", "ecr-public:DescribeRepositories", "ecr-public:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload", "ecr:PutImage", "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability" ], "Resource": "PrivateECR_Resource_ARN" }, { "Effect": "Allow", "Action": [ "ecr-public:GetAuthorizationToken", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "ecr-public:CompleteLayerUpload", "ecr-public:PutImage", "ecr-public:BatchCheckLayerAvailability", "sts:GetServiceBearerToken" ], "Resource": "PublicECR_Resource_ARN" }, { "Effect": "Allow", "Action": [ "sts:GetServiceBearerToken" ], "Resource": "*" } ] }

Além disso, se ainda não tiverem sido adicionadas à ação Commands, adicione as permissões a seguir ao perfil de serviço para exibir os logs do CloudWatch.

{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "resource_ARN" },
nota

Restrinja as permissões ao nível de recurso do pipeline aplicando permissões baseadas em recurso na declaração de política do perfil de serviço.

Para obter mais informações sobre a ação, consulte Referência da ação de compilação ECRBuildAndPublish.

Declaração de ação

YAML
name: ECRBuild actionTypeId: category: Build owner: AWS provider: ECRBuildAndPublish version: '1' runOrder: 1 configuration: ECRRepositoryName: actions/my-imagerepo outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: BuildVariables
JSON
{ "name": "ECRBuild", "actionTypeId": { "category": "Build", "owner": "AWS", "provider": "ECRBuildAndPublish", "version": "1" }, "runOrder": 1, "configuration": { "ECRRepositoryName": "actions/my-imagerepo" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "BuildVariables" },

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