Ajout d'une action inter-régions 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.

Ajout d'une action inter-régions dans CodePipeline

AWS CodePipeline inclut un certain nombre d'actions qui vous aident à configurer, générer, tester et déployer les ressources de votre processus de publication automatique. Vous pouvez ajouter à votre pipeline des actions situées dans uneAWS région différente de votre pipeline. Lorsque anService AWS est le fournisseur d'une action et que ce type d'action/type de fournisseur se trouve dans uneAWS 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 lesAWS régions où ellesCodePipeline sont prises en charge. Pour obtenir la liste desAWS régions pris en chargeCodePipeline, consultezQuotas dans AWS CodePipeline.

Vous pouvez utiliser la console, l'interface AWS CLI ou AWS CloudFormation pour ajouter des actions inter-régions dans les pipelines.

Note

Certains types d'actionsCodePipeline peuvent n'être disponibles que dans certainesAWS régions. Notez également qu'il peut y avoirAWS des régions où un type d'action est disponible, mais aucunAWS 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

CodePipelinegère la copie d'artefacts d'uneAWS 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 inter-régions, les compartiments d'artefact par défaut sont configurés par CodePipeline dans les régions où vous avez des actions. Lorsque vous utilisez l'interface AWS CLI, AWS CloudFormation ou un kit SDK pour créer un pipeline ou des actions inter-régions, vous fournissez le compartiment d'artefact de 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êmeAWS région que l'action interrégionale et sur 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 une action d'appel Lambda entre régionsCodePipeline, l'état de l'exécution Lambda à l'aide du PutJobSuccessResultet PutJobFailureResultdoit être envoyé à laAWS région dans laquelle la fonction Lambda est présente et non à la région oùCodePipeline existe.

Lorsqu'un pipeline comprend une action inter-régions dans le cadre d'une étape, CodePipeline réplique uniquement les artefacts d'entrée de l'action inter-régions depuis la région du pipeline vers la région de l'action.

Note

La région du pipeline et la région dans laquelle les ressources de détection des modifications de vosCloudWatch événements sont gérées 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 console CodePipeline pour ajouter une action inter-régions à 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 (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.

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 laAWS 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ù lesAWS ressources sont créées pour ce type d'action et ce type de fournisseur. Ce champ s'affiche uniquement pour les actions pour lesquelles le fournisseur d'actions est unService AWS. Le champ Région est par défaut identiqueRé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 étape de déploiement, choisissez BuildArtifact.

    7. Choisissez Save (Enregistrer).

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

  7. Choisissez Save (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 Save (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 Save (Enregistrer).

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

Vous pouvez utiliser l'interface AWS CLI pour ajouter une action inter-régions à un pipeline existant.

Pour créer une action inter-régions dans une étape de pipeline avec l'interface AWS CLI, vous ajoutez l'action de configuration avec un champ facultatif region. 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 Amazon S3 RegionA utilisé pour stocker les artefacts du pipeline et le rôle de service utilisé parCodePipeline. RegionB est la région où l'application CodeDeploy, le groupe de déploiement et le rôle de service utilisé 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 la RegionB

  • Les ressources de votre action, telles que l'application CodeDeploy et le groupe de déploiement pour une action de déploiement inter-régions, dans RegionB.

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

Utilisez l'interface AWS CLI pour ajouter une action inter-régions à 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 étape de déploiement avec une action de déploiement inter-régions où le fournisseur est 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 }
  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 chaqueAWS région dans laquelle vous effectuez des actions. Pour chaque entrée de la cartographie, les ressources doivent se trouver dans laAWS 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" }

    Sauvegardez 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égion 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 utiliser AWS CloudFormation pour ajouter une action inter-régions à un pipeline existant.

Pour ajouter une action inter-régions 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).