

亚马逊 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>

不可以，您不能在不同的工作流之间共享构件；但是，您可以在同一工作流中的操作之间共享构件。