

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

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

# アクション間でのアーティファクトとファイルの共有
<a name="workflows-working-artifacts"></a>

*アーティファクト*はワークフローアクションの出力であり、通常はフォルダまたはファイルのアーカイブで構成されます。アーティファクトは、アクション間でのファイルや情報の共有を可能にするため重要です。

`sam-template.yml` ファイルを*生成*するビルドアクションがあっても、デプロイアクションでそれを*使用*するようにしたい場合を考えてみましょう。このシナリオでは、アーティファクトを使用して、ビルドアクションが `sam-template.yml` ファイルをデプロイアクションと共有できるようにします。コードは次のようになります。

```
Actions:
  BuildAction:
    Identifier: aws/build@v1
    Steps:
      - Run: sam package --output-template-file sam-template.yml
    Outputs:
      Artifacts:
        - Name: MYARTIFACT
          Files:
            - sam-template.yml
  DeployAction:
    Identifier: aws/cfn-deploy@v1  
    Inputs:
      Artifacts:
        - MYARTIFACT
    Configuration:
      template: sam-template.yml
```

前のコードでは、ビルドアクション (`BuildAction`) が `sam-template.yml` ファイルを生成し、それを `MYARTIFACT` という出力アーティファクトに追加します。後続のデプロイアクション (`DeployAction`) では、`MYARTIFACT` を入力として指定し、`sam-template.yml` ファイルへのアクセスを許可します。

**Topics**
+ [アーティファクトを出力や入力として指定せずに共有できますか?](#workflows-working-artifacts-share)
+ [ワークフロー間でアーティファクトを共有できますか?](#workflows-working-artifacts-share-wf)
+ [アーティファクトの例](workflows-working-artifacts-ex.md)
+ [出力アーティファクトの定義](workflows-working-artifacts-output.md)
+ [入力アーティファクトの定義](workflows-working-artifacts-refer.md)
+ [アーティファクト内のファイルの参照](workflows-working-artifacts-refer-files.md)
+ [アーティファクトのダウンロード](workflows-download-workflow-outputs.md)

## アーティファクトを出力や入力として指定せずに共有できますか?
<a name="workflows-working-artifacts-share"></a>

はい。アクションの YAML コードの `Outputs` および `Inputs` セクションでアーティファクトを指定せずに、アクション間でアーティファクトを共有できます。これを行うには、コンピューティング共有を有効にする必要があります。コンピューティング共有と、コンピューティング共有が有効になっているときにアーティファクトを指定する方法の詳細については、「[アクション間でのコンピューティングの共有する](compute-sharing.md)」を参照してください。

**注記**  
コンピューティング共有機能では、`Outputs` および `Inputs` セクションが不要になることで、ワークフローの YAML コードを簡素化できますが、この機能には有効にする前に注意すべき制限があります。制限の詳細については、「[コンピューティング共有に関する考慮事項](compute-sharing.md#compare-compute-sharing)」を参照してください。

## ワークフロー間でアーティファクトを共有できますか?
<a name="workflows-working-artifacts-share-wf"></a>

いいえ。異なるワークフロー間でアーティファクトを共有することはできませんが、同じワークフロー内のアクション間でアーティファクトを共有することはできます。

# アーティファクトの例
<a name="workflows-working-artifacts-ex"></a>

次の例は、Amazon CodeCatalyst ワークフロー定義ファイルでアーティファクトを出力、入力、参照する方法を示しています。

**Topics**
+ [例: アーティファクトの出力](#workflows-working-artifacts-ex-basic)
+ [例: 別のアクションによって生成されたアーティファクトの入力](#workflows-working-artifacts-ex-ref)
+ [例: 複数のアーティファクトでのファイルの参照](#workflows-working-artifacts-ex-ref-file)
+ [例: 1 つのアーティファクトでのファイルの参照](#workflows-working-artifacts-ex-ref-file-one)
+ [例: WorkflowSource が存在するときのアーティファクト内のファイルの参照](#workflows-working-artifacts-ex-ref-file-wf-source)
+ [例: アクショングループが存在するときのアーティファクト内のファイルの参照](#workflows-working-artifacts-ex-groups)

## 例: アーティファクトの出力
<a name="workflows-working-artifacts-ex-basic"></a>

次の例は、2 つの .jar ファイルを含むアーティファクトを出力する方法を示しています。

```
Actions:
  Build:
    Identifier: aws/build@v1
    Outputs:
      Artifacts:
        - Name: ARTIFACT1
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
```

## 例: 別のアクションによって生成されたアーティファクトの入力
<a name="workflows-working-artifacts-ex-ref"></a>

次の例は、`BuildActionA` で `ARTIFACT4` というアーティファクトを出力し、`BuildActionB` に入力する方法を示しています。

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ARTIFACT4
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
  BuildActionB:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ARTIFACT4
    Configuration:
```

## 例: 複数のアーティファクトでのファイルの参照
<a name="workflows-working-artifacts-ex-ref-file"></a>

次の例は、`BuildActionC` で `ART5` と `ART6` という名前の 2 つのアーティファクトを出力し、`BuildActionD` (`Steps` の下) で `file5.txt` (アーティファクト `ART5` 内) と `file6.txt` (アーティファクト `ART6` 内) という名前の 2 つのファイルを参照する方法を示しています。

**注記**  
ファイルの参照の詳細については、「[アーティファクト内のファイルの参照](workflows-working-artifacts-refer-files.md)」を参照してください。

**注記**  
この例では `$CATALYST_SOURCE_DIR_ART5` プレフィックスが使用されていますが、こちらは省略しても構いません。これは、 `ART5` が*プライマリ入力*であるためです。プライマリ入力の詳細については、「[アーティファクト内のファイルの参照](workflows-working-artifacts-refer-files.md)」を参照してください。

```
Actions:
  BuildActionC:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART5
          Files:
            - build-output/file5.txt
        - Name: ART6
          Files:
            - build-output/file6.txt
  BuildActionD:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART5
        - ART6
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt
        - run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt
```

## 例: 1 つのアーティファクトでのファイルの参照
<a name="workflows-working-artifacts-ex-ref-file-one"></a>

次の例は、`BuildActionE` で `ART7` という名前の 1 つのアーティファクトを出力し、`BuildActionF` (`Steps` の下) で `file7.txt` (アーティファクト `ART7` 内) を参照する方法を示しています。

参照では、「[例: 複数のアーティファクトでのファイルの参照](#workflows-working-artifacts-ex-ref-file)」で行ったように `build-output` ディレクトリの前に `$CATALYST_SOURCE_DIR_`*アーティファクト名*プレフィックスが必要でないことに注意してください。これは、`Inputs` で指定された項目が 1 つだけであるためです。

**注記**  
ファイルの参照の詳細については、「[アーティファクト内のファイルの参照](workflows-working-artifacts-refer-files.md)」を参照してください。

```
Actions:
  BuildActionE:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART7
          Files:
            - build-output/file7.txt
  BuildActionF:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART7
    Configuration:
      Steps:
        - run: cd build-output && cat file7.txt
```

## 例: WorkflowSource が存在するときのアーティファクト内のファイルの参照
<a name="workflows-working-artifacts-ex-ref-file-wf-source"></a>

次の例は、`BuildActionG` で `ART8` という名前の 1 つのアーティファクトを出力し、`BuildActionH` (`Steps` の下) で `file8.txt` (アーティファクト `ART8` 内) を参照する方法を示しています。

参照では、「[例: 複数のアーティファクトでのファイルの参照](#workflows-working-artifacts-ex-ref-file)」で行ったように `$CATALYST_SOURCE_DIR_`*アーティファクト名*プレフィックスが必要であることに注意してください。これは、`Inputs` (ソースとアーティファクト) で複数の項目が指定されているため、ファイルを検索する場所を示すプレフィックスが必要となるためです。

**注記**  
ファイルの参照の詳細については、「[アーティファクト内のファイルの参照](workflows-working-artifacts-refer-files.md)」を参照してください。

```
Actions:
  BuildActionG:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART8
          Files:
            - build-output/file8.txt
  BuildActionH:
    Identifier: aws/build@v1  
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - ART8
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt
```

## 例: アクショングループが存在するときのアーティファクト内のファイルの参照
<a name="workflows-working-artifacts-ex-groups"></a>

次の例は、`ActionGroup1`、`ActionI` で `ART9` という名前のアーティファクトを出力し、`ActionJ` で `file9.txt` (アーティファクト `ART9` 内) を参照する方法を示しています。

ファイルの参照の詳細については、「[アーティファクト内のファイルの参照](workflows-working-artifacts-refer-files.md)」を参照してください。

```
Actions:
  ActionGroup1:
    Actions:
      ActionI:
        Identifier: aws/build@v1
        Outputs:
          Artifacts:
            - Name: ART9
              Files:
                - build-output/file9.yml
      ActionJ:
        Identifier: aws/cfn-deploy@v1 
        Inputs:
          Sources:
            - WorkflowSource
          Artifacts:
            - ART9
        Configuration:
          template: /artifacts/ActionGroup1@ActionJ/ART9/build-output/file9.yml
```

# 出力アーティファクトの定義
<a name="workflows-working-artifacts-output"></a>

次の手順に従って、Amazon CodeCatalyst アクションで出力するアーティファクトを定義します。その後、このアーティファクトは他のアクションで使用できるようになります。

**注記**  
すべてのアクションが出力アーティファクトをサポートしているわけではありません。アクションが出力アーティファクトをサポートしているかどうかを確認するには、以下のビジュアルエディタの手順を実行して、アクションの **[出力]** タブに **[出力アーティファクト]** ボタンが含まれているかどうかを確認します。含まれている場合は出力アーティファクトがサポートされています。

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

**ビジュアルエディタを使用して出力アーティファクトを定義するには**

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

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

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

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

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

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

1. ワークフロー図で、アーティファクトを生成するアクションを選択します。

1. **[出力]** タブを選択します。

1. **[アーティファクト]** で **[アーティファクトの追加]** を選択します。

1. **[アーティファクトの追加]** を選択し、次のようにフィールドに情報を入力します。

    **アーティファクト名を構築** 

   アクションによって生成されるアーティファクトの名前を指定します。アーティファクト名はワークフロー内で一意でなければならず、英数字 (a～z、A～Z、0～9) とアンダースコア (\$1) しか使用できません。スペース、ハイフン (-)、その他の特殊文字は使用できません。引用符を使用して、出力アーティファクト名でスペース、ハイフン、その他の特殊文字を有効にすることはできません。

   アーティファクトの詳細 (例を含む) については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。

    **構築で生成されるファイル** 

   CodeCatalyst がアクションによって出力されるアーティファクトに含めるファイルを指定します。これらのファイルは、実行時にワークフローアクションによって生成され、ソースリポジトリでも使用できます。ファイルパスは、ソースリポジトリまたは前のアクションからのアーティファクトに設定でき、ソースリポジトリまたはアーティファクトルートを基準とすることができます。glob パターンを使用してパスを指定できます。例:
   + ビルドまたはソースリポジトリの場所のルートにある 1 つのファイルを指定するには、`my-file.jar` を使用します。
   + サブディレクトリ内の 1 つのファイルを指定するには、`directory/my-file.jar` または `directory/subdirectory/my-file.jar` を使用します。
   + すべてのファイルを指定するには、`"**/*"` を使用します。glob パターン `**` は、任意の数のサブディレクトリにマッチすることを示します。
   + `directory` という名前のディレクトリ内のすべてのファイルとディレクトリを指定するには、`"directory/**/*"` を使用します。glob パターン `**` は、任意の数のサブディレクトリにマッチすることを示します。
   + `directory` という名前のディレクトリ内のすべてのファイルを指定するが、そのサブディレクトリを含めないようにするには、`"directory/*"` を使用します。
**注記**  
ファイルパスに 1 つ以上のアスタリスク (`*`) またはその他の特殊文字が含まれている場合は、パスを二重引用符 (`""`) で囲みます。特殊文字の詳細については、「[構文ガイドラインと規則](workflow-reference.md#workflow.terms.syntax.conv)」を参照してください。

   アーティファクトの詳細 (例を含む) については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。
**注記**  
場合によっては、ファイルパスにプレフィックスを追加して、どのアーティファクトまたはソースにあるのかを示す必要があります。詳細については、「[ソースリポジトリファイルの参照](workflows-sources-reference-files.md)」および「[アーティファクト内のファイルの参照](workflows-working-artifacts-refer-files.md)」を参照してください。

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

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

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

**YAML エディタを使用して出力アーティファクトを定義するには**

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

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

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

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

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

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

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

   ```
   action-name:
     Outputs:
       Artifacts:
         - Name: artifact-name
           Files:
             - file-path-1
             - file-path-2
   ```

   その他の例については、「[アーティファクトの例](workflows-working-artifacts-ex.md)」を参照してください。詳細については、アクションの「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

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

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

------

# 入力アーティファクトの定義
<a name="workflows-working-artifacts-refer"></a>

別の Amazon CodeCatalyst アクションによって生成されたアーティファクトを使用する場合は、現在のアクションへの入力としてアーティファクトを指定する必要があります。複数のアーティファクトを入力として指定できる場合があります。これはアクションによって異なります。詳細については、アクションの「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

**注記**  
他のワークフローのアーティファクトを参照することはできません。

次の手順に従って、別のアクションからのアーティファクトを現在のアクションへの入力として指定します。

**前提条件**  
開始する前に、他のアクションからアーティファクトを出力済みであることを確認してください。詳細については、「[出力アーティファクトの定義](workflows-working-artifacts-output.md)」を参照してください。アーティファクトを出力すると、他のアクションで使用できるようになります。

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

**アクションへの入力としてアーティファクトを指定するには (ビジュアルエディタ)**

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

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

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

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

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

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

1. ワークフロー図で、アーティファクトを入力として指定するアクションを選択します。

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

1. **[アーティファクト - 省略可**] で以下を実行します。

   このアクションへの入力として提供する以前のアクションのアーティファクトを指定します。これらのアーティファクトは、前のアクションで出力アーティファクトとして既に定義されている必要があります。

   入力アーティファクトを指定しない場合は、`action-name/Inputs/Sources` で少なくとも 1 つのソースリポジトリを指定する必要があります。

   アーティファクトの詳細 (例を含む) については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。
**注記**  
**[アーティファクト - オプション]** のドロップダウンリストが使用できない場合 (ビジュアルエディタ)、または YAML の検証時にエラーが発生する場合 (YAML エディタ)、アクションが 1 つの入力のみをサポートしていることが原因である可能性があります。この場合はソース入力を削除してみてください。

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

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

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

**アクションへの入力としてアーティファクトを指定するには (YAML エディタ)**

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

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

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

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

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

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

1. アーティファクトを入力として指定するアクションで、次のようなコードを追加します。

   ```
   action-name:
     Inputs:
       Artifacts:
         - artifact-name
   ```

   その他の例については、「[アーティファクトの例](workflows-working-artifacts-ex.md)」を参照してください。

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

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

------

# アーティファクト内のファイルの参照
<a name="workflows-working-artifacts-refer-files"></a>

アーティファクト内に存在するファイルがあり、Amazon CodeCatalyst ワークフローアクションのいずれかでこのファイルを参照する必要がある場合は、次の手順を実行します。

**注記**  
[ソースリポジトリファイルの参照](workflows-sources-reference-files.md) も参照してください。

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

*利用できません。YAML を選択して YAML の手順を表示してください。*

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

**アーティファクト内のファイルを参照するには (YAML エディタ)**

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

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

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

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

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

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

1. ファイルを参照するアクションで、次のようなコードを追加します。

   ```
   Actions:
     My-action:
       Inputs:
         Sources:
           - WorkflowSource
         Artifacts:
           - artifact-name  
       Configuration:
         template: artifact-path/path/to/file.yml
   ```

   前のコードで以下を置き換えます。
   + *artifact-name* をアーティファクトの名前に置き換えます。
   + *artifact-path* を以下の表の値に置き換えます。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codecatalyst/latest/userguide/workflows-working-artifacts-refer-files.html)

   例については「[アーティファクトの例](workflows-working-artifacts-ex.md)」を参照してください。
**注記**  
次の場合は、*artifact-path* を省略し、アーティファクトルートディレクトリを基準にしたファイルパスを指定するだけで構いません。  
参照を含めるアクションには、`Inputs` の下に 1 つの項目のみが含まれます (例えば、1 つの入力アーティファクトが含まれ、ソースは含まれません)。
参照するファイルはプライマリ入力にあります。*プライマリ入力*は `WorkflowSource` であるか、`WorkflowSource` がない場合はリストされた最初の入力アーティファクトです。

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

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

------

# アーティファクトのダウンロード
<a name="workflows-download-workflow-outputs"></a>

トラブルシューティングの目的で、Amazon CodeCatalyst ワークフローアクションによって生成されたアーティファクトをダウンロードして検査できます。ダウンロードできるアーティファクトは次の 2 種類です。
+ **ソースアーティファクト** – 実行開始時に存在していたソースリポジトリコンテンツのスナップショットを含むアーティファクト。
+ **ワークフローアーティファクト** – ワークフローの構成ファイルの `Outputs` プロパティで定義されているアーティファクト。

**ワークフローによって出力されたアーティファクトをダウンロードするには**

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

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

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

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

1. ワークフローの名前の下で **[実行]** を選択します。

1. **[実行履歴]** の **[実行 ID]** 列で実行を選択します。例えば、`Run-95a4d`。

1. 実行の名前の下で **[アーティファクト]** を選択します。

1. アーティファクトの横にある **[ダウンロード]** を選択します。アーカイブファイルがダウンロードされます。ファイル名はランダムな 7 文字で構成されます。

1. 任意のアーカイブ抽出ユーティリティを使用してアーカイブを抽出します。