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.
Automatisez les sauvegardes basées sur les événements depuis Amazon S3 CodeCommit à l'aide CodeBuild de and Events CloudWatch
Créée par Kirankumar Chandrashekar () AWS
Environnement : Production | Technologies : DevOps ; Stockage et sauvegarde | Charge de travail : toutes les autres charges de travail |
AWSservices : Amazon S3 ; Amazon CloudWatch AWS CodeBuild ; AWS CodeCommit |
Récapitulatif
Sur le cloud Amazon Web Services (AWS), vous pouvez l'utiliser AWS CodeCommit pour héberger des référentiels sécurisés basés sur Git. CodeCommit est un service de contrôle de source entièrement géré. Toutefois, si un CodeCommit dépôt est supprimé accidentellement, son contenu est également supprimé et ne peut pas être restauré
Ce modèle décrit comment sauvegarder automatiquement un CodeCommit référentiel dans un compartiment Amazon Simple Storage Service (Amazon S3) après qu'une modification a été apportée au référentiel. Si le CodeCommit référentiel est supprimé ultérieurement, cette stratégie de sauvegarde vous propose une option point-in-time de restauration.
Conditions préalables et limitations
Prérequis
Un compte AWS actif.
Un CodeCommit référentiel existant, avec un accès utilisateur configuré en fonction de vos besoins. Pour plus d'informations, consultez la section Configuration pour AWS CodeCommit dans la CodeCommit documentation.
Un compartiment S3 pour le téléchargement des CodeCommit sauvegardes.
Limites
Ce modèle sauvegarde automatiquement tous vos CodeCommit référentiels. Si vous souhaitez sauvegarder des CodeCommit référentiels individuels, vous devez modifier la règle Amazon CloudWatch Events.
Architecture
Le schéma suivant illustre le flux de travail pour ce modèle.
Le flux de travail se compose des étapes suivantes :
Le code est transféré vers un CodeCommit dépôt.
Le CodeCommit référentiel informe CloudWatch Events d'une modification du référentiel (par exemple, une
git push
commande).CloudWatch Events invoque AWS CodeBuild et lui envoie les informations du CodeCommit référentiel.
CodeBuild clone l'intégralité du CodeCommit dépôt et l'empaquette dans un fichier .zip.
CodeBuild télécharge le fichier .zip dans un compartiment S3.
Pile technologique
CloudWatch Évènements
CodeBuild
CodeCommit
Amazon S3
Outils
Amazon CloudWatch Events — CloudWatch Events fournit un flux en temps quasi réel d'événements système décrivant les modifications apportées aux AWS ressources.
AWS CodeBuild— CodeBuild est un service d'intégration continue entièrement géré qui compile le code source, exécute des tests et produit des progiciels prêts à être déployés.
AWS CodeCommit— CodeCommit est un service de contrôle de source entièrement géré qui héberge des référentiels sécurisés basés sur Git.
AWSIdentity and Access Management (IAM) IAM est un service Web qui vous permet de contrôler en toute sécurité l'accès aux AWS ressources.
Amazon S3 — Amazon Simple Storage Service (Amazon S3) est un service de stockage pour Internet.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez un rôle CodeBuild de service. | Connectez-vous à la console AWS de gestion et IAM ouvrez-la. Choisissez Rôles, puis sélectionnez Créer un rôle. Créez un rôle de service CodeBuild pour cloner le CodeCommit référentiel, télécharger des fichiers dans le compartiment S3 et envoyer des journaux à Amazon CloudWatch. Pour plus d'informations, consultez la section Créer un rôle de CodeBuild service dans la CodeBuild documentation. | Administrateur du cloud |
Créez un CodeBuild projet. | Sur la CodeBuild console, choisissez Create CodeBuild project. Créez un CodeBuild projet en utilisant le | Administrateur du cloud |
Tâche | Description | Compétences requises |
---|---|---|
Créez un IAM rôle pour les CloudWatch événements. | Sur la IAM console, choisissez Rôles et créez un IAM rôle pour CloudWatch Events. Pour plus d'informations à ce sujet, consultez la section IAMRôle CloudWatch des événements dans la IAM documentation. Important : vous devez ajouter | Administrateur du cloud |
Créez une règle d' CloudWatch événements. |
Important : cette règle CloudWatch relative aux événements décrit les modifications apportées à tous vos CodeCommit référentiels. Vous devez modifier la règle CloudWatch des événements si vous souhaitez sauvegarder des CodeCommit référentiels individuels ou utiliser des compartiments S3 distincts pour différentes sauvegardes de référentiels. | Administrateur du cloud |
Ressources connexes
Création d'un CodeBuild projet
Création et configuration d'une règle d' CloudWatch événements
Informations supplémentaires
CodeBuild modèle buildspec.yml
version: 0.2 phases: install: commands: - pip install git-remote-codecommit build: commands: - env - git clone -b $REFERENCE_NAME codecommit::$REPO_REGION://$REPOSITORY_NAME - dt=$(date '+%d-%m-%Y-%H:%M:%S'); - echo "$dt" - zip -yr $dt-$REPOSITORY_NAME-backup.zip ./ - aws s3 cp $dt-$REPOSITORY_NAME-backup.zip s3:// #substitute a valid S3 Bucket Name here
CloudWatch Règle des événements
{ "source": [ "aws.codecommit" ], "detail-type": [ "CodeCommit Repository State Change" ], "detail": { "event": [ "referenceCreated", "referenceUpdated" ] } }
Exemple de transformateur d'entrée pour la cible de la règle CloudWatch Events
Chemin d'entrée :
{"referenceType":"$.detail.referenceType","region":"$.region","repositoryName":"$.detail.repositoryName","account":"$.account","referenceName":"$.detail.referenceName"}
Modèle de saisie (veuillez renseigner les valeurs appropriées) :
{ "environmentVariablesOverride": [ { "name": "REFERENCE_NAME", "value": "" }, { "name": "REFERENCE_TYPE", "value": "" }, { "name": "REPOSITORY_NAME", "value": "" }, { "name": "REPO_REGION", "value": "" }, { "name": "ACCOUNT_ID", "value": "" } ] }