

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 automatique. Vous pouvez ajouter à votre pipeline des actions situées dans une AWS région différente de votre pipeline. Lorsque an 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**  
Cross-region les actions sont prises en charge et ne peuvent être créées que dans les AWS régions où elles CodePipeline sont prises en charge. Pour obtenir la liste des AWS régions prises en charge pour CodePipeline, consultez[Quotas dans AWS CodePipeline](limits.md).

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

**Note**  
Certains types d'actions CodePipeline peuvent n'être disponibles que dans certaines AWS régions. Notez également qu'il peut y avoir AWS des régions où 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 la structure du pipeline](reference-pipeline-structure.md).

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

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 CodePipeline dans les régions où vous avez des actions. Lorsque vous utilisez le AWS CLI CloudFormation, 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. 

**Note**  
Vous devez créer le compartiment d'artefacts et la clé de chiffrement dans la même AWS région que l'action interrégionale 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
+ Third-party actions
+ Actions personnalisées

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

Lorsqu'un pipeline inclut une action interrégionale dans le cadre d'une étape, il 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 des changements d' CloudWatch événements sont gérées restent les mêmes. La région dans laquelle votre pipeline est hébergé ne change pas.



## Gérer les actions interrégionales 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, consultez [Création d'un pipeline personnalisé (console)](pipelines-create.md#pipelines-create-console).

Dans la console, vous pouvez créer une action interrégionale dans une étape de pipeline en choisissant le fournisseur d'actions 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 interrégionale, CodePipeline utilise un compartiment d'artefacts distinct dans la région de l'action. Pour plus d'informations sur les compartiments d'artefacts inter-régions, consultez [CodePipeline référence de la structure du pipeline](reference-pipeline-structure.md).

### Ajouter une action interrégionale à une étape du pipeline (console)
<a name="actions-cross-region-console-add"></a>

Utilisez la console pour ajouter une action inter-région à 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 **\+Ajouter 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 **\+Ajouter groupe d'action** pour ajouter une action en série. Ou choisissez **\+Ajouter une action** pour ajouter une action en parallèle.

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

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

   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 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. Par défaut, ** le champ ** Région est Région AWS identique à 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 étape de déploiement, choisissez ** BuildArtifact**.

   1. Choisissez **Enregistrer**.

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

1. Choisissez **Enregistrer**.

### Modifier une action interrégionale dans une étape du pipeline (console)
<a name="actions-cross-region-console-edit"></a>

Utilisez la console pour modifier une action inter-région 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é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. 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**.

### Supprimer une action interrégionale d'une étape du pipeline (console)
<a name="actions-cross-region-console-delete"></a>

Utilisez la console pour supprimer une action inter-région 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é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. 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**.

## Ajouter une action interrégionale à un pipeline (CLI)
<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 phase de pipeline avec le AWS CLI, vous ajoutez l'action de configuration ainsi qu'un `region` champ facultatif. Vous devez également avoir déjà créé un compartiment d'artefacts 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, vous {{RegionA}} trouverez 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 oléoduc dans{{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 interrégionale, se trouvent dans{{RegionB}}.

### Ajouter une action interrégionale à un pipeline (CLI)
<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 dans{{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égion qui inclut la région et les ressources de votre action. L'exemple JSON suivant ajoute une étape de déploiement avec une action de déploiement interrégionale 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égion. Le mappage doit inclure une entrée pour chaque AWS région dans laquelle vous avez des actions. Pour chaque entrée de la cartographie, les ressources doivent se trouver dans la AWS région correspondante. Dans l'exemple ci-dessous, `ID-A` est l'ID de clé de cryptage pour{{RegionA}}, et `ID-B` est l'ID de clé de cryptage 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 interrégionale s'affiche dans la console.  
![Vue globale d'un pipeline qui inclut une action inter-région.](https://docs.aws.amazon.com/fr_fr/codepipeline/latest/userguide/images/cross-region-icon.png)

## Ajoutez une action interrégionale à 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égion 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}} compartiment en tant que tel `us-west-2` et ajoute le nouveau {{RegionB}} compartiment : `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)**.