

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ワークフロー実行間のファイルのキャッシュ
<a name="workflows-caching"></a>

ファイルキャッシュを有効にすると、ビルドアクションとテストアクションでディスク上のファイルがキャッシュに保存され、後続のワークフロー実行でそのキャッシュから復元されます。実行間で変更されていない依存関係を構築またはダウンロードすることで生じるレイテンシーがキャッシュによって軽減されます。CodeCatalyst ではフォールバックキャッシュもサポートしており、必要な依存関係の一部を含む部分的なキャッシュを復元するために使用できます。これにより、キャッシュミスによるレイテンシーの影響を軽減できます。

**注記**  
ファイルキャッシュは Amazon CodeCatalyst の[ビルド](build-workflow-actions.md)アクションと[テスト](test-workflow-actions.md)アクションでのみ利用可能で、**EC2** [コンピューティングタイプ](workflows-working-compute.md#compute.types)を使用するように構成されている場合しか利用できません。

**Topics**
+ [ファイルキャッシュについて](#workflows-caching.files)
+ [キャッシュの作成](#workflows-caching.fallback)
+ [ファイルキャッシュの制約](#workflows-caching.constraints)

## ファイルキャッシュについて
<a name="workflows-caching.files"></a>

ファイルキャッシュを使用すると、データを複数のキャッシュに整理できます。各キャッシュは `FileCaching` プロパティで参照されます。各キャッシュは、特定のパスで指定されたディレクトリを保存します。指定されたディレクトリは今後のワークフロー実行で復元されます。以下は、`cacheKey1` と `cacheKey2` という名前の複数のキャッシュでキャッシュするための YAML スニペットの例です。

```
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
```

**注記**  
CodeCatalyst では、ローカルキャッシュとリモートキャッシュで構成される多層キャッシュを使用します。プロビジョニングされたフリートまたはオンデマンドマシンがローカルキャッシュでキャッシュミスに遭遇すると、依存関係がリモートキャッシュから復元されます。その結果、一部のアクション実行では、リモートキャッシュのダウンロードからレイテンシーが発生する可能性があります。

CodeCatalyst ではキャッシュアクセス制限を適用して、あるワークフロー内のアクションが別のワークフローからキャッシュを変更できないようにします。これにより、ビルドやデプロイに影響を与える誤ったデータがプッシュされる可能性のある他のワークフローから各ワークフローを保護します。キャッシュをすべてのワークフローとブランチのペアリングに分離するキャッシュスコープを使用して制限が適用されます。例えば、ブランチ `feature-A` の `workflow-A` には、兄弟ブランチ `feature-B` の `workflow-A` とは異なるファイルキャッシュがあります。

ワークフローが指定されたファイルキャッシュを検索し、それを見つけられないときにキャッシュミスが発生します。新しいブランチを作成する際や、新しいキャッシュが参照されてそれがまだ作成されていない場合など、複数の理由でキャッシュミスが発生する可能性があります。また、キャッシュの有効期限が切れたときに発生する場合もあります。デフォルトでは、キャッシュが最後に使用された日から 14 日後に有効期限が切れます。キャッシュミスを軽減し、キャッシュヒット率を高めるために、CodeCatalyst ではフォールバックキャッシュをサポートしています。フォールバックキャッシュは代替キャッシュであり、キャッシュの古いバージョンである部分キャッシュを復元する機会を提供します。キャッシュは、最初にプロパティ名の `FileCaching` で一致を検索して復元され、見つからない場合は `RestoreKeys` を評価します。プロパティ名とすべての `RestoreKeys` の両方にキャッシュミスがある場合、キャッシュはベストエフォートであり、保証されないため、ワークフローは引き続き実行されます。

## キャッシュの作成
<a name="workflows-caching.fallback"></a>

次の手順に従って、ワークフローにキャッシュを追加できます。

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

**ビジュアルエディタを使用してキャッシュを追加するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[ビジュアル]** を選択します。

1. ワークフロー図で、キャッシュを追加するアクションを選択します。

1. **[設定]** を選択します。

1. **[ファイルのキャッシュ - 省略可]** で、**[キャッシュを追加]** を選択して次のようにフィールドに情報を入力します。

    **キー** 

   プライマリキャッシュプロパティ名の名前を指定します。キャッシュプロパティ名は、ワークフロー内で一意である必要があります。各アクションには、`FileCaching` に最大 5 つのエントリを含めることができます。

    **[Path]** (パス) 

   キャッシュの関連するパスを指定します。

    **復元キー - 省略可** 

   プライマリキャッシュプロパティが見つからない場合にフォールバックとして使用する復元キーを指定します。復元キー名は、ワークフロー内で一意である必要があります。各キャッシュには、`RestoreKeys` に最大 5 つのエントリを含めることができます。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

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

**YAML エディタを使用してキャッシュを追加するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. ワークフローアクションで、次のようなコードを追加します。

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

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------

## ファイルキャッシュの制約
<a name="workflows-caching.constraints"></a>

プロパティ名と `RestoreKeys` の制約は次のとおりです。
+ 名前はワークフロー内で一意である必要があります。
+ 名前に使用できるのは、英数字 (A～Z、a～z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。
+ 名前は 180 文字まで入力できます。
+ 各アクションには、`FileCaching` に最大 5 つのキャッシュを含めることができます。
+ 各キャッシュには、`RestoreKeys` に最大 5 つのエントリを含めることができます。

パスの制約は以下のとおりです。
+ アスタリスク (\$1) は使用できません。
+ パスは 255 文字まで入力できます。