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.
Création de pipelines avec une source S3 activée pour les événements (CLI)
Suivez ces étapes pour créer un pipeline avec une source S3 qui utilise un événement EventBridge pour détecter les modifications. Pour connaître les étapes complètes de création d'un pipeline avec la CLI, consultezCréation d'un pipeline, d'étapes et d'actions.
Pour créer un pipeline piloté par des événements avec Amazon S3, vous modifiez le PollForSourceChanges paramètre de votre pipeline, puis vous créez les ressources suivantes :
-
EventBridge règle de l'événement
-
Rôle IAM pour permettre à l' EventBridge événement de démarrer votre pipeline
Pour créer une EventBridge règle avec Amazon S3 comme source d'événement et CodePipeline comme cible et appliquer la politique d'autorisations
-
Accordez EventBridge des autorisations permettant CodePipeline d'invoquer la règle. Pour plus d'informations, consultez Utiliser des politiques basées sur les ressources pour Amazon. EventBridge
-
Utilisez l'exemple suivant pour créer la stratégie d'approbation qui permet à EventBridge d'assumer le rôle de service. Nommez-la
trustpolicyforEB.json. -
Utilisez la commande suivante pour créer le rôle
Role-for-MyRuleet attachez la stratégie d'approbation.Pourquoi est-ce que j'effectue cette modification ? L'ajout de cette stratégie d'approbation au rôle crée des autorisations pour EventBridge.
aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json -
Créez le JSON de stratégie d'autorisations, comme décrit ici, pour le pipeline nommé
MyFirstPipeline. Nommez la stratégie d'autorisationspermissionspolicyforEB.json. -
Utilisez la commande suivante pour attacher la nouvelle stratégie d'autorisations
CodePipeline-Permissions-Policy-for-EBau rôleRole-for-MyRuleque vous avez créé.aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
-
-
Appelez la commande put-rule et incluez les paramètres
--name,--event-patternet--role-arn.L'exemple de commande suivant crée une règle nommée
EnabledS3SourceRule.aws events put-rule --name "EnabledS3SourceRule" --event-pattern "{\"source\":[\"aws.s3\"],\"detail-type\":[\"Object Created\"],\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-source-bucket\"]}}}" --role-arn "arn:aws:iam::ACCOUNT_ID:role/Role-for-MyRule" -
Pour ajouter CodePipeline en tant que cible, appelez la put-targets commande et incluez les
--targetsparamètres--ruleet.La commande suivante spécifie que pour la règle nommée
EnabledS3SourceRule, l'Idcible est composé du numéro un, ce qui indique qu'il s'agit de la règle 1 dans une liste de cibles pour la règle. La commande spécifie également un exemple d'ARNpour le pipeline. Le pipeline démarre lorsque des modifications sont effectuées dans le référentiel.aws events put-targets --rule EnabledS3SourceRule --targets Id=codepipeline-AppPipeline,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline
Pour modifier le PollForSourceChanges paramètre de votre pipeline
Important
Lorsque vous créez un pipeline avec cette méthode, le paramètre PollForSourceChanges prend la valeur Vrai par défaut s'il n'est pas explicitement défini sur Faux. Lorsque vous ajoutez la détection des modifications basée sur les événements, vous devez ajouter le paramètre à votre sortie et le configurer sur Faux pour désactiver l'interrogation. Sinon, votre pipeline démarre deux fois pour une seule modification de source. Pour en savoir plus, consultez Réglages valides pour le PollForSourceChanges paramètre.
-
Exécutez la commande get-pipeline pour 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 --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.
-
Ouvrez le fichier JSON dans un éditeur de texte brut et modifiez l'étape source en remplaçant la valeur du paramètre
PollForSourceChangespour un compartiment nomméamzn-s3-demo-source-bucketparfalse, comme illustré dans cet exemple.Pourquoi est-ce que j'effectue cette modification ? La définition de ce paramètre sur
falsedésactive les vérifications périodiques, ce qui vous permet d'utiliser la détection des modifications basée sur les événements uniquement."configuration": { "S3Bucket": "amzn-s3-demo-source-bucket","PollForSourceChanges": "false","S3ObjectKey": "index.zip" }, -
Si vous utilisez la structure de pipeline extraite à l'aide de la commande get-pipeline, vous devez supprimer 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.
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.