

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用预定义变量
<a name="workflows-using-predefined-variables"></a>

*预定义变量*是键-值对，由工作流自动发出，可供您在工作流操作中使用。

有关变量的更多信息，请参阅[在工作流中使用变量](workflows-working-with-variables.md)。

**Topics**
+ [引用预定义变量的示例](workflows-predefined-examples.md)
+ [引用预定义变量](workflows-working-with-variables-reference-output-vars.md)
+ [确定您的工作流会发出哪些预定义变量](workflows-working-with-variables-determine-output-vars.md)
+ [预定义变量列表](workflow-ref-action-variables.md)

# 引用预定义变量的示例
<a name="workflows-predefined-examples"></a>

以下示例演示了如何在工作流定义文件中引用预定义变量。

有关预定义变量的更多信息，请参阅[使用预定义变量](workflows-using-predefined-variables.md)。

**Topics**
+ [示例：引用 “CommitId” 预定义变量](#workflows-working-with-variables-ex-refer-action)
+ [示例：引用 “BranchName” 预定义变量](#workflows-working-with-variables-ex-branch)

## 示例：引用 “CommitId” 预定义变量
<a name="workflows-working-with-variables-ex-refer-action"></a>

以下示例向您演示了如何在 `MyBuildAction` 操作中引用 `CommitId` 预定义变量。`CommitId`变量由自动输出 CodeCatalyst。有关更多信息，请参阅 [预定义变量列表](workflow-ref-action-variables.md)。

尽管示例显示的是构建操作中使用的变量，不过您可以在任何操作中使用 `CommitId`。

```
MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
      #Build Docker image and tag it with a commit ID
        - Run: docker build -t image-repo/my-docker-image:latest .
        - Run: docker tag image-repo/my-docker-image:${WorkflowSource.CommitId}
```

## 示例：引用 “BranchName” 预定义变量
<a name="workflows-working-with-variables-ex-branch"></a>

以下示例向您演示了如何在 `CDKDeploy` 操作中引用 `BranchName` 预定义变量。`BranchName`变量由自动输出 CodeCatalyst。有关更多信息，请参阅 [预定义变量列表](workflow-ref-action-variables.md)。

尽管该示例显示的是 **AWS CDK 部署**操作中使用的变量，不过您可以在任何操作中使用 `BranchName`。

```
CDKDeploy:
    Identifier: aws/cdk-deploy@v2
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      StackName: app-stack-${WorkflowSource.BranchName}
```

# 引用预定义变量
<a name="workflows-working-with-variables-reference-output-vars"></a>

您可以在 Amazon CodeCatalyst 工作流程中的任何操作中引用预定义变量。

按照以下说明在工作流中引用预定义变量。

有关预定义变量的更多信息，请参阅[使用预定义变量](workflows-using-predefined-variables.md)。

**先决条件**  
确定要引用的预定义变量的名称，例如 `CommitId`。有关更多信息，请参阅[确定您的工作流会发出哪些预定义变量](workflows-working-with-variables-determine-output-vars.md)。

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

*不可用。选择 YAML 以查看 YAML 说明。*

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

**引用预定义变量（YAML 编辑器）**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 选择您的项目。

1. 在导航窗格中，选择 **CI/CD**，然后选择**工作流**。

1. 选择工作流的名称。您可以按定义工作流的源存储库或分支名称筛选，也可以按工作流名称或状态筛选。

1. 选择**编辑**。

1. 选择 **YAML**。

1. 在 CodeCatalyst 操作中，使用以下语法添加预定义的变量引用：

   ```
   ${action-group-name.action-name-or-WorkflowSource.variable-name}
   ```

   进行如下替换：
   + *action-group-name*用行动组的名字。
**注意**  
*action-group-name*如果没有操作组，或者变量是由同一操作组中的操作生成的，则可以省略。
   + *action-name-or-WorkflowSource*和：

     输出变量的操作的名称。

     或

     `WorkflowSource`，如果变量是 `BranchName` 或 `CommitId` 变量。
   + *variable-name*用变量的名字。

   例如：

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${MyFirstECSAction.cluster}
   ```

   另一个示例是：

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${WorkflowSource.CommitId}
   ```

   有关更多示例，请参阅[引用预定义变量的示例](workflows-predefined-examples.md)。有关更多信息，请参阅相应操作的[工作流 YAML 定义](workflow-reference.md)。

1. （可选）选择**验证**，在提交之前验证工作流的 YAML 代码。

1. 选择**提交**，输入提交消息，然后再次选择**提交**。

------

# 确定您的工作流会发出哪些预定义变量
<a name="workflows-working-with-variables-determine-output-vars"></a>

使用以下过程来确定工作流在运行时会发出哪些预定义变量。然后，您可以在同一个工作流中引用这些变量。

有关预定义变量的更多信息，请参阅[使用预定义变量](workflows-using-predefined-variables.md)。

**确定工作流发出的预定义变量**
+ 请执行以下操作之一：
  + **运行一次工作流**。运行完成后，工作流发出的变量将显示在运行详细信息页面的**变量**选项卡上。有关更多信息，请参阅[查看工作流运行状态和详细信息](workflows-view-run.md)。
  + **请参考[预定义变量列表](workflow-ref-action-variables.md)**。此参考资料列出了每个预定义变量的变量名（键）和值。

**注意**  
工作流变量的最大总大小在 [中的工作流程配额 CodeCatalyst](workflows-quotas.md)中列出。如果总大小超过最大值，则在达到最大值之后执行的操作可能会失败。

# 预定义变量列表
<a name="workflow-ref-action-variables"></a>

请参阅以下各节，查看 CodeCatalyst 操作在工作流运行过程中自动生成的预定义变量。

有关预定义变量的更多信息，请参阅[使用预定义变量](workflows-using-predefined-variables.md)。

**注意**  
此列表只包括由 CodeCatalyst 源和 [CodeCatalyst 操作](workflows-actions.md#workflows-actions-types)发布的预定义变量。如果您使用的是其它类型的操作，例如 GitHub Actions 或 CodeCatalyst Labs 操作，请改为参阅[确定您的工作流会发出哪些预定义变量](workflows-working-with-variables-determine-output-vars.md)。

**列表**

**注意**  
并非所有 CodeCatalyst 操作都会产生预定义变量。如果操作不在列表中，则不会产生变量。
+ [BranchName'和' CommitId '变量](workflows-sources-variables.md)
+ ['部署 CloudFormation 堆栈'变量](deploy-action-cfn-variables.md)
+ [“部署到 Amazon ECS”变量](deploy-action-ecs-variables.md)
+ [“部署到 Kubernetes 集群”变量](deploy-action-eks-variables.md)
+ [“AWS CDK 部署”变量](cdk-dep-action-variables.md)
+ [“AWS CDK 引导”变量](cdk-boot-action-variables.md)
+ [“AWS Lambda 调用”变量](lam-invoke-action-variables.md)
+ [“渲染 Amazon ECS 任务定义”变量](render-ecs-action-variables.md)