

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.

# `ECRBuildAndPublish`créer une référence d'action
<a name="action-reference-ECRBuildAndPublish"></a>

Cette action de création vous permet d'automatiser la création et le transfert d'une nouvelle image lorsqu'une modification se produit dans votre source. Cette action se construit en fonction d'un emplacement de fichier Docker spécifié et envoie l'image. Cette action de génération n'est pas identique à l'action source Amazon ECR dans CodePipeline, qui déclenche le pipeline lorsqu'une modification survient dans votre référentiel de sources Amazon ECR. Pour plus d'informations sur cette action, consultez[Référence d'action source Amazon ECR](action-reference-ECR.md).

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. AWS CodeBuild

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

**Topics**
+ [Type d'action](#action-reference-ECRBuildAndPublish-type)
+ [Paramètres de configuration](#action-reference-ECRBuildAndPublish-config)
+ [Artefacts d'entrée](#action-reference-ECRBuildAndPublish-input)
+ [Artefacts de sortie](#action-reference-ECRBuildAndPublish-output)
+ [Variables de sortie](#action-reference-ECRBuildAndPublish-output-variables)
+ [Autorisations relatives aux rôles de service : `ECRBuildAndPublish` action](#edit-role-ECRBuildAndPublish)
+ [Déclaration d'action](#action-reference-ECRBuildAndPublish-example)
+ [Consultez aussi](#action-reference-ECRBuildAndPublish-links)

## Type d'action
<a name="action-reference-ECRBuildAndPublish-type"></a>
+ Catégorie : `Build`
+ Propriétaire : `AWS`
+ Fournisseur : `ECRBuildAndPublish`
+ Version : `1`

## Paramètres de configuration
<a name="action-reference-ECRBuildAndPublish-config"></a>

**ECRRepositoryNom**  
Obligatoire : oui  
Nom du référentiel Amazon ECR dans lequel l'image est envoyée.

**DockerFilePath**  
Obligatoire : non  
Emplacement du fichier Docker utilisé pour créer l'image. Vous pouvez éventuellement fournir un autre emplacement pour le fichier docker si ce n'est pas au niveau racine.  
Si aucune valeur pour n'`DockerFilePath`est 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 forme de liste de chaînes séparées par des virgules.  
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`.  
Si aucune valeur n'est spécifiée pour `RegistryType`, la valeur par défaut est `private`.

## Artefacts d'entrée
<a name="action-reference-ECRBuildAndPublish-input"></a>
+ **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
<a name="action-reference-ECRBuildAndPublish-output"></a>
+ **Nombre d'objets :** `0` 

## Variables de sortie
<a name="action-reference-ECRBuildAndPublish-output-variables"></a>

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 aux variables](reference-variables.md).

**ECRImageDigestId **  
Hachage `sha256` du manifeste de l'image.

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

## Autorisations relatives aux rôles de service : `ECRBuildAndPublish` action
<a name="edit-role-ECRBuildAndPublish"></a>

Pour le soutien à l'`ECRBuildAndPublish`action, 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 elles ne sont pas déjà ajoutées pour l'`Commands`action, ajoutez les autorisations suivantes à votre rôle de service afin de consulter 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 les autorisations basées sur les ressources dans la déclaration de politique relative aux rôles de service.

Pour plus d'informations sur cette action, consultez[`ECRBuildAndPublish`créer une référence d'action](#action-reference-ECRBuildAndPublish).

## Déclaration d'action
<a name="action-reference-ECRBuildAndPublish-example"></a>

------
#### [ 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"
},
```

------

## Consultez aussi
<a name="action-reference-ECRBuildAndPublish-links"></a>

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.
+ [Tutoriel : créer et envoyer une image Docker vers Amazon ECR avec CodePipeline (type V2)](tutorials-ecr-build-publish.md)— Ce didacticiel fournit un exemple de Dockerfile et des instructions pour créer un pipeline qui envoie votre image vers ECR lors d'une modification de votre référentiel source, puis qui est déployée sur Amazon ECS.