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 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, consultezQuotas dans AWS CodePipeline.
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.
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 et PutJobFailureResult 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)
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).
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.
Ajouter une action interrégionale à une étape du pipeline (console)
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
-
Connectez-vous à la console à l'adresse http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Sélectionnez votre pipeline, puis choisissez Modifier.
-
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.
-
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.
-
Sur la page Modifier l'action :
-
Dans Nom de l'action, saisissez un nom pour l'action inter-région.
-
Dans Fournisseur d'action, choisissez le fournisseur d'action.
-
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.
-
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.
-
Complétez tous les champs obligatoires pour le fournisseur d'action que vous configurez.
-
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.
-
Choisissez Enregistrer.
-
-
Dans Modifier : <Étape>, choisissez Effectué.
-
Choisissez Enregistrer.
Modifier une action interrégionale dans une étape du pipeline (console)
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
-
Connectez-vous à la console à l'adresse http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Sélectionnez votre pipeline, puis choisissez Modifier.
-
Choisissez Modifier l'étape.
-
Dans Modifier : <Étape>, choisissez l'icône de modification d'une action existante.
-
Sur la page Modifier l'action, modifiez les champs comme il convient.
-
Dans Modifier : <Étape>, choisissez Effectué.
-
Choisissez Enregistrer.
Supprimer une action interrégionale d'une étape du pipeline (console)
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
-
Connectez-vous à la console à l'adresse http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Sélectionnez votre pipeline, puis choisissez Modifier.
-
Choisissez Modifier l'étape.
-
Dans Modifier : <Étape>, choisissez l'icône de suppression d'une action existante.
-
Dans Modifier : <Étape>, choisissez Effectué.
-
Choisissez Enregistrer.
Ajouter une action interrégionale à un pipeline (CLI)
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. RegionBest 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
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)
Utilisez le AWS CLI pour ajouter une action interrégionale à un pipeline.
Pour ajouter une action inter-région
-
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 --nameMyFirstPipeline>pipeline.jsonCette 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.
-
Ajoutez le champ
regionpour 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é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 } -
Dans la structure de pipeline, supprimez le champ
artifactStoreet ajoutez la carteartifactStorespour 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-Aest l'ID de clé de cryptage pourRegionA, etID-Best l'ID de clé de cryptage pourRegionB."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-bucketet 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" } }, -
Si vous utilisez la structure de pipeline extraite à l'aide de la commande get-pipeline, supprimez les lignes
metadatadu 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.
-
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.jsonCette 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-executionpour démarrer manuellement votre pipeline. -
Une fois que vous avez mis à jour votre pipeline, l'action interrégionale s'affiche dans la console.
Ajoutez une action interrégionale à un pipeline (CloudFormation)
Vous pouvez l'utiliser CloudFormation pour ajouter une action interrégionale à un pipeline existant.
Pour ajouter une action interrégionale avec CloudFormation
-
Ajoutez le paramètre
Regionà la ressourceActionDeclarationdans 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: IntegerRegion:Type: String -
Sous
Mappings, ajoutez le mappage de région comme indiqué dans cet exemple pour un mappage nomméSecondRegionMapqui mappe les valeurs des clésRegionAetRegionB. Sous la ressourcePipeline, sous le champartifactStore, ajoutez la carteartifactStorespour votre nouvelle action inter-région comme suit :Mappings: SecondRegionMap:RegionA: SecondRegion: "RegionB"RegionB: SecondRegion: "RegionA" ... Properties: ArtifactStores: - Region:RegionBArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionB- Region:RegionAArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionAL'exemple YAML suivant montre le
RegionAcompartiment en tant que telus-west-2et ajoute le nouveauRegionBcompartiment :eu-central-1Mappings: 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 -
Enregistrez le modèle mis à jour sur votre ordinateur local, puis ouvrez la console CloudFormation .
-
Choisissez votre pile, puis Créer un jeu de modifications pour la pile actuelle.
-
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.
-
Sélectionnez Execute (Exécuter).