

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>

否，您無法在不同工作流程之間共用成品；不過，您可以在相同工作流程中的動作之間共用成品。