Ajouter une action interrégionale dans CodePipeline - 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.

Ajouter une action interrégionale dans CodePipeline

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 d'action/ce type de fournisseur 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, voirQuotas dans AWS CodePipeline.

Vous pouvez utiliser la console ou AWS 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.

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. AWS 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 PutJobSuccessResultdu PutJobFailureResultet 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)

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).

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 interrégionale, un compartiment d'artefacts distinct est CodePipeline utilisé 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.

Ajout d'une action inter-régions à une étape de pipeline (console)

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 via http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Sélectionnez votre pipeline, puis choisissez Modifier.

  3. 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.

  4. 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.

  5. Sur la page Modifier l'action :

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

    2. Dans Fournisseur d'action, choisissez le fournisseur d'action.

    3. 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.

    4. 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.

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

    6. 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.

    7. Choisissez Enregistrer.

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

  7. Choisissez Enregistrer.

Modification d'une action inter-régions dans une étape de pipeline (console)

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.

  2. Sélectionnez votre pipeline, puis choisissez Modifier.

  3. Choisissez Modifier l'étape.

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

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

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

  7. Choisissez Enregistrer.

Suppression d'une action inter-régions dans une étape de pipeline (console)

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 via http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Sélectionnez votre pipeline, puis choisissez Modifier.

  3. Choisissez Modifier l'étape.

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

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

  6. Choisissez Enregistrer.

Ajout d'une action inter-régions à un pipeline (interface de ligne de commande)

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 correspond à la région où 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.

Prérequis

Vous devez avoir créé ce qui suit :

  • Un pipeline 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 entre régions, dans RegionB.

Ajout d'une action inter-régions à un pipeline (interface de ligne de commande)

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 commande get-pipeline afin de copier la structure de 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.

  2. 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égionus-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 }
  3. 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" } },
  4. 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.

  5. 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.

  6. 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.

Ajout d'une action inter-régions à un pipeline (AWS CloudFormation)

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

Pour ajouter une action interrégionale avec AWS 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
  2. 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 compartiment RegionA sous la forme us-west-2 et ajoute le nouveau compartiment RegionB, 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
  3. Enregistrez le modèle mis à jour sur votre ordinateur local, puis ouvrez la console AWS CloudFormation .

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

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

  6. Sélectionnez Execute (Exécuter).