

Amazon n' CodeCatalyst est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour de plus amples informations, veuillez consulter [Comment effectuer une migration depuis CodeCatalyst](migration.md).

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.

# Mise en cache des fichiers entre les exécutions du flux de travail
<a name="workflows-caching"></a>

Lorsque la mise en cache de fichiers est activée, les actions de génération et de test enregistrent les fichiers sur disque dans un cache et les restaurent à partir de ce cache lors des exécutions de flux de travail suivantes. La mise en cache réduit la latence causée par la création ou le téléchargement de dépendances qui n'ont pas changé entre les exécutions. CodeCatalyst prend également en charge les caches de secours, qui peuvent être utilisés pour restaurer des caches partiels contenant certaines des dépendances nécessaires. Cela permet de réduire l'impact sur la latence d'un échec du cache.

**Note**  
La mise en cache des fichiers n'est disponible qu'avec les actions de CodeCatalyst [compilation](build-workflow-actions.md) et de [test](test-workflow-actions.md) Amazon, et uniquement lorsqu'elles sont configurées pour utiliser le [type de **EC2**calcul](workflows-working-compute.md#compute.types).

**Topics**
+ [À propos de la mise en cache de fichiers](#workflows-caching.files)
+ [Création d'un cache](#workflows-caching.fallback)
+ [Contraintes de mise en cache de fichiers](#workflows-caching.constraints)

## À propos de la mise en cache de fichiers
<a name="workflows-caching.files"></a>

La mise en cache des fichiers vous permet d'organiser vos données dans plusieurs caches, chacun référencé sous la `FileCaching` propriété. Chaque cache enregistre un répertoire spécifié par un chemin donné. Le répertoire spécifié sera restauré lors des futures exécutions du flux de travail. Voici un exemple d'extrait de code YAML pour la mise en cache avec plusieurs caches nommés et. `cacheKey1` `cacheKey2`

```
Actions:
  BuildMyNpmApp:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: npm install
        - Run: npm run test
    Caching:
      FileCaching:
        cacheKey1:
          Path: file1.txt
          RestoreKeys:
             - restoreKey1
        cacheKey2:
          Path: /root/repository
          RestoreKeys:
             - restoreKey2
             - restoreKey3
```

**Note**  
CodeCatalyst utilise une mise en cache multicouche, composée d'un cache local et d'un cache distant. Lorsque des flottes provisionnées ou des machines à la demande rencontrent une erreur de cache dans un cache local, les dépendances sont restaurées à partir d'un cache distant. Par conséquent, le téléchargement d'un cache distant peut entraîner une latence lors de l'exécution de certaines actions.

CodeCatalyst applique des restrictions d'accès au cache pour garantir qu'une action dans un flux de travail ne peut pas modifier les caches d'un autre flux de travail. Cela protège chaque flux de travail contre d'autres qui pourraient transmettre des données incorrectes ayant un impact sur les builds ou les déploiements. Les restrictions sont appliquées grâce à des étendues de cache qui isolent les caches pour chaque flux de travail et chaque association de branches. Par exemple, `workflow-A` la branche `feature-A` possède un cache de fichiers différent de celui `workflow-A` de la branche `feature-B` sœur.

Des erreurs de cache se produisent lorsqu'un flux de travail recherche un cache de fichiers spécifié et ne parvient pas à le trouver. Cela peut se produire pour plusieurs raisons, par exemple lorsqu'une nouvelle branche est créée ou lorsqu'un nouveau cache est référencé alors qu'il n'a pas encore été créé. Cela peut également se produire lorsqu'un cache expire, ce qui se produit par défaut 14 jours après sa dernière utilisation. Pour atténuer les erreurs de cache et augmenter le taux d'accès au cache, CodeCatalyst prend en charge les caches de secours. Les caches de secours sont des caches alternatifs et permettent de restaurer des caches partiels, qui peuvent être une ancienne version d'un cache. Un cache est restauré en recherchant d'abord une correspondance sous le nom `FileCaching` de propriété et, s'il n'est pas trouvé, il est évalué. `RestoreKeys` En cas d'erreur de cache à la fois pour le nom de la propriété et pour l'ensemble des propriétés`RestoreKeys`, le flux de travail continuera de s'exécuter, car la mise en cache est une solution optimale et n'est pas garantie.

## Création d'un cache
<a name="workflows-caching.fallback"></a>

Vous pouvez utiliser les instructions suivantes pour ajouter un cache à votre flux de travail.

------
#### [ Visual ]

**Pour ajouter un cache à l'aide de l'éditeur visuel**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. Dans le diagramme du flux de travail, choisissez l'action à laquelle vous souhaitez ajouter votre cache.

1. Choisissez **Configuration**.

1. Sous **Mise en cache de fichiers - facultatif**, choisissez **Ajouter un cache** et entrez les informations dans les champs, comme suit :

    **Clé** 

   Spécifiez le nom de votre propriété de cache principale. Les noms des propriétés du cache doivent être uniques dans votre flux de travail. Chaque action peut comporter jusqu'à cinq entrées`FileCaching`.

    **Chemin** 

   Spécifiez le chemin associé à votre cache. 

    **Clés de restauration : facultatif** 

   Spécifiez la clé de restauration à utiliser comme solution de secours lorsque la propriété de cache principale est introuvable. Les noms des clés de restauration doivent être uniques dans votre flux de travail. Chaque cache peut contenir jusqu'à cinq entrées`RestoreKeys`.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------
#### [ YAML ]

**Pour ajouter un cache à l'aide de l'éditeur YAML**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. Dans une action de flux de travail, ajoutez un code similaire au suivant :

   ```
   action-name:
     Configuration:
       Steps: ...
     Caching:
       FileCaching:
         key-name:
           Path: file-path
           # # Specify any additional fallback caches
           # RestoreKeys:
           #  - restore-key
   ```

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------

## Contraintes de mise en cache de fichiers
<a name="workflows-caching.constraints"></a>

Les contraintes relatives au nom de la propriété sont les `RestoreKeys` suivantes :
+ Les noms doivent être uniques dans un flux de travail.
+ Les noms sont limités aux caractères alphanumériques (A-Z, a-z, 0-9), aux tirets (-) et aux traits de soulignement (\$1).
+ Les noms peuvent comporter jusqu'à 180 caractères.
+ Chaque action peut contenir jusqu'à cinq caches. `FileCaching`
+ Chaque cache peut contenir jusqu'à cinq entrées`RestoreKeys`.

Les contraintes relatives aux chemins sont les suivantes :
+ Les astérisques (\$1) ne sont pas autorisés.
+ Les chemins peuvent comporter jusqu'à 255 caractères.