

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.

# Ajouter une action interrégionale dans CodePipeline
<a name="actions-create-cross-region"></a>

AWS CodePipeline inclut un certain nombre d'actions qui vous aident à configurer les ressources de création, de test et de déploiement pour votre processus de publication automatisé. Vous pouvez ajouter à votre pipeline des actions situées dans une AWS région différente de votre pipeline. Lorsqu'un Service AWS est le fournisseur d'une action et que ce type/provider type d'action se trouve dans une AWS région différente de celle de votre pipeline, il s'agit d'une action interrégionale. 

**Note**  
Les actions interrégionales sont prises en charge et ne peuvent être créées que dans les AWS régions où elle CodePipeline est prise en charge. Pour obtenir la liste des AWS régions prises en charge pour CodePipeline, voir[Quotas dans AWS CodePipeline](limits.md).

Vous pouvez utiliser la console ou CloudFormation ajouter des actions interrégionales dans les pipelines. AWS CLI

**Note**  
Il est possible que certains types d'actions ne CodePipeline soient disponibles que dans certaines AWS régions. Notez également qu'il peut y avoir AWS des régions dans lesquelles un type d'action est disponible, mais aucun AWS fournisseur spécifique pour ce type d'action n'est disponible.

Lorsque vous créez ou modifiez un pipeline, vous devez avoir un compartiment d'artefact dans le pipeline Région, puis vous devez disposer d'un compartiment d'artefact par région dans laquelle vous prévoyez d'exécuter une action. Pour plus d’informations sur le paramètre `ArtifactStores`, consultez [CodePipeline référence de structure de pipeline](reference-pipeline-structure.md).

**Note**  
CodePipeline gère la copie d'artefacts d'une AWS région vers les autres régions lors de l'exécution d'actions entre régions.

Si vous utilisez la console pour créer un pipeline ou des actions interrégionales, les compartiments d'artefacts par défaut sont configurés dans les régions CodePipeline dans lesquelles vous avez des actions. Lorsque vous utilisez le AWS CLI ou un SDK pour créer un pipeline ou des actions interrégionales, vous fournissez le compartiment d'artefacts pour chaque région dans laquelle vous avez des actions. CloudFormation

**Note**  
Vous devez créer le compartiment d'artefacts et la clé de chiffrement dans la même AWS région que l'action inter-régions et dans le même compte que votre pipeline.

Vous ne pouvez pas créer d'actions inter-régions pour les types d'action suivants :
+ Actions source
+ Actions tierces
+ Actions personnalisées

**Note**  
Lorsque vous utilisez l'action d' CodePipelineappel Lambda entre régions, le statut de l'exécution Lambda à l'aide [PutJobSuccessResult](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html)du [PutJobFailureResult](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobFailureResult.html)et doit être envoyé à AWS la région où la fonction Lambda est présente et non à la région où elle existe. CodePipeline 

Lorsqu'un pipeline inclut une action interrégionale dans le cadre d'une étape, CodePipeline reproduit uniquement les artefacts d'entrée de l'action interrégionale de la région du pipeline vers la région de l'action.

**Note**  
La région du pipeline et la région dans laquelle vos ressources de détection CloudWatch des changements liés aux événements sont maintenues restent les mêmes. La région dans laquelle votre pipeline est hébergé ne change pas.



## Gestion des actions inter-régions dans un pipeline (console)
<a name="actions-cross-region-console"></a>

Vous pouvez utiliser la CodePipeline console pour ajouter une action interrégionale à un pipeline existant. Pour créer un nouveau pipeline avec des actions inter-régions à l'aide de l'assistant Créer un pipeline, veuillez consulter [Création d'un pipeline personnalisé (console)](pipelines-create.md#pipelines-create-console).

Dans la console, vous créez une action inter-régions à une étape d'un pipeline en choisissant le fournisseur d'action et le champ **Région**, qui répertorie les ressources que vous avez créées dans cette région pour ce fournisseur. Lorsque vous ajoutez une action inter-régions, CodePipeline utilise un compartiment d'artefact distinct dans la région de l'action. Pour de plus amples informations sur les compartiments d'artefacts inter-régions, veuillez consulter [CodePipeline référence de structure de pipeline](reference-pipeline-structure.md).

### Ajout d'une action inter-régions à une étape de pipeline (console)
<a name="actions-cross-region-console-add"></a>

Utilisez la console pour ajouter une action inter-régions à un pipeline.

**Note**  
Si le pipeline est en cours d'exécution lorsque les modifications sont enregistrées, l'exécution ne se termine pas.

**Pour ajouter une action inter-région**

1. Connectez-vous à la console à l'adresse [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Sélectionnez votre pipeline, puis choisissez **Modifier**.

1. En bas du schéma, choisissez **\$1Ajouter une étape** si vous ajoutez une nouvelle étape ou **Modifier l'étape** si vous voulez ajouter l'action à une étape existante.

1. Dans **Modifier : <Étape>**, choisissez **\$1Ajouter groupe d'action** pour ajouter une action en série. Ou choisissez **\$1Ajouter une action** pour ajouter une action en parallèle.

1. Sur la page **Modifier l'action** :

   1. Dans **Nom de l'action**, entrez un nom pour l'action inter-régions.

   1. Dans **Fournisseur d'action**, choisissez le fournisseur d'action.

   1. Dans **Région**, choisissez la AWS région dans laquelle vous avez créé ou prévoyez de créer la ressource pour l'action. Une fois la région sélectionnée, les ressources disponibles pour cette région sont répertoriées pour la sélection. Le champ **Région** indique l'endroit où les AWS ressources sont créées pour ce type d'action et ce type de fournisseur. Ce champ s'affiche uniquement pour les actions dont le fournisseur d'actions est un Service AWS. Le champ **Région** est par défaut identique Région AWS à celui de votre pipeline.

   1. Dans **Artefact d'entrée**, choisissez l'entrée adéquate à partir de l'étape précédente. Par exemple, si l'étape précédente est une étape source, choisissez **SourceArtifact**.

   1. Complétez tous les champs obligatoires pour le fournisseur d'action que vous configurez.

   1. Dans **Artefact de sortie**, choisissez la sortie adaptée à la prochaine étape. Par exemple, si l'étape suivante est une phase de déploiement, choisissez **BuildArtifact**.

   1. Choisissez **Enregistrer**.

1. Dans **Modifier : <Étape>**, choisissez **Effectué**.

1. Choisissez **Enregistrer**.

### Modification d'une action inter-régions dans une étape de pipeline (console)
<a name="actions-cross-region-console-edit"></a>

Utilisez la console pour modifier une action inter-régions existante dans un pipeline.

**Note**  
Si le pipeline est en cours d'exécution lorsque les modifications sont enregistrées, l'exécution ne se termine pas.

**Pour modifier une action inter-régions**

1. Connectez-vous à la console à l'adresse [https://console.aws.amazon.com/codesuite/codepipeline/home.](https://console.aws.amazon.com/codesuite/codepipeline/home.)

1. Sélectionnez votre pipeline, puis choisissez **Modifier**.

1. Choisissez **Modifier l'étape**.

1. Dans **Modifier : <Étape>**, choisissez l'icône de modification d'une action existante.

1. Sur la page **Modifier l'action**, modifiez les champs comme il convient.

1. Dans **Modifier : <Étape>**, choisissez **Effectué**.

1. Choisissez **Enregistrer**.

### Suppression d'une action inter-régions dans une étape de pipeline (console)
<a name="actions-cross-region-console-delete"></a>

Utilisez la console pour supprimer une action inter-régions existante dans un pipeline.

**Note**  
Si le pipeline est en cours d'exécution lorsque les modifications sont enregistrées, l'exécution ne se termine pas.

**Pour supprimer une action inter-régions**

1. Connectez-vous à la console à l'adresse [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Sélectionnez votre pipeline, puis choisissez **Modifier**.

1. Choisissez **Modifier l'étape**.

1. Dans **Modifier : <Étape>**, choisissez l'icône de suppression d'une action existante.

1. Dans **Modifier : <Étape>**, choisissez **Effectué**.

1. Choisissez **Enregistrer**.

## Ajout d'une action inter-régions à un pipeline (interface de ligne de commande)
<a name="actions-cross-region-cli"></a>

Vous pouvez utiliser le AWS CLI pour ajouter une action interrégionale à un pipeline existant.

Pour créer une action interrégionale dans une étape de pipeline avec le AWS CLI, vous devez ajouter l'action de configuration ainsi qu'un `region` champ facultatif. Vous devez également avoir déjà créé un compartiment d'artefact dans la région de l'action. Au lieu de fournir le paramètre `artifactStore` du pipeline de la région unique, vous utilisez le paramètre `artifactStores` pour inclure une liste de chaque compartiment d'artefact de la région.

**Note**  
Dans cette procédure pas à pas et ses exemples, *RegionA* se trouve la région dans laquelle le pipeline est créé. Il a accès au compartiment *RegionA* Amazon S3 utilisé pour stocker les artefacts du pipeline et au rôle de service utilisé par CodePipeline. *RegionB*est la région dans laquelle l' CodeDeploy application, le groupe de déploiement et le rôle de service utilisés par CodeDeploy sont créés. 

### Conditions préalables
<a name="actions-create-cross-region-prereq"></a>

Vous devez avoir créé ce qui suit :
+ Un pipeline entre*RegionA*. 
+ Un compartiment d'artefacts Amazon S3 dans. *RegionB* 
+ Les ressources nécessaires à votre action, telles que votre CodeDeploy application et votre groupe de déploiement pour une action de déploiement entre régions, dans*RegionB*.

### Ajout d'une action inter-régions à un pipeline (interface de ligne de commande)
<a name="actions-create-cross-region-cli"></a>

Utilisez le AWS CLI pour ajouter une action interrégionale à un pipeline.

**Pour ajouter une action inter-région**

1. Pour un pipeline en entrée*RegionA*, exécutez la **get-pipeline** commande pour copier la structure du pipeline dans un fichier JSON. Par exemple, pour un pipeline nommé `MyFirstPipeline`, exécutez la commande suivante : 

   ```
   aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
   ```

   Cette commande ne renvoie rien, mais le fichier que vous avez créé doit apparaître dans le répertoire où vous avez exécuté la commande.

1. Ajoutez le champ `region` pour ajouter une nouvelle étape avec votre action inter-régions qui inclut la région et les ressources de votre action. L'exemple JSON suivant ajoute une phase de déploiement avec une action de déploiement entre régions où le fournisseur se trouve CodeDeploy dans une nouvelle région`us-east-1`.

   ```
    {
                   "name": "Deploy",
                   "actions": [
                       {
                           "inputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "name": "Deploy",
                           "region": "RegionB",
                           "actionTypeId": {
                               "category": "Deploy",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeDeploy"
                           },
                           "outputArtifacts": [],
                           "configuration": {
                               "ApplicationName": "name",
                               "DeploymentGroupName": "name"
                           },
                           "runOrder": 1
                       }
   ```

1. Dans la structure de pipeline, supprimez le champ `artifactStore` et ajoutez la carte `artifactStores` pour votre nouvelle action inter-régions. Le mappage doit inclure une entrée pour chaque AWS région dans laquelle vous avez des actions. Pour chaque entrée du mappage, les ressources doivent se trouver dans la AWS région correspondante. Dans l'exemple ci-dessous, `ID-A` est l'ID de clé de chiffrement pour*RegionA*, et `ID-B` est l'ID de clé de chiffrement pour*RegionB*.

   ```
   "artifactStores":{  
      "RegionA":{  
         "encryptionKey":{  
            "id":"ID-A",
            "type":"KMS"
         },
         "location":"Location1",
         "type":"S3"
      },
      "RegionB":{  
         "encryptionKey":{  
            "id":"ID-B",
            "type":"KMS"
         },
         "location":"Location2",
         "type":"S3"
      }
   }
   ```

   L'exemple JSON suivant présente le compartiment us-west-2 en tant que `my-storage-bucket` et ajoute le nouveau compartiment us-east-1 nommé `my-storage-bucket-us-east-1`.

   ```
           "artifactStores": {
               "us-west-2": {
                   "type": "S3",
                   "location": "my-storage-bucket"
               },
               "us-east-1": {
                   "type": "S3",
                   "location": "my-storage-bucket-us-east-1"
               }
           },
   ```

1. Si vous utilisez la structure de pipeline extraite à l'aide de la commande **get-pipeline**, supprimez les lignes `metadata` du fichier JSON. Sinon, la commande **update-pipeline** ne peut pas l'utiliser. Supprimez les lignes `"metadata": { }` et les champs `"updated"`, `"created"` et `"pipelineARN"`.

   Par exemple, supprimez les lignes suivantes de la structure : 

   ```
   "metadata": {  
     "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name",
     "created": "date",
     "updated": "date"
     }
   ```

   Enregistrez le fichier.

1. Pour appliquer les modifications, exécutez la commande **update-pipeline** en spécifiant le fichier JSON du pipeline :
**Important**  
N'oubliez pas d'inclure `file://` devant le nom du fichier. Il est nécessaire dans cette commande.

   ```
   aws codepipeline update-pipeline --cli-input-json file://pipeline.json
   ```

   Cette commande affiche toute la structure du pipeline mise à jour. La sortie est similaire à ce qui suit.

   ```
   {
       "pipeline": {
           "version": 4,
           "roleArn": "ARN",
           "stages": [
               {
                   "name": "Source",
                   "actions": [
                       {
                           "inputArtifacts": [],
                           "name": "Source",
                           "actionTypeId": {
                               "category": "Source",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeCommit"
                           },
                           "outputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "configuration": {
                               "PollForSourceChanges": "false",
                               "BranchName": "main",
                               "RepositoryName": "MyTestRepo"
                           },
                           "runOrder": 1
                       }
                   ]
               },
               {
                   "name": "Deploy",
                   "actions": [
                       {
                           "inputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "name": "Deploy",
                           "region": "us-east-1",
                           "actionTypeId": {
                               "category": "Deploy",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeDeploy"
                           },
                           "outputArtifacts": [],
                           "configuration": {
                               "ApplicationName": "name",
                               "DeploymentGroupName": "name"
                           },
                           "runOrder": 1
                       }
                   ]
               }
           ],
           "name": "AnyCompanyPipeline",
           "artifactStores": {
               "us-west-2": {
                   "type": "S3",
                   "location": "my-storage-bucket"
               },
               "us-east-1": {
                   "type": "S3",
                   "location": "my-storage-bucket-us-east-1"
               }
           }
       }
   }
   ```
**Note**  
La commande **update-pipeline** interrompt le pipeline. Si une révision est exécutée dans le pipeline lorsque vous exécutez la commande **update-pipeline** celle-ci est interrompue. Vous devez lancer manuellement le pipeline pour exécuter cette révision dans le pipeline mis à jour. Utilisez la commande **`start-pipeline-execution`** pour démarrer manuellement votre pipeline.

1. Une fois que vous avez mis à jour votre pipeline, l'action inter-régions s'affiche dans la console.  
![\[Vue globale d'un pipeline qui inclut une action inter-régions.\]](http://docs.aws.amazon.com/fr_fr/codepipeline/latest/userguide/images/cross-region-icon.png)

## Ajout d'une action inter-régions à un pipeline (CloudFormation)
<a name="actions-create-cross-region-cfn"></a>

Vous pouvez l'utiliser CloudFormation pour ajouter une action interrégionale à un pipeline existant.

**Pour ajouter une action interrégionale avec CloudFormation**

1. Ajoutez le paramètre `Region` à la ressource `ActionDeclaration` dans votre modèle, comme illustré dans l'exemple suivant :

   ```
   ActionDeclaration:
                 Type: Object
                 Properties:
                   ActionTypeId:
                     Type: ActionTypeId
                     Required: true
                   Configuration:
                     Type: Map
                   InputArtifacts:
                     Type: Array
                     ItemType:
                       Type: InputArtifact
                   Name:
                     Type: String
                     Required: true
                   OutputArtifacts:
                     Type: Array
                     ItemType:
                       Type: OutputArtifact
                   RoleArn:
                     Type: String
                   RunOrder:
                     Type: Integer
                   Region:
                     Type: String
   ```

1. Sous `Mappings`, ajoutez le mappage de région comme indiqué dans cet exemple pour un mappage nommé `SecondRegionMap` qui mappe les valeurs des clés `RegionA` et `RegionB`. Sous la ressource `Pipeline`, sous le champ `artifactStore`, ajoutez la carte `artifactStores` pour votre nouvelle action inter-régions, comme suit :

   ```
   Mappings:
     SecondRegionMap:
       RegionA:
         SecondRegion: "RegionB"
       RegionB:
         SecondRegion: "RegionA"
   
   ...
   
             Properties:
               ArtifactStores:
                 -
                   Region: RegionB
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-RegionB
                 -
                   Region: RegionA
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-RegionA
   ```

   L'exemple YAML suivant montre le *RegionA* bucket sous forme de bucket `us-west-2` et ajoute le nouveau *RegionB* bucket : `eu-central-1`

   ```
   Mappings:
     SecondRegionMap:
       us-west-2:
         SecondRegion: "eu-central-1"
       eu-central-1:
         SecondRegion: "us-west-2"
   
   ...
   
             Properties:
               ArtifactStores:
                 -
                   Region: eu-central-1
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-eu-central-1
                 -
                   Region: us-west-2
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-us-west-2
   ```

1. Enregistrez le modèle mis à jour sur votre ordinateur local, puis ouvrez la console CloudFormation .

1. Choisissez votre pile, puis **Créer un jeu de modifications pour la pile actuelle**. 

1. Chargez le modèle mis à jour, puis affichez les modifications répertoriées dans CloudFormation. Il s'agit des modifications apportées à la pile. Vos nouvelles ressources doivent figurer dans la liste.

1. Sélectionnez **Execute (Exécuter)**.