Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Référence EC2 d'action Amazon

Mode de mise au point
Référence EC2 d'action Amazon - 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.

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.

Vous utilisez une EC2 EC2 action Amazon pour déployer le code d'application dans votre flotte de déploiement. Votre flotte de déploiement peut être composée d'instances Amazon EC2 Linux ou de nœuds gérés par Linux SSM. L'agent SSM doit être installé sur vos instances.

Note

Cette action prend uniquement en charge les types d'instances Linux. La taille de flotte maximale prise en charge est de 500 instances.

L'action choisira un nombre d'instances en fonction d'un maximum spécifié. Les instances défaillantes des instances précédentes seront sélectionnées en premier. L'action ignorera le déploiement sur certaines instances si l'instance a déjà reçu le déploiement du même artefact d'entrée, par exemple dans le cas où l'action a échoué précédemment.

Note

Cette action n'est prise en charge que pour les pipelines de type V2.

Type d'action

  • Catégorie : Deploy

  • Propriétaire : AWS

  • Fournisseur : EC2

  • Version : 1

Paramètres de configuration

InstanceTagKey

Obligatoire : oui

La clé de balise des instances que vous avez créées sur Amazon EC2, telles queName.

InstanceTagValue

Obligatoire : oui

La valeur de balise des instances que vous avez créées sur Amazon EC2, telles quemy-instances.

InstanceType

Obligatoire : oui

Type d'instances ou de nœuds SSM créés dans Amazon EC2. Les valeurs valides sont EC2 et SSM_MANAGED_NODE.

Vous devez avoir déjà créé, balisé et installé l'agent SSM sur toutes les instances.

Note

Lorsque vous créez l'instance, vous créez ou utilisez un rôle d' EC2instance existant. Pour éviter les Access Denied erreurs, vous devez ajouter des autorisations de compartiment S3 au rôle d'instance afin de donner à l'instance des autorisations d'accès au compartiment d' CodePipeline artefacts. Créez un rôle par défaut ou mettez à jour votre rôle existant avec l's3:GetObjectautorisation limitée au compartiment d'artefacts correspondant à la région de votre pipeline.

TargetDirectory

Obligatoire : oui

Le répertoire à utiliser sur votre EC2 instance Amazon pour exécuter des scripts.

MaxBatch

Obligatoire : non

Le nombre maximum d'instances autorisées à être déployées en parallèle.

MaxError

Obligatoire : non

Le nombre maximal d'erreurs d'instance autorisées pendant le déploiement.

TargetGroupNameList

Obligatoire : non

Liste des noms de groupes cibles pour le déploiement. Vous devez déjà avoir créé les groupes cibles.

Les groupes cibles fournissent un ensemble d'instances pour traiter des demandes spécifiques. Si le groupe cible est spécifié, les instances seront supprimées du groupe cible avant le déploiement et réajoutées au groupe cible après le déploiement.

PreScript

Obligatoire : non

Le script à exécuter avant la phase de déploiement de l'action.

PostScript

Obligatoire : oui

Le script à exécuter après la phase de déploiement de l'action.

L'image suivante montre un exemple de page d'édition pour l'action.

La page d'action Modifier pour un nouveau pipeline avec l'action EC2 Déployer

Artefacts d'entrée

  • Nombre d'objets : 1

  • Description : les fichiers fournis, le cas échéant, pour prendre en charge les actions du script lors du déploiement.

Artefacts de sortie

  • Nombre d'objets : 0

  • Description : les artefacts de sortie ne s'appliquent pas à ce type d'action.

Politique des rôles de service et autorisations pour l'action de EC2 déploiement

Lors de l' CodePipeline exécution de l'action, le rôle de CodePipeline service nécessite les autorisations suivantes, définies de manière appropriée pour l'accès avec le moins de privilèges.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "StatementWithAllResource", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "elasticloadbalancing:DescribeTargetGroupAttributes", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "ssm:CancelCommand", "ssm:DescribeInstanceInformation", "ssm:ListCommandInvocations" ], "Resource": [ "*" ] }, { "Sid": "StatementForLogs", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:{{region}}:{{AccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForElasticloadbalancing", "Effect": "Allow", "Action": [ "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:RegisterTargets" ], "Resource": [ "arn:aws:elasticloadbalancing:{{region}}:{{AccountId}}:targetgroup/[[targetGroupName]]/*" ] }, { "Sid": "StatementForSsmOnTaggedInstances", "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:{{region}}:{{AccountId}}:instance/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/{{tagKey}}": "{{tagValue}}" } } }, { "Sid": "StatementForSsmApprovedDocuments", "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": [ "arn:aws:ssm:{{region}}::document/AWS-RunPowerShellScript", "arn:aws:ssm:{{region}}::document/AWS-RunShellScript" ] } ] }

Enregistrez les groupes de votre pipeline dans CloudWatch des journaux

Lorsque l'action est CodePipeline exécutée, CodePipeline crée un groupe de journaux en utilisant le nom du pipeline comme suit. Cela vous permet de limiter les autorisations de journalisation des ressources en utilisant le nom du pipeline.

/aws/codepipeline/MyPipelineName

Les autorisations de journalisation suivantes sont incluses dans les mises à jour ci-dessus pour le rôle de service.

  • journaux : CreateLogGroup

  • journaux : CreateLogStream

  • journaux : PutLogEvents

Pour afficher les journaux dans la console à l'aide de la page de dialogue des détails de l'action, l'autorisation d'afficher les journaux doit être ajoutée au rôle de console. Pour plus d'informations, consultez l'exemple de politique d'autorisation de console dansAutorisations requises pour consulter les journaux de calcul dans la CodePipeline console.

Politique des rôles de service et autorisations pour les CloudWatch journaux

Lorsque l'action est CodePipeline exécutée, CodePipeline crée un groupe de journaux en utilisant le nom du pipeline comme suit. Cela vous permet de limiter les autorisations de journalisation des ressources en utilisant le nom du pipeline.

/aws/codepipeline/MyPipelineName

Pour afficher les journaux dans la console à l'aide de la page de dialogue des détails de l'action, l'autorisation d'afficher les journaux doit être ajoutée au rôle de console. Pour plus d'informations, consultez l'exemple de politique d'autorisation de console dansAutorisations requises pour consulter les journaux de calcul dans la CodePipeline console.

Déclaration d'action

YAML
name: DeployEC2 actions: - name: EC2 actionTypeId: category: Deploy owner: AWS provider: EC2 version: '1' runOrder: 1 configuration: InstanceTagKey: Name InstanceTagValue: my-instances InstanceType: EC2 PostScript: "test/script.sh", TargetDirectory: "/home/ec2-user/deploy" outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1
JSON
{ "name": "DeployEC2", "actions": [ { "name": "EC2Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "EC2", "version": "1" }, "runOrder": 1, "configuration": { "InstanceTagKey": "Name", "InstanceTagValue": "my-instances", "InstanceType": "EC2", "PostScript": "test/script.sh", "TargetDirectory": "/home/ec2-user/deploy" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1" } ] },
name: DeployEC2 actions: - name: EC2 actionTypeId: category: Deploy owner: AWS provider: EC2 version: '1' runOrder: 1 configuration: InstanceTagKey: Name InstanceTagValue: my-instances InstanceType: EC2 PostScript: "test/script.sh", TargetDirectory: "/home/ec2-user/deploy" outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.