View a markdown version of this page

ECRBuildAndPublishcréer une référence d'action - AWS CodePipeline

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

ECRBuildAndPublishcréer une référence d'action

Cette action de génération vous permet d'automatiser la création et la diffusion d'une nouvelle image lorsqu'une modification se produit dans votre source. Cette action est créée en fonction d'un emplacement Dockerfile spécifié et pousse l'image. Cette action de génération est différente de l'action source Amazon ECR dans CodePipeline, qui déclenche le pipeline lorsqu'une modification survient dans votre référentiel source Amazon ECR. Pour plus d'informations sur cette action, consultezRéférence des actions source Amazon ECR.

Il ne s'agit pas d'une action source qui déclenchera le pipeline. Cette action crée une image et l'envoie vers votre référentiel d'images Amazon ECR.

Vous devez déjà avoir créé un référentiel Amazon ECR et avoir ajouté un Dockerfile à votre référentiel de code source, par exemple GitHub, avant d'ajouter l'action à votre pipeline.

Important

Cette action utilise le CodeBuild calcul CodePipeline géré pour exécuter des commandes dans un environnement de génération. L'exécution de l'action des commandes entraînera des frais distincts dans AWS CodeBuild.

Note

Cette action n'est disponible que pour les pipelines de type V2.

Type d'action

  • Catégorie : Build

  • Propriétaire : AWS

  • Fournisseur : ECRBuildAndPublish

  • Version : 1

Paramètres de configuration

ECRRepositoryName

Obligatoire : oui

Le nom du référentiel Amazon ECR dans lequel l'image est envoyée.

DockerFilePath

Obligatoire : non

Emplacement du Dockerfile utilisé pour créer l'image. Vous pouvez éventuellement fournir un autre emplacement Dockerfile s'il ne se trouve pas au niveau de la racine.

Note

Si aucune valeur pour n'DockerFilePathest spécifiée, la valeur par défaut est le niveau racine du référentiel source.

ImageTags

Obligatoire : non

Les balises utilisées pour l'image. Vous pouvez saisir plusieurs balises sous la forme d'une liste de chaînes délimitée par des virgules.

Note

Si aucune valeur n'est spécifiée pour ImageTags, la valeur par défaut est latest.

RegistryType

Obligatoire : non

Spécifie si le référentiel est public ou privé. Les valeurs valides sont private | public.

Note

Si aucune valeur n'est spécifiée pour RegistryType, la valeur par défaut est private.

Artefacts d'entrée

  • Nombre d'objets : 1

  • Description : artefact produit par l'action source qui contient le Dockerfile nécessaire à la création de l'image.

Artefacts de sortie

  • Nombre d'objets : 0

Variables de sortie

Lorsque cette action est configurée, elle produit des variables qui peuvent être référencées par la configuration d'action d'une action en aval dans le pipeline. Cette action produit des variables qui peuvent être visualisées en tant que variables de sortie, même si l'action n'a pas d'espace de noms. Vous configurez une action avec un espace de noms pour rendre ces variables disponibles pour la configuration des actions en aval.

Pour de plus amples informations, veuillez consulter Référence des variables.

ECRImageDigestId

Hachage sha256 du manifeste de l'image.

ECRRepositoryName

Nom du référentiel Amazon ECR dans lequel l'image a été envoyée.

Autorisations relatives aux rôles de service : ECRBuildAndPublish action

Pour l'aide à l'ECRBuildAndPublishaction, ajoutez ce qui suit à votre déclaration de politique :

{ "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": "*" } ] }

En outre, si ce n'est pas déjà fait pour l'Commandsaction, ajoutez les autorisations suivantes à votre rôle de service afin d'afficher CloudWatch les journaux.

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

Réduisez les autorisations au niveau des ressources du pipeline en utilisant des autorisations basées sur les ressources dans la déclaration de politique des rôles de service.

Pour plus d'informations sur cette action, consultezECRBuildAndPublishcréer une référence d'action.

Déclaration d'action

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" },

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.